From 6a5e9a8506ccfb9c5a0ed30556612383a13a93e2 Mon Sep 17 00:00:00 2001 From: tjhunt Date: Thu, 22 Mar 2007 11:46:15 +0000 Subject: [PATCH] MDL-9004 - Breadcrumb trail is wrong when editing a quiz question. Merged from MOODLE_18_STABLE. --- mod/quiz/tabs.php | 149 +++++++++++++++++++++--------------------- question/edit.php | 2 - question/showbank.php | 2 +- 3 files changed, 74 insertions(+), 79 deletions(-) diff --git a/mod/quiz/tabs.php b/mod/quiz/tabs.php index 8494c670de..bd46d6a5ec 100644 --- a/mod/quiz/tabs.php +++ b/mod/quiz/tabs.php @@ -1,95 +1,92 @@ id); +} +if (!isset($course)) { + $course = get_record('course', 'id', $quiz->course); +} - if (empty($quiz)) { - error('You cannot call this script in that way'); - } - if (!isset($currenttab)) { - $currenttab = ''; - } - if (!isset($cm)) { - $cm = get_coursemodule_from_instance('quiz', $quiz->id); - } - if (!isset($course)) { - $course = get_record('course', 'id', $quiz->course); - } +$context = get_context_instance(CONTEXT_MODULE, $cm->id); - $context = get_context_instance(CONTEXT_MODULE, $cm->id); - //print_heading(format_string($quiz->name)); +$tabs = array(); +$row = array(); +$inactive = array(); +$activated = array(); - $tabs = array(); - $row = array(); - $inactive = array(); - $activated = array(); +if (has_capability('mod/quiz:view', $context)) { + $row[] = new tabobject('info', "$CFG->wwwroot/mod/quiz/view.php?q=$quiz->id", get_string('info', 'quiz')); +} +if (has_capability('mod/quiz:viewreports', $context)) { + $row[] = new tabobject('reports', "$CFG->wwwroot/mod/quiz/report.php?q=$quiz->id", get_string('results', 'quiz')); +} +if (has_capability('mod/quiz:preview', $context)) { + $row[] = new tabobject('preview', "$CFG->wwwroot/mod/quiz/attempt.php?q=$quiz->id", get_string('preview', 'quiz')); +} +if (has_capability('mod/quiz:manage', $context)) { + $row[] = new tabobject('edit', "$CFG->wwwroot/mod/quiz/edit.php?quizid=$quiz->id", get_string('edit')); +} - if (has_capability('mod/quiz:view', $context)) { - $row[] = new tabobject('info', "$CFG->wwwroot/mod/quiz/view.php?q=$quiz->id", get_string('info', 'quiz')); - } - if (has_capability('mod/quiz:viewreports', $context)) { - $row[] = new tabobject('reports', "$CFG->wwwroot/mod/quiz/report.php?q=$quiz->id", get_string('results', 'quiz')); - } - if (has_capability('mod/quiz:preview', $context)) { - $row[] = new tabobject('preview', "$CFG->wwwroot/mod/quiz/attempt.php?q=$quiz->id", get_string('preview', 'quiz')); - } - if (has_capability('mod/quiz:manage', $context)) { - $row[] = new tabobject('edit', "$CFG->wwwroot/mod/quiz/edit.php?quizid=$quiz->id", get_string('edit')); - } - - if ($currenttab == 'info' && count($row) == 1) { - // Don't show only an info tab (e.g. to students). - } else { - $tabs[] = $row; - } +if ($currenttab == 'info' && count($row) == 1) { + // Don't show only an info tab (e.g. to students). +} else { + $tabs[] = $row; +} - if ($currenttab == 'reports' and isset($mode)) { - $inactive[] = 'reports'; - $activated[] = 'reports'; - - $allreports = get_list_of_plugins("mod/quiz/report"); - $reportlist = array ('overview', 'regrade', 'grading', 'analysis'); // Standard reports we want to show first +if ($currenttab == 'reports' and isset($mode)) { + $inactive[] = 'reports'; + $activated[] = 'reports'; + + $allreports = get_list_of_plugins("mod/quiz/report"); + $reportlist = array ('overview', 'regrade', 'grading', 'analysis'); // Standard reports we want to show first - foreach ($allreports as $report) { - if (!in_array($report, $reportlist)) { - $reportlist[] = $report; - } + foreach ($allreports as $report) { + if (!in_array($report, $reportlist)) { + $reportlist[] = $report; } + } - $row = array(); - $currenttab = ''; - foreach ($reportlist as $report) { - $row[] = new tabobject($report, "$CFG->wwwroot/mod/quiz/report.php?q=$quiz->id&mode=$report", - get_string($report, 'quiz_'.$report)); - if ($report == $mode) { - $currenttab = $report; - } + $row = array(); + $currenttab = ''; + foreach ($reportlist as $report) { + $row[] = new tabobject($report, "$CFG->wwwroot/mod/quiz/report.php?q=$quiz->id&mode=$report", + get_string($report, 'quiz_'.$report)); + if ($report == $mode) { + $currenttab = $report; } - $tabs[] = $row; } + $tabs[] = $row; +} - if ($currenttab == 'edit' and isset($mode)) { - $inactive[] = 'edit'; - $activated[] = 'edit'; +if ($currenttab == 'edit' and isset($mode)) { + $inactive[] = 'edit'; + $activated[] = 'edit'; - $row = array(); - $currenttab = $mode; + $row = array(); + $currenttab = $mode; - $strquizzes = get_string('modulenameplural', 'quiz'); - $strquiz = get_string('modulename', 'quiz'); - $streditingquiz = get_string("editinga", "moodle", $strquiz); - $strupdate = get_string('updatethis', 'moodle', $strquiz); - $row[] = new tabobject('editq', "$CFG->wwwroot/mod/quiz/edit.php?quizid=$quiz->id", $strquiz, $streditingquiz); - questionbank_navigation_tabs($row, $context, $course->id); - $tabs[] = $row; - } + $strquizzes = get_string('modulenameplural', 'quiz'); + $strquiz = get_string('modulename', 'quiz'); + $streditingquiz = get_string("editinga", "moodle", $strquiz); + $strupdate = get_string('updatethis', 'moodle', $strquiz); + $row[] = new tabobject('editq', "$CFG->wwwroot/mod/quiz/edit.php?quizid=$quiz->id", $strquiz, $streditingquiz); + questionbank_navigation_tabs($row, $context, $course->id); + $tabs[] = $row; +} - print_tabs($tabs, $currenttab, $inactive, $activated); +print_tabs($tabs, $currenttab, $inactive, $activated); ?> diff --git a/question/edit.php b/question/edit.php index b282040184..3ea031a9bb 100644 --- a/question/edit.php +++ b/question/edit.php @@ -30,10 +30,8 @@ require_login($course->id, false); $SESSION->returnurl = $FULLME; - $SESSION->fromurl = $FULLME; // Print basic page layout. - $streditingquestions = get_string('editquestions', "quiz"); // TODO: generalise this to any activity diff --git a/question/showbank.php b/question/showbank.php index d234e983da..ede2540a4d 100644 --- a/question/showbank.php +++ b/question/showbank.php @@ -47,9 +47,9 @@ } else { $sortorder = isset($SESSION->questionsortorder) ? $SESSION->questionsortorder : 'qtype, name ASC'; } + $SESSION->fromurl = $FULLME; /// Now, check for commands on this page and modify variables as necessary - if (isset($_REQUEST['move']) and confirm_sesskey()) { /// Move selected questions to new category $tocategoryid = required_param('category', PARAM_INT); if (!$tocategory = get_record('question_categories', 'id', $tocategoryid)) { -- 2.39.5