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/>./*** Library of interface functions and constants for module edusharing** All the core Moodle functions, needed to allow the module to work* integrated in Moodle should be placed here.* All the edusharing specific functions, needed to implement all the module* logic, should go to locallib.php. This will help to save some memory when* Moodle is performing actions across all modules.** @package mod_edusharing* @copyright metaVentis GmbH — http://metaventis.com* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later**/use mod_edusharing\EduSharingService;use mod_edusharing\UtilityFunctions;defined('MOODLE_INTERNAL') || die();set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/lib');/*** Module feature detection.** @param string $feature FEATURE_xx constant for requested feature* @return int|bool True if module supports feature, false if not, null if doesn't know*/function edusharing_supports(string $feature): int|bool {return match ($feature) {FEATURE_MOD_ARCHETYPE => MOD_ARCHETYPE_RESOURCE,FEATURE_MOD_INTRO, FEATURE_SHOW_DESCRIPTION, FEATURE_BACKUP_MOODLE2 => true,default => false,};}/*** Given an object containing all the necessary data,* (defined by the form in mod_form.php) this function* will create a new instance and return the id number* of the new instance.** @param stdClass $edusharing An object from the form in mod_form.php* @return int|bool The id of the newly inserted edusharing record*/function edusharing_add_instance(stdClass $edusharing): int|bool {$service = new EduSharingService();try {$id = $service->add_instance($edusharing);} catch (Exception $exception) {debugging('Instance creation failed: ' . $exception->getMessage());return false;}return $id;}/*** Function edusharing_update_instance** Given an object containing all the necessary data,* (defined by the form in mod_form.php) this function* will update an existing instance with new data.** @param stdClass $edusharing An object from the form in mod_form.php* @return boolean Success/Fail*/function edusharing_update_instance(stdClass $edusharing): bool {$service = new EduSharingService();try {$service->update_instance($edusharing);} catch (Exception $exception) {debugging('Instance update failed: ' . $exception->getMessage());return false;}return true;}/*** Given an ID of an instance of this module,* this function will permanently delete the instance* and any data that depends on it.** @param int $id Id of the module instance* @return boolean Success/Failure*/function edusharing_delete_instance($id): bool {$service = new EduSharingService();try {$service->delete_instance((string)$id);} catch (Exception $exception) {debugging('Instance deletion failed: ' . $exception->getMessage());return false;}return true;}/*** Return a small object with summary information about what a* user has done with a given particular instance of this module* Used for user activity reports.** @param object $course* @param object $user* @param object $mod* @param object $edusharing** @return stdClass*/function edusharing_user_outline($course, $user, $mod, $edusharing) {$return = new stdClass;$return->time = time();$return->info = 'edusharing_user_outline() - edu-sharing activity outline.';return $return;}/*** Print a detailed representation of what a user has done with* a given particular instance of this module, for user activity reports.** @param object $course* @param object $user* @param object $mod* @param object $edusharing** @return boolean*/function edusharing_user_complete($course, $user, $mod, $edusharing) {return true;}/*** Given a course and a time, this module should find recent activity* that has occurred in edusharing activities and print it out.* Return true if there was output, or false is there was none.** @param object $course* @param object $isteacher* @param object $timestart** @return boolean*/function edusharing_print_recent_activity($course, $isteacher, $timestart) {return false;}/*** Function to be run periodically according to the moodle cron* This function searches for things that need to be done, such* as sending out mail, toggling flags etc ...** @return boolean**/function edusharing_cron() {return true;}/*** Must return an array of users who are participants for a given instance* of edusharing. Must include every user involved in the instance,* independient of his role (student, teacher, admin...). The returned* objects must contain at least id property.* See other modules as example.** @param int $edusharingid ID of an instance of this module* @return boolean|array false if no participants, array of objects otherwise*/function edusharing_get_participants($edusharingid) {return false;}/*** This function returns if a scale is being used by one edusharing* if it has support for grading and scales. Commented code should be* modified if necessary. See forum, glossary or journal modules* as reference.** @param int $edusharingid ID of an instance of this module* @param int $scaleid* @return mixed*/function edusharing_scale_used($edusharingid, $scaleid) {return false;}/*** Checks if scale is being used by any instance of edusharing.* This function was added in 1.9** This is used to find out if scale used anywhere* @param int $scaleid* @return boolean True if the scale is used by any edusharing*/function edusharing_scale_used_anywhere($scaleid) {return false;}/*** Execute post-install actions for the module* This function was added in 1.9** @return boolean true if success, false on error*/function edusharing_install() {return true;}/*** Execute post-uninstall custom actions for the module* This function was added in 1.9** @return boolean true if success, false on error*/function edusharing_uninstall() {return true;}/*** Moodle will cache the outpu of this method, so it gets only called after* adding or updating an edu-sharing-resource, NOT every time the course* is shown.** @param stdClass $coursemodule* @return stdClass|bool*/function edusharing_get_coursemodule_info(stdClass $coursemodule): cached_cm_info|bool {$utils = new UtilityFunctions();return $utils->get_course_module_info($coursemodule);}/*** Hook called before we delete a course module.** @param \stdClass $cm The course module record.*/function edusharing_pre_course_module_delete($cm) {return false;}/*** Function edusharing_course_module_background_deletion_recommended** @return false*/function edusharing_course_module_background_deletion_recommended() {return false;}/*** Function edusharing_pre_block_delete** @param mixed $cm* @return false*/function edusharing_pre_block_delete($cm) {return false;}/*** Function edusharing_update_settings_images** @param string $settingname* @return void*/function edusharing_update_settings_images(string $settingname) {$utils = new UtilityFunctions();$utils->update_settings_images($settingname);}/*** Function edusharing_update_settings_name** @return void*/function edusharing_update_settings_name() {// Reset language cache.get_string_manager()->reset_caches();}