From dcc2ffde6323003a4c2390748bc37e1767b1fd12 Mon Sep 17 00:00:00 2001 From: tjhunt Date: Wed, 11 Apr 2007 22:57:46 +0000 Subject: [PATCH] MDL-9082 - moodle/question:manage does not let you create questions. Also: * remove useless option from print_question_icon * use the right module context in question_list * a bit of XHTML strrrict in question_list Merged from MOODLE_18_STABLE. --- lib/questionlib.php | 16 +++--------- mod/quiz/editlib.php | 2 +- mod/quiz/report/analysis/report.php | 2 +- question/editlib.php | 40 ++++++++++++++++------------- 4 files changed, 28 insertions(+), 32 deletions(-) diff --git a/lib/questionlib.php b/lib/questionlib.php index 0585b1a30c..a735f350ae 100644 --- a/lib/questionlib.php +++ b/lib/questionlib.php @@ -1258,23 +1258,15 @@ function question_apply_penalty_and_timelimit(&$question, &$state, $attempt, $cm * Print the icon for the question type * * @param object $question The question object for which the icon is required -* @param boolean $editlink If true then the icon is a link to the question -* edit page. * @param boolean $return If true the functions returns the link as a string */ -function print_question_icon($question, $editlink=true, $return = false) { +function print_question_icon($question, $return = false) { global $QTYPES, $CFG; $namestr = $QTYPES[$question->qtype]->menu_name(); - $html = ''.
-            $namestr.''; - - if ($editlink) { - $html = "wwwroot/question/question.php?id=$question->id\" title=\"" - .$question->qtype."\">". - $html."\n"; - } + $html = '' .
+            $namestr . ''; if ($return) { return $html; } else { diff --git a/mod/quiz/editlib.php b/mod/quiz/editlib.php index f82607f9ca..65c3f44298 100644 --- a/mod/quiz/editlib.php +++ b/mod/quiz/editlib.php @@ -263,7 +263,7 @@ function quiz_print_question_list($quiz, $allowdelete=true, $showbreaks=true, $r echo '' . format_string($question->name) . ''; echo ""; - print_question_icon($question, $canedit); + print_question_icon($question); echo ""; echo ''; if ($question->qtype == 'description') { diff --git a/mod/quiz/report/analysis/report.php b/mod/quiz/report/analysis/report.php index e5bc675f2a..984fc28dea 100644 --- a/mod/quiz/report/analysis/report.php +++ b/mod/quiz/report/analysis/report.php @@ -311,7 +311,7 @@ class quiz_report extends quiz_default_report { $question = get_record('question', 'id', $qid); $qnumber = " (".link_to_popup_window('/question/question.php?id='.$qid,'editquestion', $qid, 450, 550, get_string('edit'), 'none', true ).") "; $qname = '
'.format_text($question->name." : ", $question->questiontextformat, $format_options, $quiz->course).'
'; - $qicon = print_question_icon($question, false, true); + $qicon = print_question_icon($question, true); $qreview = quiz_get_question_review($quiz, $question); $qtext = format_text($question->questiontext, $question->questiontextformat, $format_options, $quiz->course); $qquestion = $qname."\n".$qtext."\n"; diff --git a/question/editlib.php b/question/editlib.php index 0ecd24aa3f..d1df08ad95 100644 --- a/question/editlib.php +++ b/question/editlib.php @@ -156,14 +156,13 @@ function question_category_form_checkbox($name, $checked) { * @param int $page The number of the page to be displayed * @param int $perpage Number of questions to show per page * @param boolean $showhidden True if also hidden questions should be displayed +* @param boolean $showquestiontext whether the text of each question should be shown in the list */ function question_list($course, $categoryid, $quizid=0, $recurse=1, $page=0, $perpage=100, $showhidden=false, $sortorder='qtype, name ASC', $showquestiontext = false) { global $QTYPE_MENU, $USER, $CFG, $THEME; - $context = get_context_instance(CONTEXT_COURSE, $course->id); - $qtypemenu = $QTYPE_MENU; if ($rqp_types = get_records('question_rqp_types')) { foreach($rqp_types as $type) { @@ -204,10 +203,17 @@ function question_list($course, $categoryid, $quizid=0, return; } - if (!$category = get_record("question_categories", "id", "$categoryid")) { - notify("Category not found!"); + if (!$category = get_record('question_categories', 'id', $categoryid)) { + notify('Category not found!'); return; } + $canedit = has_capability('moodle/question:manage', get_context_instance(CONTEXT_COURSE, $category->course)); + $editingquiz = false; + if ($quizid) { + $cm = get_coursemodule_from_instance('quiz', $quizid); + $editingquiz = has_capability('mod/quiz:manage', get_context_instance(CONTEXT_MODULE, $cm->id)); + } + echo '
'; $formatoptions = new stdClass; $formatoptions->noclean = true; @@ -215,23 +221,23 @@ function question_list($course, $categoryid, $quizid=0, echo ''; - // check if editing of this category is allowed - if (has_capability('moodle/question:managecategory', $context)) { + // check if editing questions in this category is allowed + if ($canedit) { echo ""; echo ''; + echo ''; } else { - echo ''; + echo ''; } - echo '
$strcreatenewquestion:'; popup_form ("$CFG->wwwroot/question/question.php?category=$category->id&qtype=", $qtypemenu, "addquestion", "", "choose", "", "", false, "self"); echo ''; helpbutton("questiontypes", $strcreatenewquestion, "quiz"); - echo '
'; + echo ''; print_string("publishedit","quiz"); - echo '
'; + echo ''; echo '
'; $categorylist = ($recurse) ? question_categorylist($category->id) : $category->id; @@ -261,8 +267,6 @@ function question_list($course, $categoryid, $quizid=0, print_paging_bar($totalnumber, $page, $perpage, "edit.php?courseid={$course->id}&perpage=$perpage&"); - $canedit = has_capability('moodle/question:manage', $context); - echo '
'; echo '
'; echo ''; @@ -298,7 +302,7 @@ function question_list($course, $categoryid, $quizid=0, echo "\n\n"; // add to quiz - if ($quizid && has_capability('mod/quiz:manage', $context)) { + if ($editingquiz) { echo "id&quizid=$quizid&sesskey=$USER->sesskey\">pixpath/t/moveleft.gif\" alt=\"$straddtoquiz\" /> "; } @@ -309,7 +313,7 @@ function question_list($course, $categoryid, $quizid=0, src=\"$CFG->pixpath/t/preview.gif\" alt=\"$strpreview\" /> "; // edit, hide, delete question, using question capabilities, not quiz capabilieies - if (has_capability('moodle/question:manage', $context)) { + if ($canedit) { echo "wwwroot/question/question.php?id=$question->id\">pixpath/t/edit.gif\" alt=\"$stredit\" /> "; // hide-feature @@ -326,7 +330,7 @@ function question_list($course, $categoryid, $quizid=0, echo "" . format_string($question->name) . "\n"; echo "\n"; - print_question_icon($question, $canedit); + print_question_icon($question); echo "\n"; echo "\n"; if($showquestiontext){ @@ -364,12 +368,12 @@ function question_list($course, $categoryid, $quizid=0, ' '.$strselectnone.''. ' '.get_string('withselected', 'quiz').':'; - if ($quizid && has_capability('mod/quiz:manage', $context)) { + if ($editingquiz) { echo "larrow} $straddtoquiz\" />\n"; echo ''; } // print delete and move selected question - if (has_capability('moodle/question:manage', $context)) { + if ($canedit) { echo '\n"; echo '\n"; question_category_select_menu($course->id, false, true, $category->id); @@ -377,7 +381,7 @@ function question_list($course, $categoryid, $quizid=0, echo ""; // add random question - if ($quizid && has_capability('mod/quiz:manage', $context)) { + if ($editingquiz) { for ($i = 1;$i <= min(10, $totalnumber); $i++) { $randomcount[$i] = $i; } -- 2.39.5