Permalink
Browse files

MDL-39488 Lesson Module: Fix for "Match question throws PHP error if …

…one or more options have not been selected "

Signed-off-by: Joseph Rézeau <moodle@rezeau.org>
  • Loading branch information...
1 parent 95190fd commit b0e9cdd45bc9a32504dd27c623586976b0084643 Joseph Rézeau committed with Rossiani Wijaya May 3, 2013
Showing with 12 additions and 4 deletions.
  1. +12 −4 mod/lesson/pagetypes/matching.php
@@ -161,7 +161,15 @@ public function check_answer() {
}
$response = $data->response;
- if (!is_array($response)) {
+ $empty = 0;
+ foreach ($response as $resp) {
+ if ($resp != '') {
+ break;
+ } else {
+ $empty ++;
+ }
+ }
+ if ($empty == count($response)) {
$result->noanswer = true;
return $result;
}
@@ -177,13 +185,13 @@ public function check_answer() {
}
unset($answers[$key]);
}
- // get he users exact responses for record keeping
+ // get the user's exact responses for record keeping
$hits = 0;
$userresponse = array();
foreach ($response as $id => $value) {
$userresponse[] = $value;
- // Make sure the user's answer is exist in question's answer
- if (array_key_exists($id, $answers)) {
+ // Make sure the user's answer exists in question's answer
+ if (array_key_exists($id, $answers) && $value) {
$answer = $answers[$id];
$result->studentanswer .= '<br />'.format_text($answer->answer, $answer->answerformat, $formattextdefoptions).' = '.$answers[$value]->response;
if ($id == $value) {

0 comments on commit b0e9cdd

Please sign in to comment.