You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
4.4 KiB
116 lines
4.4 KiB
<?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();
|
|
}
|
|
|
|
protected function build_pdf_export_form()
|
|
{
|
|
$renderer = & $this->defaultRenderer();
|
|
$renderer->setCustomElementTemplate('<span>{element}</span>');
|
|
$this->addElement('header', get_lang('ChooseOrientation'));
|
|
$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(array(
|
|
'orientation' => 'portrait'
|
|
));
|
|
}
|
|
|
|
protected function build_export_form()
|
|
{
|
|
$this->addElement('header', get_lang('ChooseFormat'));
|
|
$this->addElement('radio', 'file_type', get_lang('OutputFileType'), '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(array(
|
|
'file_type' => 'csv'
|
|
));
|
|
}
|
|
|
|
protected function build_export_form_option($show_pdf = true)
|
|
{
|
|
$this->addElement('header', get_lang('ChooseFormat'));
|
|
$this->addElement('radio', 'file_type', get_lang('OutputFileType'), '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('ToExportMustLockEvaluation')),
|
|
'PDF (Portable Document Format)',
|
|
'pdf',
|
|
array('disabled')
|
|
);
|
|
$this->addButtonExport(get_lang('Export'));
|
|
$this->setDefaults(array(
|
|
'file_type' => 'csv'
|
|
));
|
|
}
|
|
|
|
protected function build_import_form()
|
|
{
|
|
$this->addElement('hidden', 'formSent');
|
|
$this->addElement('header', get_lang('ImportFileLocation'));
|
|
$this->addElement('file', 'import_file', get_lang('Location'));
|
|
$allowed_file_types = array(
|
|
'xml',
|
|
'csv'
|
|
);
|
|
//$this->addRule('file', get_lang('InvalidExtension') . ' (' . implode(',', $allowed_file_types) . ')', 'filetype', $allowed_file_types);
|
|
$this->addElement('radio', 'file_type', get_lang('FileType'), 'CSV (<a href="docs/example_csv.html" target="_blank">'.get_lang('ExampleCSVFile').'</a>)', 'csv');
|
|
$this->addElement('radio', 'file_type', null, 'XML (<a href="docs/example_xml.html" target="_blank">'.get_lang('ExampleXMLFile').'</a>)', 'xml');
|
|
$this->addElement('checkbox', 'overwrite', null, get_lang('OverwriteScores'));
|
|
$this->addElement('checkbox', 'ignoreerrors', null, get_lang('IgnoreErrors'));
|
|
$this->addButtonImport(get_lang('Ok'));
|
|
$this->setDefaults(array(
|
|
'formSent' => '1',
|
|
'file_type' => 'csv'
|
|
));
|
|
}
|
|
|
|
public function display()
|
|
{
|
|
parent::display();
|
|
}
|
|
|
|
public function setDefaults($defaults = array(), $filter = null)
|
|
{
|
|
parent::setDefaults($defaults, $filter);
|
|
}
|
|
}
|
|
|