You are here

function quiz_build_question_list in Quiz 6.6

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

Retrieves a question list for a given quiz.

Parameters

$quiz: Quiz node.

Return value

Array of question node IDs.

2 calls to quiz_build_question_list()
quiz_take_quiz in ./quiz.module
Handles quiz taking.
_quiz_resume_existing_quiz in ./quiz.module
Resume an in-progress quiz.

File

./quiz.module, line 1783
Quiz Module

Code

function quiz_build_question_list($quiz) {
  $questions = array();

  // Get required questions first.
  $sql = "SELECT child_nid as nid, child_vid as vid\n    FROM {quiz_node_relationship}\n    WHERE parent_vid = %d\n      AND parent_nid = %d\n      AND question_status = %d\n    ORDER BY weight";
  $result = db_query($sql, $quiz->vid, $quiz->nid, QUESTION_ALWAYS);
  while ($question_node = db_fetch_array($result)) {
    $questions[] = $question_node;
  }

  // Get random questions for the remainder.
  if ($quiz->number_of_random_questions > 0) {

    //$questions = array_merge($questions, _quiz_get_random_questions($quiz->number_of_random_questions, $quiz->tid));
    $questions = array_merge($questions, _quiz_get_random_questions($quiz));
    if ($quiz->number_of_random_questions > count($questions)) {

      // Unable to find enough requested random questions.
      return FALSE;
    }
  }

  // Shuffle questions if required.
  if ($quiz->shuffle == 1) {
    shuffle($questions);
  }
  return $questions;
}