]> git.mjollnir.org Git - moodle.git/commitdiff
passing cmid to question.php and removed use of session modform var. Question.php...
authorjamiesensei <jamiesensei>
Fri, 4 May 2007 05:47:59 +0000 (05:47 +0000)
committerjamiesensei <jamiesensei>
Fri, 4 May 2007 05:47:59 +0000 (05:47 +0000)
question/editlib.php
question/question.php
question/type/edit_question_form.php
question/type/questiontype.php

index 909a012c81b0514fb992c2b79e4b8d3e9e06e2f2..8374fc2b6669d0f9548203ce718747ed6a9391fb 100644 (file)
@@ -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 "<strong>$strcategory:</strong>&nbsp;";
-    popup_form ("edit.php?".$pageurl->get_query_string()."&amp;cat=", $catmenu, "catmenu", $current, "", "", "", false, "self");
+    popup_form ("edit.php?".$pageurl->get_query_string()."&amp;cat=", $catmenu, "catmenu", $current, "", "", "", false, "self", "<strong>$strcategory</strong>");
 
     echo '<form method="post" action="edit.php" id="displayoptions">';
     echo "<fieldset class='invisiblefieldset'>";
@@ -227,11 +226,13 @@ function question_list($course, $pageurl, $categoryid, $cm = null,
 
     // check if editing questions in this category is allowed
     if ($canedit) {
-        echo "<td valign=\"top\"><b>$strcreatenewquestion:</b></td>";
         echo '<td valign="top" align="right">';
         $returnurl = urlencode($pageurl->out());
-        popup_form ("$CFG->wwwroot/question/question.php?returnurl=$returnurl&amp;category=$category->id&amp;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().'&amp;qtype=', $qtypemenu, "addquestion", "", "choose", "", "", false, "self", "<strong>$strcreatenewquestion</strong>");
         echo '</td><td valign="top" align="right">';
         helpbutton("questiontypes", $strcreatenewquestion, "quiz");
         echo '</td>';
index 9687f009f6e61b85580c6d8515e1d78ca97296f5..127cad06a6d74258e8c33cca6eb32c13bc346bbb 100644 (file)
@@ -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 = '<a href="' . $returnurl . '">' . get_string('editingquiz', 'quiz') . '</a> -> '.
-                $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 = '<a href="edit.php?courseid='.$category->course.'">'.
                 get_string("editquestions", "quiz").'</a> -> '.$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.
index acb62772bdb8008c2ad0b8c822d6e7a401518f3f..0203818a31a4e713b3f88713c161c0589d154d8b 100644 (file)
@@ -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)) {
index 0c66b6b53e8aafbe5172837f564b201a461e81e5..2c2fa6218e5ec4ada0c3dde3d3e0d309c868c0b5 100644 (file)
@@ -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);
     }
 
     /**