/** * This adds a particular question to the supplied quiz. Based on /mod/quiz/edit.php * * @param int $questionid * @param stdClass $quiz * @return void */ public function add_question_to_quiz($questionid, $quiz) { quiz_require_question_use($questionid); quiz_add_quiz_question($questionid, $quiz, 0); quiz_delete_previews($quiz); quiz_update_sumgrades($quiz); }
quiz_delete_previews($quiz); redirect($afteractionurl); } $deleteemptypage = optional_param('deleteemptypage', false, PARAM_INT); if ($deleteemptypage !== false && confirm_sesskey()) { $quiz->questions = quiz_delete_empty_page($quiz->questions, $deleteemptypage); $DB->set_field('quiz', 'questions', $quiz->questions, array('id' => $quiz->id)); quiz_delete_previews($quiz); redirect($afteractionurl); } $remove = optional_param('remove', false, PARAM_INT); if ($remove && confirm_sesskey()) { // Remove a question from the quiz. // We require the user to have the 'use' capability on the question, // so that then can add it back if they remove the wrong one by mistake. quiz_require_question_use($remove); quiz_remove_question($quiz, $remove); quiz_delete_previews($quiz); quiz_update_sumgrades($quiz); redirect($afteractionurl); } if (optional_param('quizdeleteselected', false, PARAM_BOOL) && !empty($selectedquestionids) && confirm_sesskey()) { foreach ($selectedquestionids as $questionid) { if (quiz_has_question_use($questionid)) { quiz_remove_question($quiz, $questionid); } } quiz_delete_previews($quiz); quiz_update_sumgrades($quiz); redirect($afteractionurl); }
quiz_add_quiz_question($addquestion, $quiz, $addonpage); quiz_delete_previews($quiz); quiz_update_sumgrades($quiz); $thispageurl->param('lastchanged', $addquestion); redirect($afteractionurl); } if (optional_param('add', false, PARAM_BOOL) && confirm_sesskey()) { $structure->check_can_be_edited(); $addonpage = optional_param('addonpage', 0, PARAM_INT); // Add selected questions to the current quiz. $rawdata = (array) data_submitted(); foreach ($rawdata as $key => $value) { // Parse input for question ids. if (preg_match('!^q([0-9]+)$!', $key, $matches)) { $key = $matches[1]; quiz_require_question_use($key); quiz_add_quiz_question($key, $quiz, $addonpage); } } quiz_delete_previews($quiz); quiz_update_sumgrades($quiz); redirect($afteractionurl); } if (optional_param('addrandom', false, PARAM_BOOL) && confirm_sesskey()) { // Add random questions to the quiz. $structure->check_can_be_edited(); $recurse = optional_param('recurse', 0, PARAM_BOOL); $addonpage = optional_param('addonpage', 0, PARAM_INT); $categoryid = required_param('categoryid', PARAM_INT); $randomcount = required_param('randomcount', PARAM_INT); quiz_add_random_questions($quiz, $addonpage, $categoryid, $randomcount, $recurse);