You are here

function _quiz_update_items in Quiz 6.6

Same name and namespace in other branches
  1. 8.4 quiz.admin.inc \_quiz_update_items()
  2. 6.4 quiz.admin.inc \_quiz_update_items()
  3. 7.6 quiz.admin.inc \_quiz_update_items()
  4. 7 quiz.admin.inc \_quiz_update_items()
  5. 7.4 quiz.admin.inc \_quiz_update_items()
  6. 7.5 quiz.admin.inc \_quiz_update_items()

Update a quiz or qcollection set of items with new weights and membership

Parameters

$quiz:

$weight_map:

$removed_set:

$is_new_revision:

Return value

array set of questions after updating

2 calls to _quiz_update_items()
qcollection_questions_form_submit in includes/qcollection/qcollection.inc
Submit function for qcollection_questions.
quiz_questions_form_submit in ./quiz.admin.inc
Submit function for quiz_questions.

File

./quiz.admin.inc, line 354
Administrator interface for Quiz module.

Code

function _quiz_update_items($quiz, $weight_map, $removed_set, $is_new_revision) {

  // Get quiz questions that will always be on the quiz:
  $questions = array();
  foreach ($weight_map as $id => $weight) {
    if (in_array($id, $removed_set)) {

      // Skip items that should be removed.
      continue;
    }
    list($state, $nid) = explode('-', $id, 2);
    $nid = (int) $nid;
    $question['nid'] = $nid;
    $question['state'] = $state == 'always' ? QUESTION_ALWAYS : QUESTION_RANDOM;
    $question['weight'] = $weight;

    // Add item as an object in the questions array.
    $questions[] = (object) $question;
  }

  // Save questions.
  quiz_set_questions($quiz, $questions, $new_revision);
  return $questions;
}