You are here

function _quiz_get_answers in Quiz 7.5

Same name and namespace in other branches
  1. 8.4 quiz.module \_quiz_get_answers()
  2. 5.2 quiz.module \_quiz_get_answers()
  3. 5 quiz.module \_quiz_get_answers()
  4. 6.6 quiz.module \_quiz_get_answers()
  5. 6.2 quiz.module \_quiz_get_answers()
  6. 6.3 quiz.module \_quiz_get_answers()
  7. 6.4 quiz.module \_quiz_get_answers()
  8. 6.5 quiz.module \_quiz_get_answers()
  9. 7.6 quiz.module \_quiz_get_answers()
  10. 7 quiz.module \_quiz_get_answers()
  11. 7.4 quiz.module \_quiz_get_answers()

Get answer data for a specific result.

Parameters

$result_id: Result id.

Return value

Array of answers.

Deprecated

This function is no longer called in Quiz core and most likely will be removed.

File

./quiz.module, line 2957
quiz.module Main file for the Quiz module.

Code

function _quiz_get_answers($quiz, $result_id) {
  $questions = array();
  $ids = db_query("SELECT question_nid, question_vid, n.type, rs.max_score, qt.max_score as term_max_score\n                   FROM {quiz_node_results_answers} ra\n                   LEFT JOIN {node} n ON (ra.question_nid = n.nid)\n                   LEFT JOIN {quiz_node_results} r ON (ra.result_id = r.result_id)\n                   LEFT OUTER JOIN {quiz_node_relationship} rs ON (ra.question_vid = rs.child_vid) AND rs.parent_vid = r.vid\n                   LEFT OUTER JOIN {quiz_terms} qt ON (qt.vid = :vid AND qt.tid = ra.tid)\n                   WHERE ra.result_id = :rid\n                   ORDER BY ra.number, ra.answer_timestamp", array(
    ':vid' => $quiz->vid,
    ':rid' => $result_id,
  ));
  while ($line = $ids
    ->fetch()) {

    // Questions picked from term id's won't be found in the
    // quiz_node_relationship table.
    if ($line->max_score === NULL) {
      if ($quiz->randomization == 3) {
        $line->max_score = $line->term_max_score;
      }
    }
    $module = quiz_question_module_for_type($line->type);
    if (!$module) {
      continue;
    }
    $question_node = node_load($line->question_nid, $line->question_vid);
    $response = _quiz_question_response_get_instance($result_id, $question_node);
    $questions[$line->question_nid] = $response->question;

    // Add max score info to the question.
    if (!isset($questions[$line->question_nid]->score_weight)) {
      if ($questions[$line->question_nid]->max_score == 0) {
        $score_weight = 0;
      }
      else {
        $score_weight = $line->max_score / $questions[$line->question_nid]->max_score;
      }
      $questions[$line->question_nid]->qnr_max_score = $line->max_score;
      $questions[$line->question_nid]->score_weight = $score_weight;
    }
  }
  return $questions;
}