function _quiz_update_items in Quiz 6.6
Same name and namespace in other branches
- 8.4 quiz.admin.inc \_quiz_update_items()
- 6.4 quiz.admin.inc \_quiz_update_items()
- 7.6 quiz.admin.inc \_quiz_update_items()
- 7 quiz.admin.inc \_quiz_update_items()
- 7.4 quiz.admin.inc \_quiz_update_items()
- 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;
}