Fix $PAGE->set_url initialisation order.

This commit is contained in:
Tim Hunt 2010-04-12 13:31:42 +00:00
parent 3784454b0e
commit 453b28d818
9 changed files with 20 additions and 18 deletions

View File

@ -12,7 +12,8 @@ require_once('../../config.php');
require_once($CFG->dirroot . '/mod/quiz/editlib.php');
require_once($CFG->dirroot . '/question/category_class.php');
list($thispageurl, $contexts, $cmid, $cm, $quiz, $pagevars) = question_edit_setup('editq', true);
list($thispageurl, $contexts, $cmid, $cm, $quiz, $pagevars) =
question_edit_setup('editq', '/mod/quiz/addrandom.php', true);
$defaultcategoryobj = question_make_default_categories($contexts->all());
$defaultcategoryid = $defaultcategoryobj->id;

View File

@ -113,8 +113,8 @@ function module_specific_controls($totalnumber, $recurse, $category, $cmid, $cmo
}
list($thispageurl, $contexts, $cmid, $cm, $quiz, $pagevars) =
question_edit_setup('editq', true);
$PAGE->set_url('/mod/quiz/edit.php', $thispageurl->params());
question_edit_setup('editq', '/mod/quiz/edit.php', true);
$PAGE->set_url($thispageurl);
$PAGE->set_pagelayout('base');
$defaultcategoryobj = question_make_default_categories($contexts->all());

View File

@ -970,9 +970,9 @@ class question_bank_add_to_quiz_action_column extends question_bank_action_colum
protected function display_content($question, $rowclasses) {
// for RTL languages: switch right and left arrows
if (right_to_left()) {
$movearrow = 't/removeright.gif';
$movearrow = 't/removeright';
} else {
$movearrow = 't/moveleft.gif';
$movearrow = 't/moveleft';
}
$this->print_icon($movearrow, $this->stradd, $this->qbank->add_to_quiz_url($question->id));
}

View File

@ -12,14 +12,11 @@
require_once($CFG->dirroot."/question/editlib.php");
require_once($CFG->dirroot."/question/category_class.php");
list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) = question_edit_setup('categories');
list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) =
question_edit_setup('categories', '/question/category.php');
// get values from form for actions on this page
$param = new stdClass();
$param->moveup = optional_param('moveup', 0, PARAM_INT);
$param->movedown = optional_param('movedown', 0, PARAM_INT);
$param->moveupcontext = optional_param('moveupcontext', 0, PARAM_INT);

View File

@ -12,7 +12,8 @@
require_once($CFG->dirroot."/question/editlib.php");
require_once($CFG->dirroot."/question/contextmove_form.php");
list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) = question_edit_setup('categories');
list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) =
question_edit_setup('categories', '/question/contextmove.php');
// get values from form for actions on this page
$toparent = required_param('toparent', PARAM_SEQUENCE);

View File

@ -54,7 +54,8 @@
}
$PAGE->set_url($url);
list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) = question_edit_setup('questions');
list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) =
question_edit_setup('questions', '/question/edit.php');
$questionbank = new question_bank_view($contexts, $thispageurl, $COURSE, $cm);
$questionbank->process_actions();

View File

@ -1515,17 +1515,19 @@ class question_bank_view {
/**
* Common setup for all pages for editing questions.
* @param string $baseurl the name of the script calling this funciton. For examle 'qusetion/edit.php'.
* @param string $edittab code for this edit tab
* @param boolean $requirecmid require cmid? default false
* @param boolean $requirecourseid require courseid, if cmid is not given? default true
* @return array $thispageurl, $contexts, $cmid, $cm, $module, $pagevars
*/
function question_edit_setup($edittab, $requirecmid = false, $requirecourseid = true){
function question_edit_setup($edittab, $baseurl, $requirecmid = false, $requirecourseid = true) {
global $QUESTION_EDITTABCAPS, $DB, $PAGE;
//$thispageurl is used to construct urls for all question edit pages we link to from this page. It contains an array
//of parameters that are passed from page to page.
$thispageurl = new moodle_url($PAGE->url); //TODO: this looks dumb, because this method is called BEFORE $PAGE->set_page() !!!!
// $thispageurl = new moodle_url($PAGE->url); //TODO: this looks dumb, because this method is called BEFORE $PAGE->set_page() !!!!
$thispageurl = new moodle_url($baseurl);
$thispageurl->remove_all_params(); // We are going to explicity add back everything important - this avoids unwanted params from being retained.
if ($requirecmid){
@ -1652,7 +1654,6 @@ function question_edit_setup($edittab, $requirecmid = false, $requirecourseid =
$thispageurl->param('cpage', $pagevars['cpage']);
}
return array($thispageurl, $contexts, $cmid, $cm, $module, $pagevars);
}
class question_edit_contexts{

View File

@ -13,8 +13,8 @@
require_once("editlib.php");
require_once("export_form.php");
list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) = question_edit_setup('export');
list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) =
question_edit_setup('export', '/question/export.php');
// get display strings
$strexportquestions = get_string('exportquestions', 'quiz');

View File

@ -15,7 +15,8 @@
require_once($CFG->libdir . '/questionlib.php');
require_once("import_form.php");
list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) = question_edit_setup('import', false, false);
list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) =
question_edit_setup('import', '/question/import.php', false, false);
// get display strings
$txt = new stdClass();