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:
parent
fdb5bc03f5
commit
0019a9b7aa
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user