diff --git a/lang/en_utf8/quiz.php b/lang/en_utf8/quiz.php index b70450942e0..9292976a95e 100644 --- a/lang/en_utf8/quiz.php +++ b/lang/en_utf8/quiz.php @@ -490,7 +490,7 @@ $string['usedcategorymoved'] = 'This category has been preserved and moved to th $string['validate'] = 'Validate'; $string['viewallanswers'] = 'View $a quiz attempts'; $string['viewallreports'] = 'View reports for $a attempts'; -$string['warningmissingtype'] = '
This question is of a type that has not been installed on your Moodle yet.
Please alert your Moodle administrator.
' . get_string('warningmissingtype', 'quiz') . '
' . $question->questiontext; + } + $question->name_prefix = question_make_name_prefix($question->id); + return $QTYPES[$question->qtype]->get_question_options($question); +} /** -* Updates the question objects with question type specific -* information by calling {@link get_question_options()} -* -* Can be called either with an array of question objects or with a single -* question object. -* @return bool Indicates success or failure. -* @param mixed $questions Either an array of question objects to be updated -* or just a single question object -*/ + * Updates the question objects with question type specific + * information by calling {@link get_question_options()} + * + * Can be called either with an array of question objects or with a single + * question object. + * + * @param mixed $questions Either an array of question objects to be updated + * or just a single question object + * @return bool Indicates success or failure. + */ function get_question_options(&$questions) { - global $QTYPES; - if (is_array($questions)) { // deal with an array of questions - // get the keys of the input array - $keys = array_keys($questions); - // update each question object - foreach ($keys as $i) { - if (!array_key_exists($questions[$i]->qtype, $QTYPES)) { - $questions[$i]->qtype = 'missingtype'; - $questions[$i]->questiontext = get_string('warningmissingtype', 'quiz').$questions[$i]->questiontext; - } - - // set name prefix - $questions[$i]->name_prefix = question_make_name_prefix($i); - - if (!$QTYPES[$questions[$i]->qtype]->get_question_options($questions[$i])) + foreach ($questions as $i => $notused) { + if (!_tidy_question($questions[$i])) { return false; + } } return true; } else { // deal with single question - if (!array_key_exists($questions->qtype, $QTYPES)) { - $questions->qtype = 'missingtype'; - $questions[$i]->questiontext = get_string('warningmissingtype', 'quiz').$questions[$i]->questiontext; - } - $questions->name_prefix = question_make_name_prefix($questions->id); - return $QTYPES[$questions->qtype]->get_question_options($questions); + return _tidy_question($questions); } } @@ -1210,6 +1211,7 @@ function question_get_id_from_name_prefix($name) { */ function question_new_attempt_uniqueid($modulename='quiz') { global $CFG; + $attempt = new stdClass; $attempt->modulename = $modulename; if (!$id = insert_record('question_attempts', $attempt)) { error('Could not create new entry in question_attempts table'); diff --git a/question/type/missingtype/editquestion.php b/question/type/missingtype/editquestion.php index 28710898c76..5f69b9c7ba1 100644 --- a/question/type/missingtype/editquestion.php +++ b/question/type/missingtype/editquestion.php @@ -1,7 +1,7 @@ answers)) { - $answersraw = get_records_list("question_answers", "id", $options->answers); + $answersraw = get_records_list('question_answers', 'id', $options->answers); } @@ -13,10 +13,10 @@ } $yesnooptions = array(); - $yesnooptions[0] = get_string("no"); - $yesnooptions[1] = get_string("yes"); + $yesnooptions[0] = get_string('no'); + $yesnooptions[1] = get_string('yes'); - print_heading_with_help(get_string("editingmissingtype", "quiz"), "multichoice", "quiz"); + print_heading(get_string('warningmissingtype', 'quiz')); require("$CFG->dirroot/question/type/missingtype/editquestion.html"); ?> diff --git a/question/type/missingtype/questiontype.php b/question/type/missingtype/questiontype.php index 45764e2d7e3..6493f3bd9b8 100644 --- a/question/type/missingtype/questiontype.php +++ b/question/type/missingtype/questiontype.php @@ -38,6 +38,7 @@ class question_missingtype_qtype extends default_questiontype { $anss = array(); if ($answers) { foreach ($answers as $answer) { + $a = new stdClass; $a->text = format_text("$answer->answer", FORMAT_MOODLE, $formatoptions, $cmoptions->course); $anss[] = clone($a);