. namespace qbank_previewquestion\output; use context; use qbank_previewquestion\helper; use qbank_previewquestion\question_preview_options; /** * Class renderer for rendering preview url * * @package qbank_previewquestion * @copyright 2009 The Open University * @author 2021 Safat Shahin * @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, null, question_preview_options::ALWAYS_LATEST); $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); } }