From 85c375c3f8301d8291a1a2ead3a9063a9af0f389 Mon Sep 17 00:00:00 2001 From: jamiesensei Date: Mon, 7 May 2007 16:57:23 +0000 Subject: [PATCH] added function callbacks for module specific controls to question bank. --- mod/quiz/edit.php | 57 +++++++++++++++++++++++++++++++++++++++++++- question/edit.php | 1 + question/editlib.php | 32 ++++++------------------- 3 files changed, 64 insertions(+), 26 deletions(-) diff --git a/mod/quiz/edit.php b/mod/quiz/edit.php index c9f608f72a..e788e1de9e 100644 --- a/mod/quiz/edit.php +++ b/mod/quiz/edit.php @@ -29,7 +29,62 @@ require_once("../../config.php"); require_once($CFG->dirroot.'/mod/quiz/editlib.php'); - + /** + * Callback function called from question_list() function (which is called from showbank() + * Displays action icon as first action for each question. + */ + function module_specific_actions($pageurl, $questionid, $cmid){ + global $CFG; + if (has_capability("mod/quiz:manage", get_context_instance(CONTEXT_MODULE, $cmid))){ + $straddtoquiz = get_string("addtoquiz", "quiz"); + $out = "get_query_string()."&addquestion=$questionid&sesskey=".sesskey()."\">pixpath/t/moveleft.gif\" alt=\"$straddtoquiz\" /> "; + return $out; + } else { + return ''; + } + } + /** + * Callback function called from question_list() function (which is called from showbank() + * Displays button in form with checkboxes for each question. + */ + function module_specific_buttons($cmid){ + global $THEME; + if (has_capability("mod/quiz:manage", get_context_instance(CONTEXT_MODULE, $cmid))){ + $straddtoquiz = get_string("addtoquiz", "quiz"); + $out = "larrow} $straddtoquiz\" />\n"; + $out .= ''; + return $out; + } else { + return ''; + } + } + + + /** + * Callback function called from question_list() function (which is called from showbank() + * Displays button in form with checkboxes for each question. + */ + function module_specific_controls($totalnumber, $recurse, $categoryid, $cmid){ + if (has_capability("mod/quiz:manage", get_context_instance(CONTEXT_MODULE, $cmid))){ + for ($i = 1;$i <= min(10, $totalnumber); $i++) { + $randomcount[$i] = $i; + } + for ($i = 20;$i <= min(100, $totalnumber); $i += 10) { + $randomcount[$i] = $i; + } + $out = '
'; + $out .= get_string('addrandom', 'quiz', choose_from_menu($randomcount, 'randomcount', '1', '', '', '', true)); + $out .= ''; + $out .= ""; + $out .= ' '; + $out .= helpbutton('random', get_string('random', 'quiz'), 'quiz', true, false, '', true); + return $out; + } else { + return ''; + } + } + list($thispageurl, $courseid, $cmid, $cm, $quiz, $pagevars) = question_edit_setup(true); //these params are only passed from page request to request while we stay on this page diff --git a/question/edit.php b/question/edit.php index 790a5c5d94..1f1b0da33e 100644 --- a/question/edit.php +++ b/question/edit.php @@ -10,6 +10,7 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU Public License * @package questionbank */ + require_once("../config.php"); require_once("editlib.php"); diff --git a/question/editlib.php b/question/editlib.php index 904d497e78..1b28851da0 100644 --- a/question/editlib.php +++ b/question/editlib.php @@ -191,7 +191,6 @@ function question_list($course, $pageurl, $categoryid, $cm = null, $straction = get_string("action"); $strrestore = get_string('restore'); - $straddtoquiz = get_string("addtoquiz", "quiz"); $strtype = get_string("type", "quiz"); $strcreatemultiple = get_string("createmultiple", "quiz"); $strpreview = get_string("preview","quiz"); @@ -210,10 +209,8 @@ function question_list($course, $pageurl, $categoryid, $cm = null, $canedit = has_capability('moodle/question:manage', get_context_instance(CONTEXT_COURSE, $category->course)); if ($cm AND $cm->modname == 'quiz') { - $editingquiz = has_capability("mod/quiz:manage", get_context_instance(CONTEXT_MODULE, $cm->id)); $quizid = $cm->instance; } else { - $editingquiz = false; $quizid = 0; } @@ -308,12 +305,10 @@ function question_list($course, $pageurl, $categoryid, $cm = null, echo "\n\n"; - // add to quiz - if ($editingquiz) { - echo "get_query_string()."&addquestion=$question->id&sesskey=$USER->sesskey\">pixpath/t/moveleft.gif\" alt=\"$straddtoquiz\" /> "; + if (function_exists('module_specific_actions')) { + echo module_specific_actions($pageurl, $question->id, $cm->id); } - + // preview link_to_popup_window('/question/preview.php?id=' . $question->id . '&quizid=' . $quizid, 'questionpreview', "pixpath/t/preview.gif\" class=\"iconsmall\" alt=\"$strpreview\" />", @@ -377,9 +372,8 @@ function question_list($course, $pageurl, $categoryid, $cm = null, ' '.$strselectnone.''. ' '.get_string('withselected', 'quiz').':'; - if ($editingquiz) { - echo "larrow} $straddtoquiz\" />\n"; - echo ''; + if (function_exists('module_specific_buttons')) { + echo module_specific_buttons($cm->id); } // print delete and move selected question if ($canedit) { @@ -389,20 +383,8 @@ function question_list($course, $pageurl, $categoryid, $cm = null, } echo ""; - // add random question - if ($editingquiz) { - for ($i = 1;$i <= min(10, $totalnumber); $i++) { - $randomcount[$i] = $i; - } - for ($i = 20;$i <= min(100, $totalnumber); $i += 10) { - $randomcount[$i] = $i; - } - echo '
'; - print_string('addrandom', 'quiz', choose_from_menu($randomcount, 'randomcount', '1', '', '', '', true)); - echo ''; - echo "id\" />"; - echo ' '; - helpbutton('random', get_string('random', 'quiz'), 'quiz'); + if (function_exists('module_specific_controls')) { + echo module_specific_controls($totalnumber, $recurse, $category->id, $cm->id); } echo ''; echo "\n"; -- 2.39.5