$mform->setType('id', PARAM_INT);
$mform->addElement('header', 'general', get_string('importfile', 'grades'));
+ $mform->disabledIf('url', 'userfile', 'noteq', '');
$mform->addElement('advcheckbox', 'feedback', get_string('importfeedback', 'grades'));
$mform->setDefault('feedback', 0);
$mform->disabledIf('userfile', 'url', 'noteq', '');
$mform->addElement('text', 'url', get_string('fileurl', 'gradeimport_xml'), 'size="80"');
- $mform->disabledIf('url', 'userfile', 'noteq', '');
if (!empty($CFG->gradepublishing)) {
$mform->addElement('header', 'publishing', get_string('publishing', 'grades'));
}
}
- /**
- * Internal method. Validates filepicker and filemanager files if they are
- * set as required fields. Also, sets the error message if encountered one.
- *
- * @return bool/array with errors
- */
- function _validate_draft_files() {
- global $USER;
- $mform =& $this->_form;
-
- $errors = array();
- //Go through all the required elements and make sure you hit filepicker or
- //filemanager element.
- foreach ($mform->_rules as $elementname => $rules) {
- $elementtype = $mform->getElementType($elementname);
- //If element is of type filepicker then do validation
- if (($elementtype == 'filepicker') || ($elementtype == 'filemanager')){
- //Check if rule defined is required rule
- foreach ($rules as $rule) {
- if ($rule['type'] == 'required') {
- $draftid = (int)$mform->getSubmitValue($elementname);
- $fs = get_file_storage();
- $context = get_context_instance(CONTEXT_USER, $USER->id);
- if (!$files = $fs->get_area_files($context->id, 'user', 'draft', $draftid, 'id DESC', false)) {
- $errors[$elementname] = $rule['message'];
- }
- }
- }
- }
- }
- if (empty($errors)) {
- return true;
- } else {
- return $errors;
- }
- }
-
/**
* Load in existing data as form defaults. Usually new entry defaults are stored directly in
* form definition (new entry form); this function is used to load in data where values
$files = array();
$file_val = $this->_validate_files($files);
- //check draft files for validation and flag them if required files
- //are not in draft area.
- $draftfilevalue = $this->_validate_draft_files();
-
- if ($file_val !== true && $draftfilevalue !== true) {
- $file_val = array_merge($file_val, $draftfilevalue);
- } else if ($draftfilevalue !== true) {
- $file_val = $draftfilevalue;
- } //default is file_val, so no need to assign.
-
if ($file_val !== true) {
if (!empty($file_val)) {
foreach ($file_val as $element=>$msg) {