You are here

function multichoice_calculate_result in Quiz 6.6

Same name and namespace in other branches
  1. 5.2 multichoice.module \multichoice_calculate_result()
  2. 5 multichoice.module \multichoice_calculate_result()
  3. 6.2 multichoice.module \multichoice_calculate_result()
  4. 6.3 question_types/multichoice/multichoice.module \multichoice_calculate_result()
  5. 6.5 question_types/multichoice/multichoice.module \multichoice_calculate_result()
1 call to multichoice_calculate_result()
multichoice_evaluate_question in question_types/multichoice/multichoice.module
Evaluate whether a question is correct.

File

question_types/multichoice/multichoice.module, line 986
Multiple choice question type for the Quiz module.

Code

function multichoice_calculate_result(&$result, $tried) {
  $correct_answers = array();
  $answers = db_query("SELECT answer_id FROM {quiz_multichoice_answers} WHERE nid = %d AND vid = %d AND is_correct = 1", $result->nid, $result->vid);
  while ($answer = db_fetch_array($answers)) {
    $correct_answers[] = $answer['answer_id'];
  }
  if (empty($correct_answers)) {

    // We are in a personality test. Score doesn't matter. Just return TRUE.
    return TRUE;
  }
  $all_correct = array_values($correct_answers) === array_values($tried);

  // Modify result object.
  $result->score = $all_correct ? 1 : 0;
  $result->is_correct = $all_correct;
  return $all_correct;
}