You are here

function quiz_build_question_list in Quiz 6.2

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.6 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.

1 call to quiz_build_question_list()
quiz_take_quiz in ./quiz.module
Handles quiz taking.

File

./quiz.module, line 1101
Quiz Module

Code

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

  // Get required questions first.
  $result = db_query("SELECT child_nid as nid, child_vid as vid FROM {quiz_node_relationship} WHERE parent_vid = %d AND parent_nid = %d AND question_status = %d", $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;
}