You are here

function quiz_question_quiz_question_score in Quiz 8.5

Same name and namespace in other branches
  1. 8.6 question_types/quiz_question/quiz_question.module \quiz_question_quiz_question_score()
  2. 8.4 question_types/quiz_question/quiz_question.module \quiz_question_quiz_question_score()
  3. 6.6 question_types/quiz_question/quiz_question.module \quiz_question_quiz_question_score()
  4. 6.3 question_types/quiz_question/quiz_question.module \quiz_question_quiz_question_score()
  5. 6.4 question_types/quiz_question/quiz_question.module \quiz_question_quiz_question_score()
  6. 6.5 question_types/quiz_question/quiz_question.module \quiz_question_quiz_question_score()
  7. 7.6 question_types/quiz_question/quiz_question.module \quiz_question_quiz_question_score()
  8. 7 question_types/quiz_question/quiz_question.module \quiz_question_quiz_question_score()
  9. 7.4 question_types/quiz_question/quiz_question.module \quiz_question_quiz_question_score()
  10. 7.5 question_types/quiz_question/quiz_question.module \quiz_question_quiz_question_score()

Implements hook_quiz_question_score().

File

question_types/quiz_question/quiz_question.module, line 68
Quiz Question module.

Code

function quiz_question_quiz_question_score($quiz, $question_nid, $question_vid = NULL, $result_id = NULL) {
  if (!isset($quiz) && !isset($result_id)) {
    return quiz_question_get_max_score($question_nid, $question_vid);
  }

  // We avoid using node_load to increase performance...
  $dummy_node = new stdClass();
  $dummy_node->nid = $question_nid;
  $dummy_node->vid = $question_vid;
  $question = _quiz_question_get_instance($dummy_node, TRUE);
  if (!$question) {
    return FALSE;
  }
  $score = new stdClass();
  $score->possible = $question
    ->getMaximumScore();
  $score->question_nid = $question->node->nid;
  $score->question_vid = $question->node->vid;
  if (isset($result_id)) {
    $response = _quiz_question_response_get_instance($result_id, $question->node);
    $score->attained = $score->possible > 0 ? $response
      ->getScore() : 0;
    $score->possible = $response
      ->getMaxScore();
    $score->is_evaluated = $response
      ->isEvaluated();
  }
  return $score;
}