28
29
$gradeoptions = $creategrades->gradeoptions;
29
30
$repeated = array();
30
31
$repeated[] =& $mform->createElement('header', 'answerhdr', get_string('answerno', 'qtype_shortanswer', '{no}'));
31
$repeated[] =& $mform->createElement('text', 'answer', get_string('answer', 'quiz'));
32
$repeated[] =& $mform->createElement('text', 'answer', get_string('answer', 'quiz'), array('size' => 54));
32
33
$repeated[] =& $mform->createElement('select', 'fraction', get_string('grade'), $gradeoptions);
33
$repeated[] =& $mform->createElement('htmleditor', 'feedback', get_string('feedback', 'quiz'));
34
$repeated[] =& $mform->createElement('htmleditor', 'feedback', get_string('feedback', 'quiz'),
35
array('course' => $this->coursefilesid));
35
37
if (isset($this->question->options)){
36
38
$countanswers = count($this->question->options->answers);
40
$repeatsatstart = (QUESTION_NUMANS_START > ($countanswers + QUESTION_NUMANS_ADD))?
41
QUESTION_NUMANS_START : ($countanswers + QUESTION_NUMANS_ADD);
42
if ($this->question->formoptions->repeatelements){
43
$repeatsatstart = (QUESTION_NUMANS_START > ($countanswers + QUESTION_NUMANS_ADD))?
44
QUESTION_NUMANS_START : ($countanswers + QUESTION_NUMANS_ADD);
46
$repeatsatstart = $countanswers;
42
48
$repeatedoptions = array();
43
49
$mform->setType('answer', PARAM_RAW);
44
50
$repeatedoptions['fraction']['default'] = 0;
64
70
parent::set_data($question);
66
function validation($data){
72
function validation($data, $files) {
73
$errors = parent::validation($data, $files);
68
74
$answers = $data['answer'];
71
77
foreach ($answers as $key => $answer) {
72
78
$trimmedanswer = trim($answer);
73
if (!empty($trimmedanswer)){
79
if ($trimmedanswer !== ''){
75
81
if ($data['fraction'][$key] == 1) {
84
} else if ($data['fraction'][$key] != 0 || !html_is_blank($data['feedback'][$key])) {
85
$errors["answer[$key]"] = get_string('answermustbegiven', 'qtype_shortanswer');
80
89
if ($answercount==0){