From b2ec10959a0f039990b71d3382c379a8f0c58a9e Mon Sep 17 00:00:00 2001 From: skodak Date: Tue, 11 Jul 2006 13:02:42 +0000 Subject: [PATCH] workaround for Bug #6035 - editing quiz in one tab changes quiz in other; merged from MOODLE_16_STABLE --- mod/quiz/edit.php | 4 ++++ mod/quiz/editlib.php | 13 +++++++------ question/editlib.php | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/mod/quiz/edit.php b/mod/quiz/edit.php index 564da591bc..a930a19565 100644 --- a/mod/quiz/edit.php +++ b/mod/quiz/edit.php @@ -236,6 +236,10 @@ if (self.name == 'editquestion') { } if (isset($_REQUEST['savechanges']) and confirm_sesskey()) { + $savequizid = required_param('savequizid', PARAM_INT); + if ($modform->id != $savequizid) { + error("Error saving quiz settings, please do not change two quizes from the same browser", $CFG->wwwroot.'/mod/quiz/edit.php?quizid='.$savequizid); + } /// We need to save the new ordering (if given) and the new grades $oldquestions = explode(",", $modform->questions); // the questions in the old order $questions = array(); // for questions in the new order diff --git a/mod/quiz/editlib.php b/mod/quiz/editlib.php index ea932577a4..ab7b9b0d27 100644 --- a/mod/quiz/editlib.php +++ b/mod/quiz/editlib.php @@ -211,15 +211,15 @@ function quiz_print_question_list($quiz, $allowdelete=true, $showbreaks=true, $r echo 'Page break'; echo '
'; if ($count > 1) { - echo "sesskey\">id&sesskey=$USER->sesskey\">pixpath/t/up.gif\" border=\"0\" alt=\"$strmoveup\" />"; } echo ' '; if ($count < $lastindex) { - echo "sesskey\">id&sesskey=$USER->sesskey\">pixpath/t/down.gif\" border=\"0\" alt=\"$strmovedown\" />"; - echo "sesskey\"> + echo "id&sesskey=$USER->sesskey\"> pixpath/t/delete.gif\" border=\"0\" alt=\"$strremove\" />"; } echo ''; @@ -233,13 +233,13 @@ function quiz_print_question_list($quiz, $allowdelete=true, $showbreaks=true, $r echo ""; if ($count != 0) { - echo "sesskey\">id&sesskey=$USER->sesskey\">pixpath/t/up.gif\" border=\"0\" alt=\"$strmoveup\" />"; } echo ""; echo ""; if ($count < $lastindex-1) { - echo "sesskey\">id&sesskey=$USER->sesskey\">pixpath/t/down.gif\" border=\"0\" alt=\"$strmovedown\" />"; } echo ""; @@ -274,7 +274,7 @@ function quiz_print_question_list($quiz, $allowdelete=true, $showbreaks=true, $r pixpath/t/edit.gif\" border=\"0\" alt=\"$stredit\" />"; } if ($allowdelete) { - echo "sesskey\"> + echo "id&sesskey=$USER->sesskey\"> pixpath/t/removeright.gif\" border=\"0\" alt=\"$strremove\" />"; } @@ -300,6 +300,7 @@ function quiz_print_question_list($quiz, $allowdelete=true, $showbreaks=true, $r echo '
'; echo '
'; + echo ''; // ugly hack to prevent modform session "mistakes" print_simple_box_end(); echo "\n"; diff --git a/question/editlib.php b/question/editlib.php index 85b5643ae1..33b3aefa39 100644 --- a/question/editlib.php +++ b/question/editlib.php @@ -336,7 +336,7 @@ function question_list($course, $categoryid, $quizid=0, foreach ($questions as $question) { echo "\n\n"; if ($quizid) { - echo "id&sesskey=$USER->sesskey\">id&quizid=$quizid&sesskey=$USER->sesskey\">pixpath/t/moveleft.gif\" border=\"0\" alt=\"$straddtoquiz\" /> "; } echo "id&quizid=$quizid','$strpreview','scrollbars=yes,resizable=yes,width=700,height=480', false)\">