From 4dc29f5e8d639daf7aee746dca5fba66328d5de9 Mon Sep 17 00:00:00 2001 From: Dan Poltawski Date: Thu, 26 Nov 2015 14:53:15 +0000 Subject: [PATCH 1/2] MDL-48004 question: prevent notices on import screen If query params were not passed the page would previously display debug notices as setting the $requirecourseid param to question_edit_setup() was buggy. --- question/import.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/question/import.php b/question/import.php index 7110e531b73..9904eca0914 100644 --- a/question/import.php +++ b/question/import.php @@ -30,7 +30,7 @@ require_once($CFG->dirroot . '/question/import_form.php'); require_once($CFG->dirroot . '/question/format.php'); list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) = - question_edit_setup('import', '/question/import.php', false, false); + question_edit_setup('import', '/question/import.php'); // get display strings $txt = new stdClass(); From 5aeba19926fa4ed15b5a458ea851102b1001dab1 Mon Sep 17 00:00:00 2001 From: Dan Poltawski Date: Thu, 26 Nov 2015 15:04:10 +0000 Subject: [PATCH 2/2] MDL-48004 question: remove buggy arg of question_edit_setup There are no uses of this in core and it does not make sense --- question/editlib.php | 26 +++++++++++--------------- question/upgrade.txt | 6 ++++++ 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/question/editlib.php b/question/editlib.php index 922bc672859..c7d8290ac16 100644 --- a/question/editlib.php +++ b/question/editlib.php @@ -260,11 +260,15 @@ class_alias('core_question\bank\view', 'question_bank_view', true); * @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 bool $requirecmid require cmid? default false - * @param bool $requirecourseid require courseid, if cmid is not given? default true + * @param bool $unused no longer used, do no pass * @return array $thispageurl, $contexts, $cmid, $cm, $module, $pagevars */ -function question_edit_setup($edittab, $baseurl, $requirecmid = false, $requirecourseid = true) { - global $DB, $PAGE; +function question_edit_setup($edittab, $baseurl, $requirecmid = false, $unused = null) { + global $DB, $PAGE, $CFG; + + if ($unused !== null) { + debugging('Deprecated argument passed to question_edit_setup()', DEBUG_DEVELOPER); + } $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. @@ -283,18 +287,10 @@ function question_edit_setup($edittab, $baseurl, $requirecmid = false, $requirec } else { $module = null; $cm = null; - if ($requirecourseid){ - $courseid = required_param('courseid', PARAM_INT); - } else { - $courseid = optional_param('courseid', 0, PARAM_INT); - } - if ($courseid){ - $thispageurl->params(compact('courseid')); - require_login($courseid, false); - $thiscontext = context_course::instance($courseid); - } else { - $thiscontext = null; - } + $courseid = required_param('courseid', PARAM_INT); + $thispageurl->params(compact('courseid')); + require_login($courseid, false); + $thiscontext = context_course::instance($courseid); } if ($thiscontext){ diff --git a/question/upgrade.txt b/question/upgrade.txt index 6e65e504a48..0b7aa8dc431 100644 --- a/question/upgrade.txt +++ b/question/upgrade.txt @@ -1,5 +1,11 @@ This files describes API changes for code that uses the question API. +=== 3.1 === + +1) The argument $requirecourseid was removed from question_edit_setup() and + is no longer respected. The behaviour was found to be buggy and now throws + debugging notices if passed. + === 2.9 === 1) Some functions in questionlib.php which were deprecated in the past have now