From d1c432e207a981e7388ef553808f95d14d33bfa3 Mon Sep 17 00:00:00 2001 From: pichetp Date: Tue, 8 May 2007 19:19:09 +0000 Subject: [PATCH] adding more validation and a dummy subquestion in MATCH if there is only 2 subquestions. --- question/format/webct/format.php | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/question/format/webct/format.php b/question/format/webct/format.php index af0f591ab0..f2ed85e32b 100644 --- a/question/format/webct/format.php +++ b/question/format/webct/format.php @@ -226,7 +226,7 @@ class qformat_webct extends qformat_default { if (isset($feedbacktext) and is_string($feedbacktext)) { if (ereg("^:",$line)) { - $question->feedback[$currentchoice] .= addslashes(trim($feedbacktext)); + $question->feedback[$currentchoice] = addslashes(trim($feedbacktext)); unset($feedbacktext); } else { @@ -280,16 +280,20 @@ class qformat_webct extends qformat_default { else { // Create empty feedback array foreach ($question->answer as $key => $dataanswer) { - $question->feedback[$key] = ''.$question->feedback[$key]; + if(!isset( $question->feedback[$key])){ + $question->feedback[$key] = ''; + } } // this tempgeneralfeedback allows the code to work with versions from 1.6 to 1.9 - // when question->generalfeedback is undefined, the webct feedback is added to each answer + // when question->generalfeedback is undefined, the webct feedback is added to each answer feedback if (isset($question->tempgeneralfeedback)){ if (isset($question->generalfeedback)) { $question->generalfeedback = $question->tempgeneralfeedback; } else { foreach ($question->answer as $key => $dataanswer) { - $question->feedback[$key] = $question->tempgeneralfeedback.'
'.$question->feedback[$key]; + if ($question->tempgeneralfeedback !=''){ + $question->feedback[$key] = $question->tempgeneralfeedback.'
'.$question->feedback[$key]; + } } } unset($question->tempgeneralfeedback); @@ -341,8 +345,19 @@ class qformat_webct extends qformat_default { $dataset->itemcount=count($dataset->datasetitem); } $question->import_process=TRUE ; + unset($question->answer); //not used in calculated question break; - + case MATCH: + if (count($question->answer) < 3){ + // add a dummy missing question + $question->name = 'Dummy question added '.$question->name ; + $question->answer[] = 'dummy'; + $question->subanswers[] = 'dummy'; + $question->subquestions[] = 'dummy'; + $question->fraction[] = '0.0'; + $question->feedback[] = ''; + } + break; default: // No problemo } @@ -396,11 +411,11 @@ class qformat_webct extends qformat_default { unset($question); $ignore_rest_of_question = TRUE; // Question Type not handled by Moodle */ - $question = $this->defaultquestion(); + $question = $this->defaultquestion(); $question->qtype = CALCULATED; $question->answers = array(); // No problem as they go as :FORMULA: from webct $question->units = array(); - $question->datasets = array(); + $question->dataset = array(); // To make us pass the end-of-question sanity checks $question->answer = array('dummy'); -- 2.39.5