From c4adc2c4933a8d50288ed0e2193924ad6e720122 Mon Sep 17 00:00:00 2001 From: gustav_delius Date: Thu, 9 Feb 2006 13:57:22 +0000 Subject: [PATCH] Added a second row of tabs to the Edit tab: Questions, Categories, Import, Export, Settings Added phpdoc header to some files Improved language string and help file for decimal digits on grades --- mod/quiz/category.php | 27 ++++++++++++++- mod/quiz/config.html | 4 +-- mod/quiz/edit.php | 2 ++ mod/quiz/export.php | 81 +++++++++++++++++++++++++++++++++++-------- mod/quiz/import.php | 79 +++++++++++++++++++++++++++++++++++------ mod/quiz/mod.html | 14 +++----- mod/quiz/tabs.php | 28 +++++++++++++-- 7 files changed, 195 insertions(+), 40 deletions(-) diff --git a/mod/quiz/category.php b/mod/quiz/category.php index e181697beed..4a70f62a5bc 100644 --- a/mod/quiz/category.php +++ b/mod/quiz/category.php @@ -1,5 +1,13 @@ fullname}' can use this page!"); } + /// Header: + if (isset($SESSION->modform->instance) and $quiz = get_record('quiz', 'id', $SESSION->modform->instance)) { + $strupdatemodule = isteacheredit($course->id) + ? update_module_button($SESSION->modform->cmid, $course->id, get_string('modulename', 'quiz')) + : ""; + print_header_simple(get_string('editcategories', 'quiz'), '', + "id\">".get_string('modulenameplural', 'quiz').''. + " -> id\">".format_string($quiz->name).''. + ' -> '.get_string('editcategories', 'quiz'), + "", "", true, $strupdatemodule); + $currenttab = 'edit'; + $mode = 'categories'; include('tabs.php'); + } else { + print_header_simple(get_string('editcategories', 'quiz'), '', + "id\">".get_string('modulenameplural', 'quiz').''. + '-> '.get_string('editquestions', 'quiz').''. + ' -> '.get_string('editcategories', 'quiz')); } $qcobject = new quiz_category_object(); diff --git a/mod/quiz/config.html b/mod/quiz/config.html index 2ee518b1139..8ccc062d55a 100644 --- a/mod/quiz/config.html +++ b/mod/quiz/config.html @@ -240,7 +240,7 @@ - : + : decimalpoints, "", "", ""); - helpbutton("decimalpoints", get_string("decimalpoints","quiz"), "quiz"); + helpbutton("decimalpoints", get_string("decimaldigits","quiz"), "quiz"); ?> diff --git a/mod/quiz/edit.php b/mod/quiz/edit.php index 86375ca0498..338be329e4f 100644 --- a/mod/quiz/edit.php +++ b/mod/quiz/edit.php @@ -405,6 +405,7 @@ if (self.name == 'editquestion') { true, $strupdatemodule); $currenttab = 'edit'; + $mode = 'editq'; $quiz = &$modform; include('tabs.php'); @@ -457,6 +458,7 @@ if (self.name == 'editquestion') { "", "", true, $strupdatemodule); $currenttab = 'edit'; + $mode = 'editq'; $quiz = &$modform; include('tabs.php'); diff --git a/mod/quiz/export.php b/mod/quiz/export.php index 8799787b2bc..4393ca54dc5 100644 --- a/mod/quiz/export.php +++ b/mod/quiz/export.php @@ -1,26 +1,42 @@ modform)) { + $categoryid = $SESSION->modform->category; + } + } + + if (! $category = get_record("quiz_categories", "id", $categoryid)) { + $category = quiz_get_default_category($courseid); } if (! $categorycourse = get_record("course", "id", $category->course)) { error("This category doesn't belong to a valid course!"); } - if (! $course = get_record("course", "id", $courseid)) { - error("Course does not exist!"); - } - require_login($course->id, false); if (!isteacher($course->id)) { @@ -37,9 +53,27 @@ $streditingquiz = get_string(isset($SESSION->modform->instance) ? "editingquiz" : "editquestions", "quiz"); $dirname = get_string("exportfilename","quiz"); - print_header_simple("$strexportquestions", "$strexportquestions", - "wwwroot/mod/$dirname/index.php?id=$course->id\">$strquizzes". - " -> $streditingquiz -> $strexportquestions"); + + /// Header: + + if (isset($SESSION->modform->instance) and $quiz = get_record('quiz', 'id', $SESSION->modform->instance)) { + $strupdatemodule = isteacheredit($course->id) + ? update_module_button($SESSION->modform->cmid, $course->id, get_string('modulename', 'quiz')) + : ""; + print_header_simple($strexportquestions, '', + "id\">".get_string('modulenameplural', 'quiz').''. + " -> id\">".format_string($quiz->name).''. + ' -> '.$strexportquestions, + "", "", true, $strupdatemodule); + $currenttab = 'edit'; + $mode = 'export'; + include('tabs.php'); + } else { + print_header_simple($strexportquestions, '', + "id\">".get_string('modulenameplural', 'quiz').''. + '-> '.get_string('editquestions', 'quiz').''. + ' -> '.$strexportquestions); + } if (!empty($format)) { /// Filename @@ -101,6 +135,20 @@ $exportfilename = default_export_filename($course, $category); } + /// Get all the existing categories now + if (!$categories = get_records_select("quiz_categories", "course = '{$course->id}' OR publish = '1'", "parent, sortorder, name ASC")) { + error("Could not find any question categories!"); + } + $categories = add_indented_names($categories); + foreach ($categories as $key => $cat) { + if ($catcourse = get_record("course", "id", $cat->course)) { + if ($cat->publish && $cat->course != $course->id) { + $cat->indentedname .= " ($catcourse->shortname)"; + } + $catmenu[$cat->id] = $cat->indentedname; + } + } + print_heading_with_help($strexportquestions, "export", "quiz"); print_simple_box_start("center"); @@ -111,7 +159,13 @@ echo "\n"; print_string("category", "quiz"); echo ":"; - echo str_replace(' ', '', $category->name) . " ($categorycourse->shortname)"; + if (!$showcatmenu) { // category already specified + echo quiz_get_category_coursename($category); + echo " id\" />"; + } else { // no category specified, let user choose + choose_from_menu($catmenu, "category", $category->id, ""); + } + //echo str_replace(' ', '', $category->name) . " ($categorycourse->shortname)"; echo "\n"; echo ""; @@ -128,7 +182,6 @@ echo "\n"; echo ""; - echo " id\" />"; echo " id\" />"; echo " "; echo "\n"; diff --git a/mod/quiz/import.php b/mod/quiz/import.php index 7fb8a5991fe..370b387a9ed 100644 --- a/mod/quiz/import.php +++ b/mod/quiz/import.php @@ -1,14 +1,35 @@ modform)) { + $categoryid = $SESSION->modform->category; + } + } + + if (! $category = get_record("quiz_categories", "id", $categoryid)) { + if ($courseid) { + $category = quiz_get_default_category($courseid); + } else { + error("No category specified"); + } } if (! $course = get_record("course", "id", $category->course)) { @@ -31,9 +52,28 @@ $strquizzes = get_string('modulenameplural', 'quiz'); $streditingquiz = get_string(isset($SESSION->modform->instance) ? "editingquiz" : "editquestions", "quiz"); - print_header_simple("$strimportquestions", "$strimportquestions", - "wwwroot/mod/quiz/index.php?id=$course->id\">$strquizzes". - " -> $streditingquiz -> $strimportquestions"); + + /// Header: + + if (isset($SESSION->modform->instance) and $quiz = get_record('quiz', 'id', $SESSION->modform->instance)) { + $strupdatemodule = isteacheredit($course->id) + ? update_module_button($SESSION->modform->cmid, $course->id, get_string('modulename', 'quiz')) + : ""; + print_header_simple($strimportquestions, '', + "id\">".get_string('modulenameplural', 'quiz').''. + " -> id\">".format_string($quiz->name).''. + ' -> '.$strimportquestions, + "", "", true, $strupdatemodule); + $currenttab = 'edit'; + $mode = 'import'; + include('tabs.php'); + } else { + print_header_simple($strimportquestions, '', + "id\">".get_string('modulenameplural', 'quiz').''. + '-> '.get_string('editquestions', 'quiz').''. + ' -> '.$strimportquestions); + } + if (!empty($format)) { /// Filename @@ -89,6 +129,20 @@ print_heading_with_help($strimportquestions, "import", "quiz"); + /// Get all the existing categories now + if (!$categories = get_records_select("quiz_categories", "course = '{$course->id}' OR publish = '1'", "parent, sortorder, name ASC")) { + error("Could not find any question categories!"); + } + $categories = add_indented_names($categories); + foreach ($categories as $key => $cat) { + if ($catcourse = get_record("course", "id", $cat->course)) { + if ($cat->publish && $cat->course != $course->id) { + $cat->indentedname .= " ($catcourse->shortname)"; + } + $catmenu[$cat->id] = $cat->indentedname; + } + } + print_simple_box_start("center"); echo "
\n"; echo "\n"; @@ -97,8 +151,12 @@ echo ""; print_string("category", "quiz"); echo ":"; - // choose_from_menu($categories, "category", "$category->id", ""); - echo quiz_get_category_coursename($category); + if (!showcatmenu) { // category already specified + echo quiz_get_category_coursename($category); + echo " id\" />"; + } else { // no category specified, let user choose + choose_from_menu($catmenu, "category", $category->id, ""); + } echo "\n"; echo ""; @@ -114,7 +172,6 @@ require_once($CFG->dirroot.'/lib/uploadlib.php'); upload_print_form_fragment(1,array('newfile'),null,false,null,$course->maxbytes,0,false); echo " "; - echo " id\" />"; echo " "; echo "\n"; diff --git a/mod/quiz/mod.html b/mod/quiz/mod.html index 1e9f7ca7d24..2cb9144ffd6 100644 --- a/mod/quiz/mod.html +++ b/mod/quiz/mod.html @@ -306,7 +306,7 @@ quiz_fix_decimalpoints) { ?> - : + : decimalpoints", ""); - helpbutton("decimalpoints", get_string("decimalpoints","quiz"), "quiz"); + helpbutton("decimalpoints", get_string("decimaldigits","quiz"), "quiz"); ?> @@ -558,7 +558,7 @@ quiz_fix_decimalpoints) { ?> - : + : decimalpoints", ""); - helpbutton("decimalpoints", get_string("decimalpoints","quiz"), "quiz"); + helpbutton("decimalpoints", get_string("decimaldigits","quiz"), "quiz"); ?> @@ -658,12 +658,8 @@ -" /> - -instance) { ?> wwwroot/mod/quiz/edit.php?quizid=$form->instance") ?>" /> - - +" /> " />
diff --git a/mod/quiz/tabs.php b/mod/quiz/tabs.php index a62597ebfba..d75273a00e8 100644 --- a/mod/quiz/tabs.php +++ b/mod/quiz/tabs.php @@ -1,4 +1,12 @@ id", get_string('info', 'quiz')); $row[] = new tabobject('reports', "report.php?q=$quiz->id", get_string('reports', 'quiz')); - $row[] = new tabobject('preview', "attempt.php?q=$quiz->id", get_string('preview', 'quiz')); + $row[] = new tabobject('preview', "attempt.php?q=$quiz->id", get_string('preview', 'quiz'), get_string('previewquiz', 'quiz', format_string($quiz->name))); if (isteacheredit($course->id)) { - $row[] = new tabobject('edit', "edit.php?quizid=$quiz->id", get_string('editquiz', 'quiz')); + $row[] = new tabobject('edit', "edit.php?quizid=$quiz->id", get_string('edit'), get_string('editquizquestions', 'quiz')); $row[] = new tabobject('manualgrading', "grading.php?quizid=$quiz->id", get_string("manualgrading", "quiz")); - //$row[] = new tabobject('update', "$CFG->wwwroot/course/mod.php?update=$cm->id&sesskey=$USER->sesskey", get_string('updatethis', '', get_string('modulename', 'quiz'))); } $tabs[] = $row; @@ -54,6 +61,21 @@ $tabs[] = $row; } + if ($currenttab == 'edit' and isset($mode)) { + $inactive[] = 'edit'; + + $row = array(); + $currenttab = $mode; + + $row[] = new tabobject('editq', "edit.php?quizid=$quiz->id", get_string('questions', 'quiz'), get_string('editquizquestions', 'quiz')); + $row[] = new tabobject('categories', "category.php?id=$course->id", get_string('categories', 'quiz'), get_string('editqcats', 'quiz')); + $row[] = new tabobject('import', "import.php", get_string('import', 'quiz'), get_string('importquestions', 'quiz')); + $row[] = new tabobject('export', "export.php?courseid=$course->id", get_string('export', 'quiz'), get_string('exportquestions', 'quiz')); + $row[] = new tabobject('update', "$CFG->wwwroot/course/mod.php?update=$cm->id&sesskey=$USER->sesskey", get_string('settings'), get_string('updatesettings')); + + $tabs[] = $row; + } + print_tabs($tabs, $currenttab, $inactive); ?>