From 5c91aac3177c3415bf5671c52706f8406e534d7b Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Thu, 15 Dec 2011 19:32:37 +0000 Subject: [PATCH] MDL-29176 quiz editing: can't move questions onto a new page. --- mod/quiz/edit.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mod/quiz/edit.php b/mod/quiz/edit.php index 73a764001703b..257208e89a940 100644 --- a/mod/quiz/edit.php +++ b/mod/quiz/edit.php @@ -356,11 +356,19 @@ function module_specific_controls($totalnumber, $recurse, $category, $cmid, $cmo //move to the end of the selected page $pagebreakpositions = array_keys($questions, 0); $numpages = count($pagebreakpositions); + // Ensure the target page number is in range. - $moveselectedonpage = max(1, min($moveselectedonpage, $pagebreakpositions)); + for ($i = $moveselectedonpage; $i > $numpages; $i--) { + $questions[] = 0; + $pagebreakpositions[] = count($questions) - 1; + } $moveselectedpos = $pagebreakpositions[$moveselectedonpage - 1]; + + // Do the move. array_splice($questions, $moveselectedpos, 0, $selectedquestionids); $quiz->questions = implode(',', $questions); + + // Update the database. $DB->set_field('quiz', 'questions', $quiz->questions, array('id' => $quiz->id)); $deletepreviews = true; }