AutorÃa | Ultima modificación | Ver Log |
<?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/>./*** Output class file.** @package qbank_bulkmove* @copyright 2024 onwards Catalyst IT EU {@link https://catalyst-eu.net}* @author Simon Adams <simon.adams@catalyst-eu.net>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/namespace qbank_bulkmove\output;use cm_info;use core_question\local\bank\question_bank_helper;use core_question\output\question_category_selector;use moodle_url;use renderer_base;use single_button;/*** Output class to create a modal template with selects for question banks, question categories, and a move button.*/class bulk_move implements \renderable, \templatable {/** @var int The question bank id you are currently moving the question(s) from */protected int $currentbankid;/** @var int The question category id you are moving the question(s) from */protected int $currentcategoryid;/*** Instantiate the output class.** @param int $currentbankid* @param int $currentcategoryid*/public function __construct(int $currentbankid, int $currentcategoryid) {$this->currentbankid = $currentbankid;$this->currentcategoryid = $currentcategoryid;}/*** Export data for use by the template.** @param renderer_base $output* @return array*/public function export_for_template(renderer_base $output) {[, $cmrec] = get_module_from_cmid($this->currentbankid);$currentbankcm = cm_info::create($cmrec);// Get the current bank and its categories. All other banks and categories will be loaded dynamically.if (plugin_supports('mod', $currentbankcm->modname, FEATURE_PUBLISHES_QUESTIONS, false)) {$banktorender = question_bank_helper::get_activity_instances_with_shareable_questions(havingcap: ['moodle/question:add'],currentbankid: $this->currentbankid,filtercontext: $currentbankcm->context,limit: 1,)[0];} else {$banktorender = question_bank_helper::get_activity_instances_with_private_questions(incourseids: [$currentbankcm->course],havingcap: ['moodle/question:add'],currentbankid: $this->currentbankid,filtercontext: $currentbankcm->context,)[0];}$categoryselector = new question_category_selector([$currentbankcm->context], autocomplete: true);$savebutton = new single_button(new moodle_url('#'),get_string('movequestions', 'qbank_bulkmove'),'post',single_button::BUTTON_PRIMARY,['data-action' => 'bulkmovesave','disabled' => 'disabled',]);return ['bank' => $banktorender,'categories' => $categoryselector->export_for_template($output),'save' => $savebutton->export_for_template($output),'contextid' => $currentbankcm->context->id,];}}