Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
// This file is part of Moodle - http://moodle.org/
3
//
4
// This program is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
 
17
/**
18
 * Library of interface functions and constants for module edusharing
19
 *
20
 * All the core Moodle functions, needed to allow the module to work
21
 * integrated in Moodle should be placed here.
22
 * All the edusharing specific functions, needed to implement all the module
23
 * logic, should go to locallib.php. This will help to save some memory when
24
 * Moodle is performing actions across all modules.
25
 *
26
 * @package    mod_edusharing
27
 * @copyright  metaVentis GmbH — http://metaventis.com
28
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
29
 *
30
 */
31
 
32
use mod_edusharing\EduSharingService;
33
use mod_edusharing\UtilityFunctions;
34
 
35
defined('MOODLE_INTERNAL') || die();
36
 
37
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/lib');
38
 
39
/**
40
 * Module feature detection.
41
 *
42
 * @param string $feature FEATURE_xx constant for requested feature
43
 * @return int|bool True if module supports feature, false if not, null if doesn't know
44
 */
45
function edusharing_supports(string $feature): int|bool {
46
    return match ($feature) {
47
        FEATURE_MOD_ARCHETYPE => MOD_ARCHETYPE_RESOURCE,
48
        FEATURE_MOD_INTRO, FEATURE_SHOW_DESCRIPTION, FEATURE_BACKUP_MOODLE2 => true,
49
        default => false,
50
    };
51
}
52
 
53
/**
54
 * Given an object containing all the necessary data,
55
 * (defined by the form in mod_form.php) this function
56
 * will create a new instance and return the id number
57
 * of the new instance.
58
 *
59
 * @param stdClass $edusharing An object from the form in mod_form.php
60
 * @return int|bool The id of the newly inserted edusharing record
61
 */
62
function edusharing_add_instance(stdClass $edusharing): int|bool {
63
    $service = new EduSharingService();
64
    try {
65
        $id = $service->add_instance($edusharing);
66
    } catch (Exception $exception) {
67
        debugging('Instance creation failed: ' . $exception->getMessage());
68
        return false;
69
    }
70
    return $id;
71
}
72
 
73
/**
74
 * Function edusharing_update_instance
75
 *
76
 * Given an object containing all the necessary data,
77
 * (defined by the form in mod_form.php) this function
78
 * will update an existing instance with new data.
79
 *
80
 * @param stdClass $edusharing An object from the form in mod_form.php
81
 * @return boolean Success/Fail
82
 */
83
function edusharing_update_instance(stdClass $edusharing): bool {
84
    $service = new EduSharingService();
85
    try {
86
        $service->update_instance($edusharing);
87
    } catch (Exception $exception) {
88
        debugging('Instance update failed: ' . $exception->getMessage());
89
        return false;
90
    }
91
    return true;
92
}
93
 
94
/**
95
 * Given an ID of an instance of this module,
96
 * this function will permanently delete the instance
97
 * and any data that depends on it.
98
 *
99
 * @param int $id Id of the module instance
100
 * @return boolean Success/Failure
101
 */
102
function edusharing_delete_instance($id): bool {
103
    $service = new EduSharingService();
104
    try {
105
        $service->delete_instance((string)$id);
106
    } catch (Exception $exception) {
107
        debugging('Instance deletion failed: ' . $exception->getMessage());
108
        return false;
109
    }
110
    return true;
111
}
112
 
113
 
114
/**
115
 * Return a small object with summary information about what a
116
 * user has done with a given particular instance of this module
117
 * Used for user activity reports.
118
 *
119
 * @param object $course
120
 * @param object $user
121
 * @param object $mod
122
 * @param object $edusharing
123
 *
124
 * @return stdClass
125
 */
126
function edusharing_user_outline($course, $user, $mod, $edusharing) {
127
    $return       = new stdClass;
128
    $return->time = time();
129
    $return->info = 'edusharing_user_outline() - edu-sharing activity outline.';
130
 
131
    return $return;
132
}
133
 
134
/**
135
 * Print a detailed representation of what a user has done with
136
 * a given particular instance of this module, for user activity reports.
137
 *
138
 * @param object $course
139
 * @param object $user
140
 * @param object $mod
141
 * @param object $edusharing
142
 *
143
 * @return boolean
144
 */
