|
|
|
@ -3095,7 +3095,7 @@ class Exercise |
|
|
|
|
* @param bool $show_result show results or not |
|
|
|
|
* @param int $propagate_neg |
|
|
|
|
* @param array $hotspot_delineation_result |
|
|
|
|
* @param boolean $showTotalScoreAndUserChoices |
|
|
|
|
* @param boolean $showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
* @todo reduce parameters of this function |
|
|
|
|
* @return string html code |
|
|
|
|
*/ |
|
|
|
@ -3110,7 +3110,7 @@ class Exercise |
|
|
|
|
$show_result = true, |
|
|
|
|
$propagate_neg = 0, |
|
|
|
|
$hotspot_delineation_result = array(), |
|
|
|
|
$showTotalScoreAndUserChoices = false |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt = true |
|
|
|
|
) { |
|
|
|
|
global $debug; |
|
|
|
|
//needed in order to use in the exercise_attempt() for the time |
|
|
|
@ -3187,9 +3187,6 @@ class Exercise |
|
|
|
|
$totalWeighting = 0; |
|
|
|
|
$totalScore = 0; |
|
|
|
|
|
|
|
|
|
// Destruction of the Question object |
|
|
|
|
//unset($objQuestionTmp); |
|
|
|
|
|
|
|
|
|
// Construction of the Answer object |
|
|
|
|
$objAnswerTmp = new Answer($questionId); |
|
|
|
|
$nbrAnswers = $objAnswerTmp->selectNbrAnswers(); |
|
|
|
@ -3894,12 +3891,13 @@ class Exercise |
|
|
|
|
//no break |
|
|
|
|
case MATCHING: |
|
|
|
|
if ($from_database) { |
|
|
|
|
$sql = 'SELECT id, answer, id_auto |
|
|
|
|
FROM '.$table_ans.' |
|
|
|
|
$sql = "SELECT id, answer, id_auto |
|
|
|
|
FROM $table_ans |
|
|
|
|
WHERE |
|
|
|
|
c_id = '.$course_id.' AND |
|
|
|
|
question_id = "'.$questionId.'" AND |
|
|
|
|
correct = 0'; |
|
|
|
|
c_id = $course_id AND |
|
|
|
|
question_id = $questionId AND |
|
|
|
|
correct = 0 |
|
|
|
|
"; |
|
|
|
|
$res_answer = Database::query($sql); |
|
|
|
|
// Getting the real answer |
|
|
|
|
$real_list = array(); |
|
|
|
@ -3907,13 +3905,13 @@ class Exercise |
|
|
|
|
$real_list[$real_answer['id_auto']] = $real_answer['answer']; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$sql = 'SELECT id, answer, correct, id_auto, ponderation |
|
|
|
|
FROM '.$table_ans.' |
|
|
|
|
$sql = "SELECT id, answer, correct, id_auto, ponderation |
|
|
|
|
FROM $table_ans |
|
|
|
|
WHERE |
|
|
|
|
c_id = '.$course_id.' AND |
|
|
|
|
question_id="'.$questionId.'" AND |
|
|
|
|
c_id = $course_id AND |
|
|
|
|
question_id = $questionId AND |
|
|
|
|
correct <> 0 |
|
|
|
|
ORDER BY id_auto'; |
|
|
|
|
ORDER BY id_auto"; |
|
|
|
|
$res_answers = Database::query($sql); |
|
|
|
|
|
|
|
|
|
$questionScore = 0; |
|
|
|
@ -3956,9 +3954,20 @@ class Exercise |
|
|
|
|
$questionScore += $i_answerWeighting; |
|
|
|
|
$totalScore += $i_answerWeighting; |
|
|
|
|
|
|
|
|
|
// Try with id |
|
|
|
|
if (isset($real_list[$i_answer_id])) { |
|
|
|
|
$user_answer = Display::span($real_list[$i_answer_id]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Try with $i_answer_id_auto |
|
|
|
|
if (empty($user_answer)) { |
|
|
|
|
if (isset($real_list[$i_answer_id_auto])) { |
|
|
|
|
$user_answer = Display::span( |
|
|
|
|
$real_list[$i_answer_id_auto] |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
$user_answer = Display::span( |
|
|
|
|
$real_list[$s_user_answer], |
|
|
|
@ -3971,7 +3980,7 @@ class Exercise |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($show_result) { |
|
|
|
|
if ($showTotalScoreAndUserChoices == true) { |
|
|
|
|
if ($showTotalScoreAndUserChoicesInLastAttempt == false) { |
|
|
|
|
$user_answer = ''; |
|
|
|
|
} |
|
|
|
|
echo '<tr>'; |
|
|
|
@ -3979,7 +3988,7 @@ class Exercise |
|
|
|
|
echo '<td>' . $user_answer; |
|
|
|
|
|
|
|
|
|
if (in_array($answerType, [MATCHING, MATCHING_DRAGGABLE])) { |
|
|
|
|
if (isset($real_list[$i_answer_correct_answer]) && $showTotalScoreAndUserChoices == false) { |
|
|
|
|
if (isset($real_list[$i_answer_correct_answer]) && $showTotalScoreAndUserChoicesInLastAttempt == true) { |
|
|
|
|
echo Display::span( |
|
|
|
|
$real_list[$i_answer_correct_answer], |
|
|
|
|
['style' => 'color: #008000; font-weight: bold;'] |
|
|
|
@ -4209,7 +4218,7 @@ class Exercise |
|
|
|
|
0, |
|
|
|
|
0, |
|
|
|
|
$results_disabled, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} elseif ($answerType == MULTIPLE_ANSWER_TRUE_FALSE) { |
|
|
|
|
ExerciseShowFunctions::display_multiple_answer_true_false( |
|
|
|
@ -4223,7 +4232,7 @@ class Exercise |
|
|
|
|
$questionId, |
|
|
|
|
0, |
|
|
|
|
$results_disabled, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} elseif ($answerType == MULTIPLE_ANSWER_COMBINATION_TRUE_FALSE ) { |
|
|
|
|
ExerciseShowFunctions::display_multiple_answer_combination_true_false( |
|
|
|
@ -4237,7 +4246,7 @@ class Exercise |
|
|
|
|
0, |
|
|
|
|
0, |
|
|
|
|
$results_disabled, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} elseif ($answerType == FILL_IN_BLANKS) { |
|
|
|
|
ExerciseShowFunctions::display_fill_in_blanks_answer( |
|
|
|
@ -4247,7 +4256,7 @@ class Exercise |
|
|
|
|
0, |
|
|
|
|
$results_disabled, |
|
|
|
|
'', |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} elseif ($answerType == CALCULATED_ANSWER) { |
|
|
|
|
ExerciseShowFunctions::display_calculated_answer( |
|
|
|
@ -4256,7 +4265,7 @@ class Exercise |
|
|
|
|
0, |
|
|
|
|
0, |
|
|
|
|
$results_disabled, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} elseif ($answerType == FREE_ANSWER) { |
|
|
|
|
ExerciseShowFunctions::display_free_answer( |
|
|
|
@ -4293,7 +4302,7 @@ class Exercise |
|
|
|
|
$answerComment, |
|
|
|
|
$results_disabled, |
|
|
|
|
$answerId, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} elseif ($answerType == HOT_SPOT_ORDER) { |
|
|
|
|
ExerciseShowFunctions::display_hotspot_order_answer( |
|
|
|
@ -4497,7 +4506,7 @@ class Exercise |
|
|
|
|
$questionId, |
|
|
|
|
$answerId, |
|
|
|
|
$results_disabled, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
ExerciseShowFunctions::display_unique_or_multiple_answer( |
|
|
|
@ -4511,7 +4520,7 @@ class Exercise |
|
|
|
|
$questionId, |
|
|
|
|
'', |
|
|
|
|
$results_disabled, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
@ -4528,7 +4537,7 @@ class Exercise |
|
|
|
|
$questionId, |
|
|
|
|
$answerId, |
|
|
|
|
$results_disabled, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
ExerciseShowFunctions::display_multiple_answer_combination_true_false( |
|
|
|
@ -4542,7 +4551,7 @@ class Exercise |
|
|
|
|
$questionId, |
|
|
|
|
'', |
|
|
|
|
$results_disabled, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
@ -4559,7 +4568,7 @@ class Exercise |
|
|
|
|
$questionId, |
|
|
|
|
$answerId, |
|
|
|
|
$results_disabled, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
ExerciseShowFunctions::display_multiple_answer_true_false( |
|
|
|
@ -4573,7 +4582,7 @@ class Exercise |
|
|
|
|
$questionId, |
|
|
|
|
'', |
|
|
|
|
$results_disabled, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
@ -4585,7 +4594,7 @@ class Exercise |
|
|
|
|
$questionId, |
|
|
|
|
$results_disabled, |
|
|
|
|
$str, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
break; |
|
|
|
|
case CALCULATED_ANSWER: |
|
|
|
@ -4596,7 +4605,7 @@ class Exercise |
|
|
|
|
$questionId, |
|
|
|
|
$results_disabled, |
|
|
|
|
'', |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
break; |
|
|
|
|
case FREE_ANSWER: |
|
|
|
@ -4631,7 +4640,7 @@ class Exercise |
|
|
|
|
$answerComment, |
|
|
|
|
$results_disabled, |
|
|
|
|
$answerId, |
|
|
|
|
$showTotalScoreAndUserChoices |
|
|
|
|
$showTotalScoreAndUserChoicesInLastAttempt |
|
|
|
|
); |
|
|
|
|
break; |
|
|
|
|
case HOT_SPOT_DELINEATION: |
|
|
|
|