|
|
|
|
@ -4122,47 +4122,55 @@ class Exercise |
|
|
|
|
$studentAnswer = trim($listStudentAnswerTemp[$i]); |
|
|
|
|
$studentAnswerToShow = $studentAnswer; |
|
|
|
|
|
|
|
|
|
if (empty($studentAnswer)) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($debug) { |
|
|
|
|
error_log("Student answer: $i"); |
|
|
|
|
error_log($studentAnswer); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!$from_database) { |
|
|
|
|
$studentAnswer = FillBlanks::clearStudentAnswer($studentAnswer); |
|
|
|
|
if ($debug) { |
|
|
|
|
error_log("Student answer cleaned:"); |
|
|
|
|
error_log($studentAnswer); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$found = false; |
|
|
|
|
for ($j = 0; $j < count($listTeacherAnswerTemp); $j++) { |
|
|
|
|
$correctAnswer = $listTeacherAnswerTemp[$j]; |
|
|
|
|
$type = FillBlanks::getFillTheBlankAnswerType($correctAnswer); |
|
|
|
|
if ($type == FillBlanks::FILL_THE_BLANK_MENU) { |
|
|
|
|
$listMenu = FillBlanks::getFillTheBlankMenuAnswers($correctAnswer, false); |
|
|
|
|
if (!empty($studentAnswer)) { |
|
|
|
|
foreach ($listMenu as $key => $item) { |
|
|
|
|
if ($key == $correctAnswer) { |
|
|
|
|
$studentAnswerToShow = $item; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!$found) { |
|
|
|
|
if (FillBlanks::isStudentAnswerGood( |
|
|
|
|
$studentAnswer, |
|
|
|
|
$correctAnswer, |
|
|
|
|
$from_database |
|
|
|
|
) |
|
|
|
|
) { |
|
|
|
|
)) { |
|
|
|
|
$questionScore += $answerWeighting[$i]; |
|
|
|
|
$totalScore += $answerWeighting[$i]; |
|
|
|
|
$listTeacherAnswerTemp[$j] = ''; |
|
|
|
|
$found = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$type = FillBlanks::getFillTheBlankAnswerType($correctAnswer); |
|
|
|
|
if ($type == FillBlanks::FILL_THE_BLANK_MENU) { |
|
|
|
|
$listMenu = FillBlanks::getFillTheBlankMenuAnswers($correctAnswer, false); |
|
|
|
|
if (!empty($studentAnswer)) { |
|
|
|
|
foreach ($listMenu as $key => $item) { |
|
|
|
|
if ($key == $correctAnswer) { |
|
|
|
|
$studentAnswerToShow = $item; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$listCorrectAnswers['student_answer'][$i] = $studentAnswerToShow; |
|
|
|
|
if (!$found) { |
|
|
|
|
$listCorrectAnswers['student_score'][$i] = 0; |
|
|
|
|
} else { |
|
|
|
|
$listCorrectAnswers['student_score'][$i] = 1; |
|
|
|
|
} |
|
|
|
|
$listCorrectAnswers['student_score'][$i] = $found ? 1 : 0; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$answer = FillBlanks::getAnswerInStudentAttempt($listCorrectAnswers); |
|
|
|
|
|