Differences Between: [Versions 310 and 403] [Versions 311 and 403] [Versions 39 and 403] [Versions 400 and 403] [Versions 401 and 403] [Versions 402 and 403]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * Renderers for outputting parts of the question bank. 19 * 20 * @package core_question 21 * @copyright 2011 The Open University 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 26 defined('MOODLE_INTERNAL') || die(); 27 28 29 /** 30 * This renderer outputs parts of the question bank. 31 * 32 * @copyright 2011 The Open University 33 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 34 */ 35 class core_question_bank_renderer extends plugin_renderer_base { 36 37 /** 38 * Display additional navigation if needed. 39 * 40 * @param string $active 41 * @return string 42 */ 43 public function extra_horizontal_navigation($active = null) { 44 // Horizontal navigation for question bank. 45 if ($questionnode = $this->page->settingsnav->find("questionbank", \navigation_node::TYPE_CONTAINER)) { 46 if ($children = $questionnode->children) { 47 $tabs = []; 48 foreach ($children as $key => $node) { 49 $tabs[] = new \tabobject($node->key, $node->action, $node->text); 50 } 51 if (empty($active) && $questionnode->find_active_node()) { 52 $active = $questionnode->find_active_node()->key; 53 } 54 return \html_writer::div(print_tabs([$tabs], $active, null, null, true), 55 'questionbank-navigation'); 56 } 57 } 58 return ''; 59 } 60 61 /** 62 * Output the icon for a question type. 63 * 64 * @param string $qtype the question type. 65 * @return string HTML fragment. 66 */ 67 public function qtype_icon($qtype) { 68 $qtype = question_bank::get_qtype($qtype, false); 69 $namestr = $qtype->local_name(); 70 71 return $this->image_icon('icon', $namestr, $qtype->plugin_name(), array('title' => $namestr)); 72 } 73 74 /** 75 * Render the column headers. 76 * 77 * @param array $qbankheaderdata 78 * @return bool|string 79 */ 80 public function render_column_header($qbankheaderdata) { 81 return $this->render_from_template('core_question/column_header', $qbankheaderdata); 82 } 83 84 /** 85 * Render the column sort elements. 86 * 87 * @param array $sortdata 88 * @return bool|string 89 */ 90 public function render_column_sort($sortdata) { 91 return $this->render_from_template('core_question/column_sort', $sortdata); 92 } 93 94 /** 95 * Render a qbank_chooser. 96 * 97 * @param renderable $qbankchooser The chooser. 98 * @return string 99 * @deprecated since Moodle 4.0 100 * @see \qbank_editquestion\output\renderer 101 * @todo Final deprecation on Moodle 4.4 MDL-72438 102 */ 103 public function render_qbank_chooser(renderable $qbankchooser) { 104 debugging('Function render_qbank_chooser is deprecated, 105 please use qbank_editquestion renderer instead.', DEBUG_DEVELOPER); 106 return $this->render_from_template('core_question/qbank_chooser', $qbankchooser->export_for_template($this)); 107 } 108 109 /** 110 * Render category condition. 111 * 112 * @param array $displaydata 113 * @return bool|string 114 * @deprecated since Moodle 4.3 115 * @todo Final deprecation on Moodle 4.7 MDL-78090 116 */ 117 public function render_category_condition($displaydata) { 118 debugging( 119 'Function render_category_condition() has been deprecated and moved to qbank_managecategories plugin, ' . 120 'Please use qbank_managecategories\output\renderer::render_category_condition() instead.', 121 DEBUG_DEVELOPER 122 ); 123 return $this->render_from_template('qbank_managecategories/category_condition', $displaydata); 124 } 125 126 /** 127 * Render category condition advanced. 128 * 129 * @param array $displaydata 130 * @return bool|string 131 * @deprecated since Moodle 4.3 132 * @todo Final deprecation on Moodle 4.7 MDL-78090 133 */ 134 public function render_category_condition_advanced($displaydata) { 135 debugging( 136 'Function render_category_condition_advanced() has been deprecated', 137 DEBUG_DEVELOPER 138 ); 139 // The template category_condition_advanced should also be deleted with this function. 140 return $this->render_from_template('qbank_managecategories/category_condition_advanced', $displaydata); 141 } 142 143 /** 144 * Render hidden condition advanced. 145 * 146 * @param array $displaydata 147 * @return bool|string 148 * @see qbank_deletequestion\output\renderer 149 * @deprecated since Moodle 4.3 150 * @todo Final deprecation on Moodle 4.7 MDL-78090 151 */ 152 public function render_hidden_condition_advanced($displaydata) { 153 debugging( 154 'Function render_hidden_condition_advanced() has been deprecated and moved to qbank_deletequestion plugin, ' . 155 'Please use qbank_deletequestion\output\renderer::render_hidden_condition_advanced() instead.', 156 DEBUG_DEVELOPER 157 ); 158 return $this->render_from_template('qbank_deletequestion/hidden_condition_advanced', $displaydata); 159 } 160 161 /** 162 * Render question pagination. 163 * 164 * @param array $displaydata 165 * @return bool|string 166 */ 167 public function render_question_pagination($displaydata) { 168 return $this->render_from_template('core_question/question_pagination', $displaydata); 169 } 170 171 /** 172 * Render the showtext option. 173 * 174 * It's not a checkbox any more! [Name your API after the purpose, not the implementation!] 175 * 176 * @param array $displaydata 177 * @return string 178 */ 179 public function render_showtext_checkbox($displaydata) { 180 return $this->render_from_template('core_question/showtext_option', 181 ['selected' . $displaydata['checked'] => true]); 182 } 183 184 /** 185 * Render bulk actions ui. 186 * 187 * @param array $displaydata 188 * @return bool|string 189 */ 190 public function render_bulk_actions_ui($displaydata) { 191 return $this->render_from_template('core_question/bulk_actions_ui', $displaydata); 192 } 193 194 /** 195 * Build the HTML for the question chooser javascript popup. 196 * 197 * @param array $real A set of real question types 198 * @param array $fake A set of fake question types 199 * @param object $course The course that will be displayed 200 * @param array $hiddenparams Any hidden parameters to add to the form 201 * @return string The composed HTML for the questionbank chooser 202 * @todo Final deprecation on Moodle 4.4 MDL-72438 203 */ 204 public function qbank_chooser($real, $fake, $course, $hiddenparams) { 205 debugging('Method core_question_bank_renderer::qbank_chooser() is deprecated, ' . 206 'see core_question_bank_renderer::render_qbank_chooser().', DEBUG_DEVELOPER); 207 return ''; 208 } 209 210 /** 211 * Build the HTML for a specified set of question types. 212 * 213 * @param array $types A set of question types as used by the qbank_chooser_module function 214 * @return string The composed HTML for the module 215 * @todo Final deprecation on Moodle 4.4 MDL-72438 216 */ 217 protected function qbank_chooser_types($types) { 218 debugging('Method core_question_bank_renderer::qbank_chooser_types() is deprecated, ' . 219 'see core_question_bank_renderer::render_qbank_chooser().', DEBUG_DEVELOPER); 220 return ''; 221 } 222 223 /** 224 * Return the HTML for the specified question type, adding any required classes. 225 * 226 * @param object $qtype An object containing the title, and link. An icon, and help text may optionally be specified. 227 * If the module contains subtypes in the types option, then these will also be displayed. 228 * @param array $classes Additional classes to add to the encompassing div element 229 * @return string The composed HTML for the question type 230 * @todo Final deprecation on Moodle 4.4 MDL-72438 231 */ 232 protected function qbank_chooser_qtype($qtype, $classes = array()) { 233 debugging('Method core_question_bank_renderer::qbank_chooser_qtype() is deprecated, ' . 234 'see core_question_bank_renderer::render_qbank_chooser().', DEBUG_DEVELOPER); 235 return ''; 236 } 237 238 /** 239 * Return the title for the question bank chooser. 240 * 241 * @param string $title The language string identifier 242 * @param string $identifier The component identifier 243 * @return string The composed HTML for the title 244 * @todo Final deprecation on Moodle 4.4 MDL-72438 245 */ 246 protected function qbank_chooser_title($title, $identifier = null) { 247 debugging('Method core_question_bank_renderer::qbank_chooser_title() is deprecated, ' . 248 'see core_question_bank_renderer::render_qbank_chooser().', DEBUG_DEVELOPER); 249 return ''; 250 } 251 252 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body