-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcourseconfig.php
More file actions
executable file
·89 lines (79 loc) · 3.22 KB
/
courseconfig.php
File metadata and controls
executable file
·89 lines (79 loc) · 3.22 KB
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
82
83
84
85
86
87
88
89
<?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/>.
/**
* @package local_edusupport
* @copyright 2019 Digital Education Society (http://www.dibig.at)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once('../../config.php');
require_once($CFG->libdir . '/adminlib.php');
$id = required_param('id', PARAM_INT); // This is the courseid.
$course = get_course($id);
$context = context_course::instance($id);
// Must pass login.
$PAGE->set_url('/local/edusupport/courseconfig.php?id=' . $id);
require_login($course->id);
$PAGE->set_context($context);
$PAGE->set_title(get_string('courseconfig', 'local_edusupport'));
$PAGE->set_heading(get_string('courseconfig', 'local_edusupport'));
$PAGE->set_pagelayout('incourse');
echo $OUTPUT->header();
$cms = $DB->get_records_sql(
"SELECT cm.id,cm.instance,cm.course
FROM {course_modules} cm, {modules} m
WHERE cm.course = ? AND cm.module = m.id AND cm.deletioninprogress = 0 AND m.name = 'forum'",
[$COURSE->id]
);
$forums = [];
$targetforum = get_config('local_edusupport', 'targetforum');
foreach ($cms as &$cm) {
$forum = $DB->get_record('forum', ['id' => $cm->instance]);
if (empty($forum->type) || $forum->type != 'general') {
continue;
}
if ($forum->id == $targetforum) {
$forum->selectedforglobal = 1;
} else {
$chk = $DB->get_record('local_edusupport', ['courseid' => $COURSE->id]);
if (!empty($chk->forumid) && $chk->forumid == $forum->id) {
$forum->selectedforcourse = 1;
}
if (!empty($chk->archiveid) && $chk->archiveid == $forum->id) {
$forum->selectedforarchive = 1;
}
}
$forums[] = $forum;
}
if (\local_edusupport\lib::can_config_course($course->id)) {
// Capability moodle/course:viewhiddenactivities applies to editing and non editing teachers, but not to students.
$enrolled = get_enrolled_users($context, 'moodle/course:viewhiddenactivities');
$potentialsupporters = [];
foreach ($enrolled as &$potentialsupporter) {
// TODO: This function does not exist!! - @David.
$potentialsupporter->supportlevel = local_edusupport::get_supporter_level($course->id, $potentialsupporter->id);
$potentialsupporter->courseid = $COURSE->id;
$potentialsupporters[] = $potentialsupporter;
}
echo $OUTPUT->render_from_template(
'local_edusupport/courseconfig',
(object) [
'canconfigglobal' => \local_edusupport\lib::can_config_global(),
'forums' => $forums,
'supporters' => $potentialsupporters,
]
);
}
echo $OUTPUT->footer();