From 80d103357a58a6aeaffcca7f42eaedc71e9c49f4 Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Mon, 1 Aug 2022 16:36:06 -0500 Subject: [PATCH] Quiz: Fix division by zero + fix e_notice --- main/exercise/answer.class.php | 2 +- main/inc/lib/exercise.lib.php | 4 ++-- .../src/ToolExperience/Statement/QuizQuestionAnswered.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/main/exercise/answer.class.php b/main/exercise/answer.class.php index 198f543f20..2bdf3f9681 100755 --- a/main/exercise/answer.class.php +++ b/main/exercise/answer.class.php @@ -849,7 +849,7 @@ class Answer if (count($this->position) > $this->new_nbrAnswers) { $i = $this->new_nbrAnswers + 1; - while ($this->position[$i]) { + while (isset($this->position[$i])) { $position = $this->position[$i]; $sql = "DELETE FROM $answerTable WHERE diff --git a/main/inc/lib/exercise.lib.php b/main/inc/lib/exercise.lib.php index c5f8ee5afe..09aa61e464 100644 --- a/main/inc/lib/exercise.lib.php +++ b/main/inc/lib/exercise.lib.php @@ -5176,8 +5176,8 @@ EOT; continue; } - $total_score += $result['score']; - $total_weight += $result['weight']; + $total_score += (float) $result['score']; + $total_weight += (float) $result['weight']; $question_list_answers[] = [ 'question' => $result['open_question'], diff --git a/plugin/xapi/src/ToolExperience/Statement/QuizQuestionAnswered.php b/plugin/xapi/src/ToolExperience/Statement/QuizQuestionAnswered.php index d1f5a04e42..f891e4ce44 100644 --- a/plugin/xapi/src/ToolExperience/Statement/QuizQuestionAnswered.php +++ b/plugin/xapi/src/ToolExperience/Statement/QuizQuestionAnswered.php @@ -53,7 +53,7 @@ class QuizQuestionAnswered extends BaseStatement $rawResult = $this->attempt->getMarks(); $maxResult = $this->question->getPonderation(); - $scaledResult = $rawResult / $maxResult; + $scaledResult = $maxResult ? ($rawResult / $maxResult) : 0; $context = $this->generateContext(); $contextActivities = $context