function QuizResult::score in Quiz 8.5
Same name and namespace in other branches
- 8.6 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,
  );
}