function QuizResult::score in Quiz 8.6
Same name and namespace in other branches
- 8.5 src/Entity/QuizResult.php \Drupal\quiz\Entity\QuizResult::score()
- 6.x src/Entity/QuizResult.php \Drupal\quiz\Entity\QuizResult::score()
Calculates the score user received on quiz.
Parameters
$quiz: The quiz node.
$result_id: Quiz result ID.
Return value
array Contains five elements:
- question_count
- possible_score
- numeric_score
- percentage_score
- is_evaluated
1 call to QuizResult::score()
- QuizResult::finalize in src/
Entity/ QuizResult.php - Score a quiz result.
File
- src/
Entity/ QuizResult.php, line 483
Class
- QuizResult
- Defines the Quiz entity class.
Namespace
Drupal\quiz\EntityCode
function score() {
$quiz_result_answers = $this
->getLayout();
$numeric_score = $possible_score = 0;
$is_evaluated = 1;
foreach ($quiz_result_answers as $quiz_result_answer) {
// Get the scaled point value for this question response.
$numeric_score += $quiz_result_answer
->getPoints();
// Get the scaled max score for this question relationship.
$possible_score += $quiz_result_answer
->getMaxScore();
if (!$quiz_result_answer
->isEvaluated()) {
$is_evaluated = 0;
}
}
return array(
'question_count' => count($quiz_result_answers),
'possible_score' => $possible_score,
'numeric_score' => $numeric_score,
'percentage_score' => $possible_score == 0 ? 0 : round($numeric_score * 100 / $possible_score),
'is_evaluated' => $is_evaluated,
);
}