-
Notifications
You must be signed in to change notification settings - Fork 26
/
locallib.php
81 lines (74 loc) · 2.61 KB
/
locallib.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?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/>.
/**
* Etherpadlite locallib.
*
* @package mod_etherpadlite
* @copyright 20222 University of Vienna
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @param mixed $padid
* @param mixed $paduri
* @param mixed $client
*/
/**
* Delete all grouppads.
*
* @param string $padid
* @param string $paduri
* @param \mod_etherpadlite\api\client $client
* @return void
*/
function mod_etherpadlite_delete_all_mgrouppads($padid, $paduri, $client) {
global $DB;
$mgrouppads = $DB->get_records('etherpadlite_mgroups', ['padid' => $padid]);
if ($mgrouppads) {
foreach ($mgrouppads as $mgrouppad) {
$client->delete_pad($paduri . $mgrouppad->groupid);
}
$DB->delete_records('etherpadlite_mgroups', ['padid' => $padid]);
}
}
/**
* Add an etherpadlite grouppad.
*
* @param \stdClass $formdata
* @param string $mpadid
* @param string $paduri
* @param \mod_etherpadlite\api\client $client
* @return void
*/
function mod_etherpadlite_add_mgrouppads($formdata, $mpadid, $paduri, $client) {
global $DB;
$config = get_config('etherpadlite');
$groups = groups_get_all_groups($formdata->course, 0, $formdata->groupingid);
$epgroupid = explode('$', $paduri);
$epgroupid = $epgroupid[0];
$mgroupdb = [];
foreach ($groups as $group) {
$mgroup = new stdClass();
if (!$DB->record_exists('etherpadlite_mgroups', ['padid' => $mpadid, 'groupid' => $group->id])) {
$mgroup->padid = $mpadid;
$mgroup->groupid = $group->id;
$mgroupdb[] = $mgroup;
try {
$padid = $client->create_group_pad($epgroupid, $config->padname . $group->id);
} catch (Exception $e) {
continue;
}
}
}
$DB->insert_records('etherpadlite_mgroups', $mgroupdb);
}