Autoría | Ultima modificación | Ver Log |
<?php// This file is part of Moodle - http://moodle.org///// This program 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.//// This program 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/>./*** install.php** Performed on every plugin installation* Checks for settings in installConfig.json* imports metadata and registers plugin with provided data** @package mod_edusharing* @copyright metaVentis GmbH — http://metaventis.com* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/use EduSharingApiClient\EduSharingAuthHelper;use EduSharingApiClient\EduSharingHelperBase;use EduSharingApiClient\EduSharingNodeHelper;use EduSharingApiClient\EduSharingNodeHelperConfig;use EduSharingApiClient\UrlHandling;use mod_edusharing\EduSharingService;use mod_edusharing\InstallUpgradeLogic;use mod_edusharing\MetadataLogic;use mod_edusharing\MoodleCurlHandler;use mod_edusharing\PluginRegistration;use mod_edusharing\UtilityFunctions;/*** Function xmldb_edusharing_install** @return void*/function xmldb_edusharing_install(): void {global $CFG;require_once($CFG->dirroot . '/mod/edusharing/eduSharingAutoloader.php');$logic = new InstallUpgradeLogic();try {$logic->parse_config_data();$appid = $logic->discern_app_id();$data = $logic->get_config_data();$utils = new UtilityFunctions();$utils->set_config_entry('application_appid', $appid);$utils->set_config_entry('send_additional_auth', '1');$utils->set_config_entry('obfuscate_auth_param', '0');if (empty($data['repoUrl']) || empty($data['repoAdmin']) || empty($data['repoAdminPassword'])) {return;}$basehelper = new EduSharingHelperBase($data['repoUrl'], '', $appid);$basehelper->registerCurlHandler(new MoodleCurlHandler());$authhelper = new EduSharingAuthHelper($basehelper);$nodeconfig = new EduSharingNodeHelperConfig(new UrlHandling(true));$nodehelper = new EduSharingNodeHelper($basehelper, $nodeconfig);$service = new EduSharingService($authhelper, $nodehelper);$logic->set_registration_logic(new PluginRegistration($service));$metadatalogic = new MetadataLogic($service);$metadatalogic->set_app_id($appid);$logic->set_metadata_logic($metadatalogic);$logic->perform();} catch (Exception $exception) {debugging(($exception instanceof JsonException? 'Metadata import and plugin registration failed, invalid installConfig.json: ' : '') . $exception->getMessage());return;}}