░▒▓████████████████████████████████▓▒░ ░▒▓█ ▓▒░ ░▒▓█ ~ S W A M P ~ ▓▒░ ░▒▓█ ▓▒░ ░▒▓████████████████████████████████▓▒░
pplmvsvm
LOCATION:
/var/www/moodle/public/question/bank/viewquestiontype/classes
☗ ROOT
↻ REFRESH
✎ CARVE FLESH
EDITING: type_condition.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_viewquestiontype; use question_bank; use core\output\datafilter; use core_question\local\bank\condition; /** * Filter condition for question type * * @package qbank_viewquestiontype * @copyright 2024 onwards Catalyst IT EU {@link https://catalyst-eu.net} * @author Mark Johnson <mark.johnson@catalyst-eu.net> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class type_condition extends condition { #[\Override] public static function get_condition_key() { return 'qtype'; } #[\Override] public function get_title() { return get_string('typefilter', 'qbank_viewquestiontype'); } #[\Override] public function get_filter_class() { return 'qbank_viewquestiontype/datafilter/filtertype/type'; } #[\Override] public function allow_custom() { return false; } /** * Get the list of available joins for the filter. * * Questions can be ANY or NONE of the selected types. Since questions cannot have multiple types, * allowing "ALL" does not make sense here. * * @return array */ public function get_join_list(): array { return [ datafilter::JOINTYPE_NONE, datafilter::JOINTYPE_ANY, ]; } /** * Build a list of the available question types. * * @return array */ public function get_initial_values(): array { $types = question_bank::get_all_qtypes(); $values = []; foreach ($types as $plugin => $type) { $values[] = [ 'value' => $plugin, 'title' => get_string('pluginname', 'qtype_' . $plugin), ]; } usort($values, fn($a, $b) => $a['title'] <=> $b['title']); return $values; } /** * Build a WHERE condition to filter the q.qtype column by the selected question types. * * @param array $filter * @return array * @throws \coding_exception * @throws \dml_exception */ public static function build_query_from_filter(array $filter): array { global $DB; // Remove empty string. $filter['values'] = array_filter($filter['values']); $selectedtypes = $filter['values'] ?? []; $params = []; $where = ''; $jointype = $filter['jointype'] ?? self::JOINTYPE_DEFAULT; if ($selectedtypes) { // If we are matching NONE rather than ANY, exclude the selected types instead. $equal = !($jointype === datafilter::JOINTYPE_NONE); [$typesql, $params] = $DB->get_in_or_equal($selectedtypes, SQL_PARAMS_NAMED, 'param', $equal); $where = "q.qtype $typesql"; } return [$where, $params]; } }
CANCEL
Name
Type
Size
Modified
Actions
↩ ..
DIR
—
—
📁 privacy/
DIR
—
2026-02-11 01:44
📄 plugin_feature.php
PHP
1.4 KB
2026-02-11 01:44
EDIT
📄 question_type_column.php
PHP
1.7 KB
2026-02-11 01:44
EDIT
📄 type_condition.php
PHP
3.4 KB
2026-02-11 01:44
EDIT