123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <?php
- /* For licensing terms, see /license.txt */
- /**
- * Extends FormValidator with import and export forms.
- *
- * @author Stijn Konings
- *
- * @package chamilo.gradebook
- */
- class DataForm extends FormValidator
- {
- const TYPE_IMPORT = 1;
- const TYPE_EXPORT = 2;
- const TYPE_EXPORT_PDF = 3;
- /**
- * Builds a form containing form items based on a given parameter.
- *
- * @param int form_type 1=import, 2=export
- * @param obj cat_obj the category object
- * @param obj res_obj the result object
- * @param string form name
- * @param method
- * @param action
- */
- public function __construct(
- $form_type,
- $form_name,
- $method = 'post',
- $action = null,
- $target = '',
- $locked_status
- ) {
- parent:: __construct($form_name, $method, $action, $target);
- $this->form_type = $form_type;
- if ($this->form_type == self::TYPE_IMPORT) {
- $this->build_import_form();
- } elseif ($this->form_type == self::TYPE_EXPORT) {
- if ($locked_status == 0) {
- $this->build_export_form_option(false);
- } else {
- $this->build_export_form();
- }
- } elseif ($this->form_type == self::TYPE_EXPORT_PDF) {
- $this->build_pdf_export_form();
- }
- $this->setDefaults();
- }
- public function display()
- {
- parent::display();
- }
- public function setDefaults($defaults = [], $filter = null)
- {
- parent::setDefaults($defaults, $filter);
- }
- protected function build_pdf_export_form()
- {
- $renderer = &$this->defaultRenderer();
- $renderer->setCustomElementTemplate('<span>{element}</span>');
- $this->addElement('header', get_lang('Choose orientation'));
- $this->addElement('radio', 'orientation', null, get_lang('Portrait'), 'portrait');
- $this->addElement('radio', 'orientation', null, get_lang('Landscape'), 'landscape');
- $this->addButtonExport(get_lang('Export'));
- $this->setDefaults([
- 'orientation' => 'portrait',
- ]);
- }
- protected function build_export_form()
- {
- $this->addElement('header', get_lang('PDF report'));
- $this->addElement('radio', 'file_type', get_lang('Output file type'), 'CSV (Comma-Separated Values)', 'csv');
- $this->addElement('radio', 'file_type', null, 'XML (Extensible Markup Language)', 'xml');
- $this->addElement('radio', 'file_type', null, 'PDF (Portable Document Format)', 'pdf');
- $this->addButtonExport(get_lang('Export'));
- $this->setDefaults([
- 'file_type' => 'csv',
- ]);
- }
- protected function build_export_form_option($show_pdf = true)
- {
- $this->addElement('header', get_lang('PDF report'));
- $this->addElement('radio', 'file_type', get_lang('Output file type'), 'CSV (Comma-Separated Values)', 'csv');
- $this->addElement('radio', 'file_type', null, 'XML (Extensible Markup Language)', 'xml');
- $this->addElement(
- 'radio',
- 'file_type',
- Display::return_icon('info3.gif', get_lang('To export, you must lock the evaluation.')),
- 'PDF (Portable Document Format)',
- 'pdf',
- ['disabled']
- );
- $this->addButtonExport(get_lang('Export'));
- $this->setDefaults([
- 'file_type' => 'csv',
- ]);
- }
- protected function build_import_form()
- {
- $this->addElement('hidden', 'formSent');
- $this->addElement('header', get_lang('Import marks in an assessment'));
- $this->addElement('file', 'import_file', get_lang('URL/URI'));
- $this->addElement(
- 'radio',
- 'file_type',
- get_lang('File type'),
- 'CSV (<a href="docs/example_csv.html" target="_blank" download>'
- .get_lang('Example CSV file')
- .'</a>)',
- 'csv'
- );
- //$this->addElement('radio', 'file_type', null, 'XML (<a href="docs/example_xml.html" target="_blank" download>'.get_lang('Example XML file').'</a>)', 'xml');
- $this->addElement('checkbox', 'overwrite', null, get_lang('Overwrite scores'));
- $this->addElement('checkbox', 'ignoreerrors', null, get_lang('Ignore errors'));
- $this->addButtonImport(get_lang('Validate'));
- $this->setDefaults([
- 'formSent' => '1',
- 'file_type' => 'csv',
- ]);
- }
- }
|