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/>.namespace bbbext_simple\bigbluebuttonbn;use stdClass;/*** A class for the main mod form extension** @package mod_bigbluebuttonbn* @copyright 2023 onwards, Blindside Networks Inc* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later* @author Laurent David (laurent@call-learning.fr)*/class mod_form_addons extends \mod_bigbluebuttonbn\local\extension\mod_form_addons {/*** Allows modules to modify the data returned by form get_data().* This method is also called in the bulk activity completion form.** Only available on moodleform_mod.** @param stdClass $data passed by reference*/public function data_postprocessing(\stdClass &$data): void {// Nothing for now.}/*** Allow module to modify the data at the pre-processing stage.** This method is also called in the bulk activity completion form.** @param array|null $defaultvalues*/public function data_preprocessing(?array &$defaultvalues): void {// This is where we can add the data from the flexurl table to the data provided.if (!empty($defaultvalues['id'])) {global $DB;$flexurlrecord = $DB->get_record('bbbext_simple', ['bigbluebuttonbnid' => $defaultvalues['id'],]);if ($flexurlrecord) {$defaultvalues['newfield'] = $flexurlrecord->newfield;}}}/*** Can be overridden to add custom completion rules if the module wishes* them. If overriding this, you should also override completion_rule_enabled.* <p>* Just add elements to the form as needed and return the list of IDs. The* system will call disabledIf and handle other behaviour for each returned* ID.** @return array Array of string IDs of added items, empty array if none*/public function add_completion_rules(): array {$this->mform->addElement('advcheckbox', 'completionextraisehandtwice',get_string('completionextraisehandtwice', 'bbbext_simple'),get_string('completionextraisehandtwice_desc', 'bbbext_simple'));$this->mform->addHelpButton('completionextraisehandtwice', 'completionextraisehandtwice','bbbext_simple');$this->mform->disabledIf('completionextraisehandtwice', 'completion', 'neq', COMPLETION_AGGREGATION_ANY);return ['completionextraisehandtwice' . $this->suffix];}/*** Called during validation. Override to indicate, based on the data, whether* a custom completion rule is enabled (selected).** @param array $data Input data (not yet validated)* @return bool True if one or more rules is enabled, false if none are;* default returns false*/public function completion_rule_enabled(array $data): bool {return !empty($data['completionextraisehandtwice' . $this->suffix]);}/*** Form adjustments after setting data** @return void*/public function definition_after_data() {// Nothing for now.}/*** Add new form field definition*/public function add_fields(): void {$this->mform->addElement('header', 'simple', get_string('pluginname', 'bbbext_simple'));$this->mform->addElement('text', 'newfield', get_string('newfield', 'bbbext_simple'));$this->mform->setType('newfield', PARAM_TEXT);}/*** Validate form and returns an array of errors indexed by field name** @param array $data* @param array $files* @return array*/public function validation(array $data, array $files): array {$errors = [];if (empty($data['newfield' . $this->suffix])) {$errors['newfield'] = get_string('newfielderror', 'bbbext_simple');}return $errors;}}