%PDF- %PDF-
Direktori : /home/vacivi36/ava/admin/tool/brickfield/classes/form/ |
Current File : /home/vacivi36/ava/admin/tool/brickfield/classes/form/registration_form.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/>. /** * Class registration_form * * @package tool_brickfield * @copyright 2021 Brickfield Education Labs https://www.brickfield.ie * @author 2020 JM Tomas <jmtomas@tresipunt.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL */ namespace tool_brickfield\form; defined('MOODLE_INTERNAL') || die(); use coding_exception; use dml_exception; use html_writer; use moodle_exception; use moodleform; use stdClass; use tool_brickfield\manager; use tool_brickfield\registration; global $CFG; require_once($CFG->libdir . '/formslib.php'); /** * Class registration_form * * @package tool_brickfield * @author 2020 JM Tomas <jmtomas@tresipunt.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL */ class registration_form extends moodleform { /** * Form definition. * @throws moodle_exception */ public function definition() { $mform = & $this->_form; $required = get_string('required'); $info = $this->get_defaultinfo(); $registration = new registration(); $key = $registration->get_api_key(); $hash = $registration->get_secret_key(); $mform->addElement('header', 'activationheader', get_string('activationheader', manager::PLUGINNAME)); $mform->addElement('text', 'key', get_string('secretkey', manager::PLUGINNAME)); $mform->setType('key', PARAM_TEXT); $mform->setDefault('key', !empty($key) ? $key : ''); $mform->addHelpButton('key', 'secretkey', manager::PLUGINNAME); $mform->addElement('text', 'hash', get_string('sitehash', manager::PLUGINNAME)); $mform->setType('hash', PARAM_TEXT); $mform->setDefault('hash', !empty($hash) ? $hash : ''); $mform->addHelpButton('hash', 'sitehash', manager::PLUGINNAME); $mform->addElement('header', 'moreinfo', get_string('moreinfo', manager::PLUGINNAME)); $mform->addElement('static', 'siteinfosummary', '', get_string('sendfollowinginfo', manager::PLUGINNAME, $info->moreinfostring)); $mform->addElement('hidden', 'lang', $info->languagecode); $mform->setType('lang', PARAM_TEXT); $mform->addElement('hidden', 'countrycode', $info->country); $mform->setType('countrycode', PARAM_TEXT); $mform->addElement('hidden', 'url', $info->url); $mform->setType('url', PARAM_URL); $this->add_action_buttons(false, get_string('activate', manager::PLUGINNAME, '#')); } /** * Get default data for registration form * * @throws moodle_exception * @return stdClass */ protected function get_defaultinfo(): stdClass { global $CFG; $admin = get_admin(); $site = get_site(); $data = new stdClass(); $data->name = $site->fullname; $data->url = $CFG->wwwroot; $data->language = get_string('thislanguage', 'langconfig'); $data->languagecode = $admin->lang ?: $CFG->lang; $data->country = $admin->country ?: $CFG->country; $data->email = $admin->email; $data->moreinfo = self::get_moreinfo(); $data->moreinfostring = self::get_moreinfostring($data->moreinfo); return $data; } /** * Get more information. * @return array * @throws dml_exception */ private static function get_moreinfo(): array { global $CFG, $DB; $moreinfo = array(); $moodlerelease = $CFG->release; if (preg_match('/^(\d+\.\d.*?)[. ]/', $moodlerelease, $matches)) { $moodlerelease = $matches[1]; } $moreinfo['release'] = $moodlerelease; $moreinfo['numcourses'] = $DB->count_records('course') - 1; $moreinfo['numusers'] = $DB->count_records('user', array('deleted' => 0)); $moreinfo['numfiles'] = $DB->count_records('files'); $moreinfo['numfactivities'] = $DB->count_records('course_modules'); $moreinfo['mobileservice'] = empty($CFG->enablemobilewebservice) ? 0 : $CFG->enablemobilewebservice; $moreinfo['usersmobileregistered'] = $DB->count_records('user_devices'); $moreinfo['contentyperesults'] = ''; $moreinfo['contenttypeerrors'] = ''; $moreinfo['percheckerrors'] = ''; return $moreinfo; } /** * Get HTML list for more information. * * @param array $moreinfo * @return string * @throws coding_exception */ private static function get_moreinfostring(array $moreinfo): string { $html = html_writer::start_tag('ul'); foreach ($moreinfo as $key => $value) { $html .= html_writer::tag('li', get_string($key, manager::PLUGINNAME, $value)); } $html .= html_writer::end_tag('ul'); return $html; } }