145
function edusharing_user_complete($course, $user, $mod, $edusharing) {
146
    return true;
147
}
148
 
149
/**
150
 * Given a course and a time, this module should find recent activity
151
 * that has occurred in edusharing activities and print it out.
152
 * Return true if there was output, or false is there was none.
153
 *
154
 * @param object $course
155
 * @param object $isteacher
156
 * @param object $timestart
157
 *
158
 * @return boolean
159
 */
160
function edusharing_print_recent_activity($course, $isteacher, $timestart) {
161
    return false;
162
}
163
 
164
/**
165
 * Function to be run periodically according to the moodle cron
166
 * This function searches for things that need to be done, such
167
 * as sending out mail, toggling flags etc ...
168
 *
169
 * @return boolean
170
 **/
171
function edusharing_cron() {
172
    return true;
173
}
174
 
175
/**
176
 * Must return an array of users who are participants for a given instance
177
 * of edusharing. Must include every user involved in the instance,
178
 * independient of his role (student, teacher, admin...). The returned
179
 * objects must contain at least id property.
180
 * See other modules as example.
181
 *
182
 * @param int $edusharingid ID of an instance of this module
183
 * @return boolean|array false if no participants, array of objects otherwise
184
 */
185
function edusharing_get_participants($edusharingid) {
186
    return false;
187
}
188
 
189
/**
190
 * This function returns if a scale is being used by one edusharing
191
 * if it has support for grading and scales. Commented code should be
192
 * modified if necessary. See forum, glossary or journal modules
193
 * as reference.
194
 *
195
 * @param int $edusharingid ID of an instance of this module
196
 * @param int $scaleid
197
 * @return mixed
198
 */
199
function edusharing_scale_used($edusharingid, $scaleid) {
200
    return false;
201
}
202
 
203
/**
204
 * Checks if scale is being used by any instance of edusharing.
205
 * This function was added in 1.9
206
 *
207
 * This is used to find out if scale used anywhere
208
 * @param int $scaleid
209
 * @return boolean True if the scale is used by any edusharing
210
 */
211
function edusharing_scale_used_anywhere($scaleid) {
212
    return false;
213
}
214
 
215
/**
216
 * Execute post-install actions for the module
217
 * This function was added in 1.9
218
 *
219
 * @return boolean true if success, false on error
220
 */
221
function edusharing_install() {
222
    return true;
223
}
224
 
225
/**
226
 * Execute post-uninstall custom actions for the module
227
 * This function was added in 1.9
228
 *
229
 * @return boolean true if success, false on error
230
 */
231
function edusharing_uninstall() {
232
    return true;
233
}
234
 
235
/**
236
 * Moodle will cache the outpu of this method, so it gets only called after
237
 * adding or updating an edu-sharing-resource, NOT every time the course
238
 * is shown.
239
 *
240
 * @param stdClass $coursemodule
241
 * @return stdClass|bool
242
 */
243
function edusharing_get_coursemodule_info(stdClass $coursemodule): cached_cm_info|bool {
244
    $utils = new UtilityFunctions();
245
    return $utils->get_course_module_info($coursemodule);
246
}
247
 
248
/**
249
 * Hook called before we delete a course module.
250
 *
251
 * @param \stdClass $cm The course module record.
252
 */
253
function edusharing_pre_course_module_delete($cm) {
254
    return false;
255
}
256
 
257
/**
258
 * Function edusharing_course_module_background_deletion_recommended
259
 *
260
 * @return false
261
 */
262
function edusharing_course_module_background_deletion_recommended() {
263
    return false;
264
}
265
 
266
 
267
/**
268
 * Function edusharing_pre_block_delete
269
 *
270
 * @param mixed $cm
271
 * @return false
272
 */
273
function edusharing_pre_block_delete($cm) {
274
    return false;
275
}
276
 
277
/**
278
 * Function edusharing_update_settings_images
279
 *
280
 * @param string $settingname
281
 * @return void
282
 */
283
function edusharing_update_settings_images(string $settingname) {
284
    $utils = new UtilityFunctions();
285
    $utils->update_settings_images($settingname);
286
}
287
 
288
/**
289
 * Function edusharing_update_settings_name
290
 *
291
 * @return void
292
 */
293
function edusharing_update_settings_name() {
294
    // Reset language cache.
295
    get_string_manager()->reset_caches();
296
}