MDL-39488 Lesson Module: Fixed PHP error matching question,
authorRossiani Wijaya <rwijaya@moodle.com>
Wed, 8 May 2013 03:49:45 +0000 (11:49 +0800)
committerRossiani Wijaya <rwijaya@moodle.com>
Wed, 8 May 2013 05:49:41 +0000 (13:49 +0800)
if one or more options have not been selected.

mod/lesson/lang/en/lesson.php
mod/lesson/pagetypes/matching.php

index e7dd8aa..f2821d1 100644 (file)
@@ -280,7 +280,7 @@ $string['nameapproved'] = 'Name approved';
 $string['namereject'] = 'Sorry, your name has been rejected by the filter.<br />Please try another name.';
 $string['new'] = 'new';
 $string['nextpage'] = 'Next page';
-$string['noanswer'] = 'No answer given.  Please go back and submit an answer.';
+$string['noanswer'] = 'One or more questions have no answer given.  Please go back and submit an answer.';
 $string['noattemptrecordsfound'] = 'No attempt records found: no grade given';
 $string['nobranchtablefound'] = 'No content page found';
 $string['nocommentyet'] = 'No comment yet.';
index b777257..a5e306c 100644 (file)
@@ -161,18 +161,13 @@ class lesson_page_type_matching extends lesson_page {
         }
 
         $response = $data->response;
-        $empty = 0;
+
         foreach ($response as $resp) {
-            if ($resp != '') {
-                break;
-            } else {
-                $empty ++;
+            if ($resp == '') {
+                $result->noanswer = true;
+                return $result;
             }
         }
-        if ($empty == count($response)) {
-            $result->noanswer = true;
-            return $result;
-        }
 
         $answers = $this->get_answers();
 
@@ -191,7 +186,7 @@ class lesson_page_type_matching extends lesson_page {
         foreach ($response as $id => $value) {
             $userresponse[] = $value;
             // Make sure the user's answer exists in question's answer
-            if (array_key_exists($id, $answers) && $value) {
+            if (array_key_exists($id, $answers)) {
                 $answer = $answers[$id];
                 $result->studentanswer .= '<br />'.format_text($answer->answer, $answer->answerformat, $formattextdefoptions).' = '.$answers[$value]->response;
                 if ($id == $value) {