forked from moodle/moodle
-
Notifications
You must be signed in to change notification settings - Fork 1
/
import_form.php
100 lines (83 loc) · 4.79 KB
/
import_form.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
if (!defined('MOODLE_INTERNAL')) {
die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page
}
require_once($CFG->libdir.'/formslib.php');
class question_import_form extends moodleform {
function definition() {
global $COURSE;
$mform =& $this->_form;
$defaultcategory = $this->_customdata['defaultcategory'];
$contexts = $this->_customdata['contexts'];
//--------------------------------------------------------------------------------
$mform->addElement('header','fileformat', get_string('fileformat','quiz'));
$fileformatnames = get_import_export_formats('import');
$i = 0 ;
foreach ($fileformatnames as $shortname => $fileformatname) {
$currentgrp1 = array();
$currentgrp1[] = &$mform->createElement('radio','format','',$fileformatname,$shortname);
$mform->addGroup($currentgrp1,"formathelp[$i]",'',array('<br />'),false);
$mform->addHelpButton("formathelp[$i]", $shortname, 'qformat_'.$shortname);
$i++ ;
}
$mform->addRule("formathelp[0]", null, 'required', null, 'client' );
//--------------------------------------------------------------------------------
$mform->addElement('header','general', get_string('general', 'form'));
$mform->addElement('questioncategory', 'category', get_string('importcategory', 'question'), compact('contexts'));
$mform->setDefault('category', $defaultcategory);
$mform->addHelpButton('category', 'importcategory', 'question');
$categorygroup = array();
$categorygroup[] =& $mform->createElement('checkbox', 'catfromfile', '', get_string('getcategoryfromfile', 'question'));
$categorygroup[] =& $mform->createElement('checkbox', 'contextfromfile', '', get_string('getcontextfromfile', 'question'));
$mform->addGroup($categorygroup, 'categorygroup', '', '', false);
$mform->disabledIf('categorygroup', 'catfromfile', 'notchecked');
$mform->setDefault('catfromfile', 1);
$mform->setDefault('contextfromfile', 1);
$matchgrades = array();
$matchgrades['error'] = get_string('matchgradeserror','quiz');
$matchgrades['nearest'] = get_string('matchgradesnearest','quiz');
$mform->addElement('select', 'matchgrades', get_string('matchgrades', 'question'), $matchgrades);
$mform->addHelpButton('matchgrades', 'matchgrades', 'question');
$mform->setDefault('matchgrades', 'error');
$mform->addElement('selectyesno', 'stoponerror', get_string('stoponerror', 'question'));
$mform->setDefault('stoponerror', 1);
$mform->addHelpButton('stoponerror', 'stoponerror', 'question');
//--------------------------------------------------------------------------------
$mform->addElement('header', 'importfileupload', get_string('importfromthisfile','quiz'));
$mform->addElement('filepicker', 'newfile', get_string('import', 'quiz'));
//--------------------------------------------------------------------------------
$mform->addElement('submit', 'submitbutton', get_string('import', 'quiz'));
//--------------------------------------------------------------------------------
//if (has_capability('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $COURSE->id))){
//$mform->addElement('header', 'importfilearea', get_string('importfilearea','quiz'));
//TODO: MDL-16094
//$mform->addElement('choosecoursefile', 'choosefile', get_string('choosefile','quiz'));
//--------------------------------------------------------------------------------
//$mform->addElement('submit', 'submitbutton', get_string('importfromthisfile','quiz'));
//}
//--------------------------------------------------------------------------------
$mform->addElement('static', 'dummy', '');
$mform->closeHeaderBefore('dummy');
// set a template for the format select elements
$renderer =& $mform->defaultRenderer();
$template = "{help} {element}\n";
$renderer->setGroupElementTemplate($template, 'format');
}
public function validation($data, $files){
$errors = parent::validation($data, $files);
return $errors; // TODO.
// If a file is uploaded return
if ($data['choosefile'] || $files['newfile']) {
return $errors;
}
// If file is not uploaded from file upload
if (!$files['newfile']) {
$errors['newfile'] = get_string('importfromupload', 'question');
}
// If filke is not imported from course files
if (!$data['choosefile'] && !$files['newfile']) {
$errors['choosefile'] = get_string('importfromcoursefiles', 'question');
}
return $errors;
}
}