Ir a la última revisión | Autoría | Comparar con el anterior | 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/>./*** The qbank_chooser renderable.** @package qbank_editquestion* @copyright 2016 Frédéric Massart - FMCorz.net* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/namespace qbank_editquestion;use context;use context_course;use core\output\chooser_section;use lang_string;use moodle_url;use question_bank;use stdClass;/*** The qbank_chooser renderable class.** @package qbank_editquestion* @copyright 2016 Frédéric Massart - FMCorz.net* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/class qbank_chooser extends \core\output\chooser {/*** Constructor.** @param array $real The real question types.* @param array $fake The fake question types.* @param stdClass $course The course.* @param array $hiddenparams Hidden parameters.* @param context $context The relevant context.*/public function __construct($real, $fake, $course, $hiddenparams, $context) {$sections = [];$sections[] = new chooser_section('questions', new lang_string('questions', 'question'),array_map(function($qtype) use ($context) {return new qbank_chooser_item($qtype, $context);}, $real));if (!empty($fake)) {$sections[] = new chooser_section('other', new lang_string('other'),array_map(function ($qtype) use ($context) {return new qbank_chooser_item($qtype, $context);}, $fake));}parent::__construct(new moodle_url('/question/bank/editquestion/question.php'),new lang_string('chooseqtypetoadd', 'question'), $sections, 'qtype');$this->set_instructions(new lang_string('selectaqtypefordescription', 'question'));$this->set_method('get');$this->add_param('courseid', $course->id);foreach ($hiddenparams as $k => $v) {$this->add_param($k, $v);}}/*** Get an instance of the question bank chooser.** @param stdClass $course The course.* @param array $hiddenparams Hidden parameters.* @param array|null $allowedqtypes Allowed question types.* @return qbank_chooser*/public static function get($course, $hiddenparams, array $allowedqtypes = null): qbank_chooser {$realqtypes = array();$fakeqtypes = array();foreach (question_bank::get_creatable_qtypes() as $qtypename => $qtype) {if ($allowedqtypes && !in_array($qtypename, $allowedqtypes)) {continue;}if ($qtype->is_real_question_type()) {$realqtypes[] = $qtype;} else {$fakeqtypes[] = $qtype;}}return new static($realqtypes, $fakeqtypes, $course, $hiddenparams, context_course::instance($course->id));}}