passing cmid to question.php and removed use of session modform var. Question.php now independent of quiz module. Small improvement to displayed breadcrumbs.

This commit is contained in:
jamiesensei 2007-05-04 05:47:59 +00:00
parent e744ebba7b
commit 9ab75b2bcc
4 changed files with 51 additions and 15 deletions

View 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>';

View 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.

View 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)) {

View 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);
}
/**