MDL-28115 lesson module: fixed undefined variable for multiple answer, disabled numberical input text during review and fixed bug for essay answer during review process.

This commit is contained in:
Rossiani Wijaya
2011-06-30 18:43:25 +08:00
parent 54ae8ed032
commit 54fd7cd9ee
3 changed files with 50 additions and 12 deletions
+10 -4
View File
@@ -95,7 +95,12 @@ class lesson_page_type_essay extends lesson_page {
redirect(new moodle_url('/mod/lesson/view.php', array('id'=>$PAGE->cm->id, 'pageid'=>$this->properties->id)));
}
$studentanswer = $data->answer['text'];
if (is_array($data->answer)) {
$studentanswer = $data->answer['text'];
} else {
$studentanswer = $data->answer;
}
if (trim($studentanswer) === '') {
$result->noanswer = true;
return $result;
@@ -261,8 +266,9 @@ class lesson_display_answer_form_essay extends moodleform {
if (isset($USER->modattempts[$lessonid]->useranswer) && !empty($USER->modattempts[$lessonid]->useranswer)) {
$attrs = array('disabled' => 'disabled');
$hasattempt = true;
$useranswer = unserialize($USER->modattempts[$lessonid]->useranswer);
$useranswer = htmlspecialchars_decode($useranswer->answer, ENT_QUOTES);
$useranswertemp = unserialize($USER->modattempts[$lessonid]->useranswer);
$useranswer = htmlspecialchars_decode($useranswertemp->answer, ENT_QUOTES);
$useranswerraw = $useranswertemp->answer;
}
}
@@ -282,7 +288,7 @@ class lesson_display_answer_form_essay extends moodleform {
if ($hasattempt) {
$mform->addElement('hidden', 'answer', $useranswerraw);
$mform->setType('answer', PARAM_CLEANHTML);
$mform->setType('answer', PARAM_RAW);
$mform->addElement('html', $OUTPUT->container(get_string('youranswer', 'lesson'), 'youranswer'));
$mform->addElement('html', $OUTPUT->container($useranswer, 'reviewessay'));
$this->add_action_buttons(null, get_string("nextpage", "lesson"));
+24 -5
View File
@@ -542,6 +542,15 @@ class lesson_display_answer_form_multichoice_multianswer extends moodleform {
$mform->addElement('html', $OUTPUT->container($contents, 'contents'));
$hasattempt = false;
$disabled = '';
$useranswers = array();
if (isset($USER->modattempts[$lessonid]) && !empty($USER->modattempts[$lessonid])) {
$hasattempt = true;
$disabled = array('disabled' => 'disabled');
$useranswers = explode(',', $USER->modattempts[$lessonid]->useranswer);
}
$options = new stdClass;
$options->para = false;
$options->noclean = true;
@@ -554,16 +563,26 @@ class lesson_display_answer_form_multichoice_multianswer extends moodleform {
foreach ($answers as $answer) {
$mform->addElement('html', '<div class="answeroption">');
// NOTE: our silly checkbox supports only value '1' - we can not use it like the radiobox above!!!!!!
$mform->addElement('checkbox','answer['.$answer->id.']',null,format_text($answer->answer, $answer->answerformat, $options));
$mform->setType('answer['.$answer->id.']', PARAM_INT);
if (isset($USER->modattempts[$lessonid]) && $answer->id == $attempt->answerid) {
$answerid = 'answer['.$answer->id.']';
if ($hasattempt && in_array($answer->id, $useranswers)) {
$answerid = 'answer_'.$answer->id;
$mform->addElement('hidden', 'answer['.$answer->id.']', $answer->answer);
$mform->setType('answer['.$answer->id.']', PARAM_TEXT);
$mform->setDefault($answerid, true);
$mform->setDefault('answer['.$answer->id.']', true);
}
// NOTE: our silly checkbox supports only value '1' - we can not use it like the radiobox above!!!!!!
$mform->addElement('checkbox', $answerid, null, format_text($answer->answer, $answer->answerformat, $options), $disabled);
$mform->setType($answerid, PARAM_INT);
$mform->addElement('html', '</div>');
}
$this->add_action_buttons(null, get_string("pleasecheckoneormoreanswers", "lesson"));
if ($hasattempt) {
$this->add_action_buttons(null, get_string("nextpage", "lesson"));
} else {
$this->add_action_buttons(null, get_string("submit", "lesson"));
}
}
}
+16 -3
View File
@@ -50,7 +50,7 @@ class lesson_page_type_numerical extends lesson_page {
}
public function display($renderer, $attempt) {
global $USER, $CFG, $PAGE;
$mform = new lesson_display_answer_form_shortanswer($CFG->wwwroot.'/mod/lesson/continue.php', array('contents'=>$this->get_contents()));
$mform = new lesson_display_answer_form_shortanswer($CFG->wwwroot.'/mod/lesson/continue.php', array('contents'=>$this->get_contents(), 'lessonid'=>$this->lesson->id));
$data = new stdClass;
$data->id = $PAGE->cm->id;
$data->pageid = $this->properties->id;
@@ -268,6 +268,15 @@ class lesson_display_answer_form_numerical extends moodleform {
$mform->addElement('html', $OUTPUT->container($contents, 'contents'));
$hasattempt = false;
$attrs = array('size'=>'50', 'maxlength'=>'200');
if (isset($this->_customdata['lessonid'])) {
$lessonid = $this->_customdata['lessonid'];
if (isset($USER->modattempts[$lessonid]->useranswer)) {
$attrs['readonly'] = 'readonly';
$hasattempt = true;
}
}
$options = new stdClass;
$options->para = false;
$options->noclean = true;
@@ -278,10 +287,14 @@ class lesson_display_answer_form_numerical extends moodleform {
$mform->addElement('hidden', 'pageid');
$mform->setType('pageid', PARAM_INT);
$mform->addElement('text', 'answer', get_string('youranswer', 'lesson'), array('size'=>'50', 'maxlength'=>'200'));
$mform->addElement('text', 'answer', get_string('youranswer', 'lesson'), $attrs);
$mform->setType('answer', PARAM_FLOAT);
$this->add_action_buttons(null, get_string("pleaseenteryouranswerinthebox", "lesson"));
if ($hasattempt) {
$this->add_action_buttons(null, get_string("nextpage", "lesson"));
} else {
$this->add_action_buttons(null, get_string("submit", "lesson"));
}
}
}