Files
moodle/question/bank/previewquestion/classes/output/renderer.php
T
Safat Shahin 0d55b26da8 MDL-71614 qbank_previewquestion: Add Preview question plugin to core
This implementation will introduce a qbank plugin "previewquestion"
which will view the preview question action in the question bank
actions by replacing the core classes, scripts and yui modules.
This plugin will also replace the preview option in the edit
question form. Having this plugin will give users the
flexibility of enabling or disabling this feature from
the question bank view.
This change will also allow other qbank plugins to add
elements or information in the preview question page
by implementing a callback. It also changes the pop
up to page redirect from base view page to make sure
any changes in preview reflects in the base view, for
example, comments added and the number of comments in
the comments colum changes while back from the preview
page. Other locations like edit and qtype plugins where
the preview is implemented, stays the same.

Co-Authored-By: Guillermo Gomez Arias <guillermogomez@catalyst-au.net>
Co-Authored-By: Safat Shahin <safatshahin@catalyst-au.net>
2021-09-08 16:21:06 +10:00

69 lines
2.5 KiB
PHP

<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace qbank_previewquestion\output;
use context;
use qbank_previewquestion\helper;
/**
* Class renderer for rendering preview url
*
* @package qbank_previewquestion
* @copyright 2009 The Open University
* @author 2021 Safat Shahin <safatshahin@catalyst-au.net>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class renderer extends \plugin_renderer_base {
/**
* Render an icon, optionally with the word 'Preview' beside it, to preview a given question.
*
* @param int $questionid the id of the question to be previewed.
* @param context $context the context in which the preview is happening.
* Must be a course or category context.
* @param bool $showlabel if true, show the word 'Preview' after the icon.
* If false, just show the icon.
*/
public function question_preview_link($questionid, context $context, $showlabel) {
if ($showlabel) {
$alt = '';
$label = get_string('preview');
$attributes = [];
} else {
$alt = get_string('preview');
$label = '';
$attributes = ['title' => $alt];
}
$image = $this->pix_icon('t/preview', $alt, '', ['class' => 'iconsmall']);
$link = helper::question_preview_url($questionid, null, null, null, null, $context);
$action = new \popup_action('click', $link, 'questionpreview', helper::question_preview_popup_params());
return $this->action_link($link, $image . $label, $action, $attributes);
}
/**
* Render the preview page.
*
* @param array $previewdata
*/
public function render_preview_page($previewdata) {
return $this->render_from_template('qbank_previewquestion/preview_question', $previewdata);
}
}