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 <[email protected]>
This commit is contained in:
Joseph Rézeau
2013-05-08 13:49:30 +08:00
committed by Rossiani Wijaya
parent 70d7e35499
commit 152a040acd
+12 -4
View File
@@ -161,7 +161,15 @@ class lesson_page_type_matching extends lesson_page {
}
$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 @@ class lesson_page_type_matching extends lesson_page {
}
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) {