From: jamiesensei Date: Fri, 4 May 2007 05:47:59 +0000 (+0000) Subject: passing cmid to question.php and removed use of session modform var. Question.php... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=9ab75b2bcc2539abd873ab1e292691afc33bb935;p=moodle.git passing cmid to question.php and removed use of session modform var. Question.php now independent of quiz module. Small improvement to displayed breadcrumbs. --- diff --git a/question/editlib.php b/question/editlib.php index 909a012c81..8374fc2b66 100644 --- a/question/editlib.php +++ b/question/editlib.php @@ -124,8 +124,7 @@ function question_category_form($course, $pageurl, $current, $recurse=1, $showhi $strshow = get_string("show", "quiz"); $streditcats = get_string("editcategories", "quiz"); - echo "$strcategory: "; - popup_form ("edit.php?".$pageurl->get_query_string()."&cat=", $catmenu, "catmenu", $current, "", "", "", false, "self"); + popup_form ("edit.php?".$pageurl->get_query_string()."&cat=", $catmenu, "catmenu", $current, "", "", "", false, "self", "$strcategory"); echo '
'; echo "
"; @@ -227,11 +226,13 @@ function question_list($course, $pageurl, $categoryid, $cm = null, // check if editing questions in this category is allowed if ($canedit) { - echo "$strcreatenewquestion:"; echo ''; $returnurl = urlencode($pageurl->out()); - popup_form ("$CFG->wwwroot/question/question.php?returnurl=$returnurl&category=$category->id&qtype=", $qtypemenu, "addquestion", - "", "choose", "", "", false, "self"); + $questionurl = new moodle_url("$CFG->wwwroot/question/question.php", + array('cmid' => $cm->id, + 'returnurl' => $returnurl, + 'category' => $category->id)); + popup_form ($questionurl->out().'&qtype=', $qtypemenu, "addquestion", "", "choose", "", "", false, "self", "$strcreatenewquestion"); echo ''; helpbutton("questiontypes", $strcreatenewquestion, "quiz"); echo ''; diff --git a/question/question.php b/question/question.php index 9687f009f6..127cad06a6 100644 --- a/question/question.php +++ b/question/question.php @@ -19,13 +19,20 @@ $returnurl = optional_param('returnurl', 0, PARAM_URL); if (!$returnurl && isset($SESSION->fromurl)) { $returnurl = $SESSION->fromurl; } - // Read URL parameters telling us which question to edit. $id = optional_param('id', 0, PARAM_INT); // question id +$cmid = optional_param('cmid', 0, PARAM_INT); $qtype = optional_param('qtype', '', PARAM_FILE); $categoryid = optional_param('category', 0, PARAM_INT); $wizardnow = optional_param('wizardnow', '', PARAM_ALPHA); +if ($cmid){ + list($module, $cm) = get_module_from_cmid($cmid); +} else { + $module = null; + $cm = null; +} + // Validate the URL parameters. if ($id) { if (!$question = get_record('question', 'id', $id)) { @@ -76,6 +83,9 @@ if ($mform === null) { } $toform = $question; // send the question object and a few more parameters to the form $toform->returnurl = $returnurl; +if ($cm !== null){ + $toform->cmid = $cm->id; +} $mform->set_data($toform); if ($mform->is_cancelled()){ @@ -111,16 +121,28 @@ if ($mform->is_cancelled()){ } } else { - $streditingquestion = get_string('editingquestion', 'question'); - if (isset($SESSION->modform->instance)) { - // TODO: remove restriction to quiz - $strediting = '' . get_string('editingquiz', 'quiz') . ' -> '. - $streditingquestion; + list($streditingquestion,) = $QTYPES[$question->qtype]->get_heading(); + if ($cm !== null) { + $strupdatemodule = has_capability('moodle/course:manageactivities', get_context_instance(CONTEXT_COURSE, $category->course)) + ? update_module_button($cm->id, $category->course, get_string('modulename', $cm->modname)) + : ""; + $crumbs = array(); + $crumbs[] = array('name' => get_string('modulenameplural', $cm->modname), 'link' => "$CFG->wwwroot/mod/{$cm->modname}/index.php?id=$category->course", 'type' => 'activity'); + $crumbs[] = array('name' => format_string($module->name), 'link' => "$CFG->wwwroot/mod/{$cm->modname}/view.php?cmid={$cm->id}", 'type' => 'title'); + $crumbs[] = array('name' => get_string('editingquiz', 'quiz'), 'link' => $returnurl, 'type' => 'title'); + $crumbs[] = array('name' => $streditingquestion, 'link' => '', 'type' => 'title'); + $navigation = build_navigation($crumbs); + print_header_simple($streditingquestion, '', $navigation, "", "", true, $strupdatemodule); + } else { + $crumbs = array(); + $crumbs[] = array('name' => get_string('editquestions', "quiz"), 'link' => $returnurl, 'type' => 'title'); + $crumbs[] = array('name' => $streditingquestion, 'link' => '', 'type' => 'title'); $strediting = ''. get_string("editquestions", "quiz").' -> '.$streditingquestion; + $navigation = build_navigation($crumbs); + print_header_simple($streditingquestion, '', $navigation); } - print_header_simple($streditingquestion, '', $strediting); // Display a heading, question editing form and possibly some extra content needed for // for this question type. diff --git a/question/type/edit_question_form.php b/question/type/edit_question_form.php index acb62772bd..0203818a31 100644 --- a/question/type/edit_question_form.php +++ b/question/type/edit_question_form.php @@ -112,6 +112,10 @@ class question_edit_form extends moodleform { $mform->addElement('hidden', 'versioning'); $mform->setType('versioning', PARAM_BOOL); + $mform->addElement('hidden', 'cmid'); + $mform->setType('cmid', PARAM_INT); + $mform->setDefault('cmid', 0); + $buttonarray = array(); $buttonarray[] = &$mform->createElement('submit', 'submitbutton', get_string('savechanges')); if (!empty($this->question->id)) { diff --git a/question/type/questiontype.php b/question/type/questiontype.php index 0c66b6b53e..2c2fa6218e 100644 --- a/question/type/questiontype.php +++ b/question/type/questiontype.php @@ -154,6 +154,17 @@ class default_questiontype { * @param string $wizardnow is '' for first page. */ function display_question_editing_page(&$mform, $question, $wizardnow){ + list($heading, $langmodule) = $this->get_heading(); + print_heading_with_help($heading, $this->name(), $langmodule); + $mform->display(); + } + + /** + * Method called by display_question_editing_page and by question.php to get heading for breadcrumbs. + * + * @return array a string heading and the langmodule in which it was found. + */ + function get_heading(){ $name = $this->name(); $langmodule = 'qtype_' . $name; $strheading = get_string('editing' . $name, $langmodule); @@ -163,9 +174,7 @@ class default_questiontype { $langmodule = 'quiz'; $strheading = get_string('editing' . $name, $langmodule); } - - print_heading_with_help($strheading, $name, $langmodule); - $mform->display(); + return array($strheading, $langmodule); } /**