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.

This commit is contained in:
tjhunt
2007-04-11 22:57:46 +00:00
parent add2d7acdf
commit dcc2ffde63
4 changed files with 28 additions and 32 deletions
+4 -12
View File
@@ -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 = '<img src="'.$CFG->wwwroot.'/question/type/'.
$question->qtype.'/icon.gif" alt="'.
$namestr.'" title="'.$namestr.'" />';
if ($editlink) {
$html = "<a href=\"$CFG->wwwroot/question/question.php?id=$question->id\" title=\""
.$question->qtype."\">".
$html."</a>\n";
}
$html = '<img src="' . $CFG->wwwroot . '/question/type/' .
$question->qtype . '/icon.gif" alt="' .
$namestr . '" title="' . $namestr . '" />';
if ($return) {
return $html;
} else {
+1 -1
View File
@@ -263,7 +263,7 @@ function quiz_print_question_list($quiz, $allowdelete=true, $showbreaks=true, $r
echo '<td>' . format_string($question->name) . '</td>';
echo "<td align=\"center\">";
print_question_icon($question, $canedit);
print_question_icon($question);
echo "</td>";
echo '<td align="left">';
if ($question->qtype == 'description') {
+1 -1
View File
@@ -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 = '<div class="qname">'.format_text($question->name." : ", $question->questiontextformat, $format_options, $quiz->course).'</div>';
$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";
+22 -18
View File
@@ -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 '<div class="boxaligncenter">';
$formatoptions = new stdClass;
$formatoptions->noclean = true;
@@ -215,23 +221,23 @@ function question_list($course, $categoryid, $quizid=0,
echo '<table><tr>';
// 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 "<td valign=\"top\"><b>$strcreatenewquestion:</b></td>";
echo '<td valign="top" align="right">';
popup_form ("$CFG->wwwroot/question/question.php?category=$category->id&amp;qtype=", $qtypemenu, "addquestion",
"", "choose", "", "", false, "self");
echo '</td><td valign="top" align="right">';
helpbutton("questiontypes", $strcreatenewquestion, "quiz");
echo '</td></tr>';
echo '</td>';
}
else {
echo '<tr><td>';
echo '<td>';
print_string("publishedit","quiz");
echo '</td></tr>';
echo '</td>';
}
echo '</table>';
echo '</tr></table>';
echo '</div>';
$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}&amp;perpage=$perpage&amp;");
$canedit = has_capability('moodle/question:manage', $context);
echo '<form method="post" action="edit.php?courseid='.$course->id.'">';
echo '<fieldset class="invisiblefieldset" style="display: block;">';
echo '<input type="hidden" name="sesskey" value="'.$USER->sesskey.'" />';
@@ -298,7 +302,7 @@ function question_list($course, $categoryid, $quizid=0,
echo "<tr>\n<td style=\"white-space:nowrap;\" $nameclass>\n";
// add to quiz
if ($quizid && has_capability('mod/quiz:manage', $context)) {
if ($editingquiz) {
echo "<a title=\"$straddtoquiz\" href=\"edit.php?addquestion=$question->id&amp;quizid=$quizid&amp;sesskey=$USER->sesskey\"><img
src=\"$CFG->pixpath/t/moveleft.gif\" alt=\"$straddtoquiz\" /></a>&nbsp;";
}
@@ -309,7 +313,7 @@ function question_list($course, $categoryid, $quizid=0,
src=\"$CFG->pixpath/t/preview.gif\" alt=\"$strpreview\" /></a>&nbsp;";
// edit, hide, delete question, using question capabilities, not quiz capabilieies
if (has_capability('moodle/question:manage', $context)) {
if ($canedit) {
echo "<a title=\"$stredit\" href=\"$CFG->wwwroot/question/question.php?id=$question->id\"><img
src=\"$CFG->pixpath/t/edit.gif\" alt=\"$stredit\" /></a>&nbsp;";
// hide-feature
@@ -326,7 +330,7 @@ function question_list($course, $categoryid, $quizid=0,
echo "<td $nameclass>" . format_string($question->name) . "</td>\n";
echo "<td $nameclass style='text-align: right'>\n";
print_question_icon($question, $canedit);
print_question_icon($question);
echo "</td>\n";
echo "</tr>\n";
if($showquestiontext){
@@ -364,12 +368,12 @@ function question_list($course, $categoryid, $quizid=0,
' <a href="javascript:deselect_all_in(\'TABLE\', null, \'categoryquestions\');">'.$strselectnone.'</a>'.
'</td><td align="right"><b>&nbsp;'.get_string('withselected', 'quiz').':</b></td></tr><tr><td>';
if ($quizid && has_capability('mod/quiz:manage', $context)) {
if ($editingquiz) {
echo "<input type=\"submit\" name=\"add\" value=\"{$THEME->larrow} $straddtoquiz\" />\n";
echo '</td><td>';
}
// print delete and move selected question
if (has_capability('moodle/question:manage', $context)) {
if ($canedit) {
echo '<input type="submit" name="deleteselected" value="'.$strdelete."\" /></td><td>\n";
echo '<input type="submit" name="move" value="'.get_string('moveto', 'quiz')."\" />\n";
question_category_select_menu($course->id, false, true, $category->id);
@@ -377,7 +381,7 @@ function question_list($course, $categoryid, $quizid=0,
echo "</td></tr></table>";
// add random question
if ($quizid && has_capability('mod/quiz:manage', $context)) {
if ($editingquiz) {
for ($i = 1;$i <= min(10, $totalnumber); $i++) {
$randomcount[$i] = $i;
}