From 7baff8aa1a76423820ecd697d744011100728c0e Mon Sep 17 00:00:00 2001 From: tjhunt Date: Wed, 31 May 2006 15:58:39 +0000 Subject: [PATCH] Fix for bug 5379: Item analysis report should not have a hard coded list of question types. Please test this if you have a moodle install with some unusual question types. Thanks. Merged from 1.6stable. --- mod/quiz/report/analysis/report.php | 5 ++--- question/type/questiontype.php | 15 ++++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/mod/quiz/report/analysis/report.php b/mod/quiz/report/analysis/report.php index af63a30a69..e82d5e679b 100644 --- a/mod/quiz/report/analysis/report.php +++ b/mod/quiz/report/analysis/report.php @@ -111,7 +111,6 @@ class quiz_report extends quiz_default_report { $questionarray = array_unique(explode(",",$questionlist)); $questionlist = implode(",", $questionarray); unset($questionarray); - $accepted_qtypes = array(SHORTANSWER, TRUEFALSE, MULTICHOICE, MATCH, NUMERICAL, CALCULATED); foreach ($attempts as $attempt) { switch ($attemptselection) { @@ -157,10 +156,10 @@ class quiz_report extends quiz_default_report { continue; } $qtype = ($quizquestions[$i]->qtype=='random') ? $states[$i]->options->question->qtype : $quizquestions[$i]->qtype; - if (!in_array ($qtype, $accepted_qtypes)){ + $q = get_question_responses($quizquestions[$i], $states[$i]); + if (empty($q)){ continue; } - $q = get_question_responses($quizquestions[$i], $states[$i]); $qid = $q->id; if (!isset($questions[$qid])) { $questions[$qid]['id'] = $qid; diff --git a/question/type/questiontype.php b/question/type/questiontype.php index 5c0d15d6c7..df5cdbdd7e 100644 --- a/question/type/questiontype.php +++ b/question/type/questiontype.php @@ -353,20 +353,21 @@ class default_questiontype { */ // ULPGC ecastro function get_all_responses(&$question, &$state) { - unset($answers); - if (is_array($question->options->answers)) { + if (isset($question->options->answers) && is_array($question->options->answers)) { + $answers = array(); foreach ($question->options->answers as $aid=>$answer) { - unset ($r); + $r = new stdClass; $r->answer = $answer->answer; $r->credit = $answer->fraction; $answers[$aid] = $r; } + $result = new stdClass; + $result->id = $question->id; + $result->responses = $answers; + return $result; } else { - $answers[]="error"; // just for debugging, eliminate + return null; } - $result->id = $question->id; - $result->responses = $answers; - return $result; } /** -- 2.39.5