forked from catalyst/moodle-filter_coursecompletion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathactivitystatusimg.php
64 lines (45 loc) · 1.69 KB
/
activitystatusimg.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
<?php
define('NO_DEBUG_DISPLAY', true);
require(dirname(__FILE__).'/../../config.php');
require_once($CFG->dirroot.'/lib/completionlib.php');
$idnumber = required_param('idnumber', PARAM_TEXT);
// Default to incomplete state for anonymous users
if (!isloggedin()) {
print_icon('incompleteacticon');
return;
}
// If the course module can't be identified return an image saying so
$moduleid = $DB->get_field('course_modules', 'id', array('idnumber' => $idnumber));
if (empty($moduleid)) {
print_unknownactivity();
return;
}
// Check completion status and print complete/incomplete itcon
$completion = $DB->get_record('course_modules_completion', array('coursemoduleid' => $moduleid, 'userid' => $USER->id));
//Incomplete if no completion
if (empty($completion)) {
print_icon('incompleteacticon');
return;
}
//Three types of possible completion
if($completion->completionstate == COMPLETION_COMPLETE || $completion->completionstate == COMPLETION_COMPLETE_RPL || $completion->completionstate == COMPLETION_COMPLETE_PASS) {
print_icon('completeacticon');
return;
}
//One type of fail action
if($completion->completionstate == COMPLETION_COMPLETE_FAIL) {
print_icon('completefailacticon');
return;
}
print_icon('incompleteacticon');
return;
function print_unknownactivity() {
header("HTTP/1.1 303 See Other");
header("Location: $CFG->wwwroot/filter/coursecompletion/pix/unknown.png");
}
function print_icon($name) {
$config = get_config('filter_coursecompletion');
$url = moodle_url::make_pluginfile_url(context_system::instance()->id, 'filter_coursecompletion', $name, 0, '', $config->$name);
header("HTTP/1.1 303 See Other");
header("Location: $url");
}