mirror of
https://github.com/moodle/moodle.git
synced 2025-04-20 16:04:25 +02:00
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:
parent
e744ebba7b
commit
9ab75b2bcc
@ -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> ";
|
||||
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", "<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&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", "<strong>$strcreatenewquestion</strong>");
|
||||
echo '</td><td valign="top" align="right">';
|
||||
helpbutton("questiontypes", $strcreatenewquestion, "quiz");
|
||||
echo '</td>';
|
||||
|
@ -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.
|
||||
|
@ -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)) {
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user