]> git.mjollnir.org Git - moodle.git/commitdiff
adding more validation and a dummy subquestion in MATCH if there is only 2 subquestions.
authorpichetp <pichetp>
Tue, 8 May 2007 19:19:09 +0000 (19:19 +0000)
committerpichetp <pichetp>
Tue, 8 May 2007 19:19:09 +0000 (19:19 +0000)
question/format/webct/format.php

index af0f591ab0921fa5a46246930896db5213a6a671..f2ed85e32bb5738976655d9692a24803d236bfe2 100644 (file)
@@ -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.'<br/>'.$question->feedback[$key];
+                                    if ($question->tempgeneralfeedback !=''){
+                                        $question->feedback[$key] = $question->tempgeneralfeedback.'<br/>'.$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');