1
0
mirror of https://github.com/moodle/moodle.git synced 2025-03-22 16:40:07 +01:00

MDL-30592 question_bank: make files in qtext work in the question list.

This commit is contained in:
Tim Hunt 2011-12-05 19:07:12 +00:00
parent fdb5bc03f5
commit 0019a9b7aa
2 changed files with 38 additions and 5 deletions

@ -1827,6 +1827,33 @@ function question_pluginfile($course, $context, $component, $filearea, $args, $f
}
}
/**
* Serve questiontext files in the question text when they are displayed in this report.
* @param context $context the context
* @param int $questionid the question id
* @param array $args remaining file args
* @param bool $forcedownload
*/
function core_question_questiontext_preview_pluginfile($context, $questionid, $args, $forcedownload) {
global $DB;
// Verify that contextid matches the question.
$question = $DB->get_record_sql('
SELECT q.*, qc.contextid
FROM {question} q
JOIN {question_categories} qc ON qc.id = q.category
WHERE q.id = :id AND qc.contextid = :contextid',
array('id' => $questionid, 'contextid' => $context->id), MUST_EXIST);
// Check the capability.
list($context, $course, $cm) = get_context_info_array($context->id);
require_login($course, false, $cm);
question_require_capability_on($question, 'use');
question_send_questiontext_file($questionid, $args, $forcedownload);
}
/**
* Create url for question export
*

@ -791,16 +791,22 @@ class question_bank_question_text_row extends question_bank_row_base {
}
protected function display_content($question, $rowclasses) {
$text = format_text($question->questiontext, $question->questiontextformat,
$this->formatoptions, $this->qbank->get_courseid());
$text = question_rewrite_questiontext_preview_urls($question->questiontext,
$question->contextid, 'question', $question->id);
$text = format_text($text, $question->questiontextformat,
$this->formatoptions);
if ($text == '') {
$text = ' ';
}
echo $text;
}
public function get_extra_joins() {
return array('qc' => 'JOIN {question_categories} qc ON qc.id = q.category');
}
public function get_required_fields() {
return array('q.questiontext', 'q.questiontextformat');
return array('q.id', 'q.questiontext', 'q.questiontextformat', 'qc.contextid');
}
}
@ -1100,10 +1106,10 @@ class question_bank_view {
}
/// Build the where clause.
$tests = array('parent = 0');
$tests = array('q.parent = 0');
if (!$showhidden) {
$tests[] = 'hidden = 0';
$tests[] = 'q.hidden = 0';
}
if ($recurse) {