From 46ef1cf1de295fc0041a8492e18a3adaed64b0a1 Mon Sep 17 00:00:00 2001 From: mindforge Date: Thu, 8 Sep 2005 11:43:18 +0000 Subject: [PATCH] Merged changes from 1.5 --- mod/quiz/questiontypes/multianswer/editquestion.php | 2 +- mod/quiz/questiontypes/multianswer/questiontype.php | 4 ++++ mod/quiz/questiontypes/multichoice/editquestion.php | 1 + mod/quiz/questiontypes/multichoice/questiontype.php | 6 +++--- mod/quiz/questiontypes/shortanswer/questiontype.php | 2 +- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/mod/quiz/questiontypes/multianswer/editquestion.php b/mod/quiz/questiontypes/multianswer/editquestion.php index 1cb6ad9bfd3..0e22abaa59c 100644 --- a/mod/quiz/questiontypes/multianswer/editquestion.php +++ b/mod/quiz/questiontypes/multianswer/editquestion.php @@ -42,7 +42,7 @@ // Fix the questiontext fields of old questions set_field('quiz_questions', 'questiontext', addslashes($parsableanswerdef), 'id', $wrapped->id); } else { - $parsableanswerdef = $wrapped->questiontext; + $parsableanswerdef = str_replace('&#', '&\#', $wrapped->questiontext); } $question->questiontext = str_replace("{#$key}", $parsableanswerdef, $question->questiontext); } diff --git a/mod/quiz/questiontypes/multianswer/questiontype.php b/mod/quiz/questiontypes/multianswer/questiontype.php index d807d71a45c..8d2576b6064 100644 --- a/mod/quiz/questiontypes/multianswer/questiontype.php +++ b/mod/quiz/questiontypes/multianswer/questiontype.php @@ -377,6 +377,10 @@ function quiz_qtype_multianswer_extract_question($text) { // Regexes are always awkard when defined but more comprehensible // when used as constants in the executive code + // Handle the entity encoded ampersand in entities (e.g. &lt; -> <) + $text = preg_replace('/&(.{2,9}?;)/', '&${1}', $text); + $text = stripslashes($text); + // ANSWER_ALTERNATIVE regexes define("ANSWER_ALTERNATIVE_FRACTION_REGEX", '=|%(-?[0-9]+)%'); diff --git a/mod/quiz/questiontypes/multichoice/editquestion.php b/mod/quiz/questiontypes/multichoice/editquestion.php index bd9828f0f81..8445cb011c7 100644 --- a/mod/quiz/questiontypes/multichoice/editquestion.php +++ b/mod/quiz/questiontypes/multichoice/editquestion.php @@ -7,6 +7,7 @@ } if (!empty($options->answers)) { $answersraw = get_records_list("quiz_answers", "id", $options->answers); + } for ($i=0 ; $i < QUIZ_MAX_NUMBER_ANSWERS ; $i++) { $answers[] = ""; // Make answer slots, default as blank diff --git a/mod/quiz/questiontypes/multichoice/questiontype.php b/mod/quiz/questiontypes/multichoice/questiontype.php index 976e865b0cc..01a0cfcd75f 100644 --- a/mod/quiz/questiontypes/multichoice/questiontype.php +++ b/mod/quiz/questiontypes/multichoice/questiontype.php @@ -66,9 +66,9 @@ class quiz_multichoice_qtype extends quiz_default_questiontype { foreach ($question->answer as $key => $dataanswer) { if ($dataanswer != "") { if ($answer = array_shift($oldanswers)) { // Existing answer, so reuse it - $answer->answer = $dataanswer; - $answer->fraction = $question->fraction[$key]; - $answer->feedback = $question->feedback[$key]; + $answer->answer = $dataanswer; + $answer->fraction = $question->fraction[$key]; + $answer->feedback = $question->feedback[$key]; if (!update_record("quiz_answers", $answer)) { $result->error = "Could not update quiz answer! (id=$answer->id)"; return $result; diff --git a/mod/quiz/questiontypes/shortanswer/questiontype.php b/mod/quiz/questiontypes/shortanswer/questiontype.php index f754ad6e64e..9b0c7110f30 100644 --- a/mod/quiz/questiontypes/shortanswer/questiontype.php +++ b/mod/quiz/questiontypes/shortanswer/questiontype.php @@ -171,7 +171,7 @@ class quiz_shortanswer_qtype extends quiz_default_questiontype { } function grade_responses(&$question, &$state, $cmoptions) { - $answers = &$question->options->answers; + $answers = &$question->options->answers; $testedstate = clone($state); $teststate = clone($state); $state->raw_grade = 0;