-
Notifications
You must be signed in to change notification settings - Fork 34
/
Copy pathchangecolour.php
75 lines (66 loc) · 2.63 KB
/
changecolour.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
<?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/>.
/**
* Sets the session variable for custom colour schemes
*
* This page accepts the required colour scheme as an argument, and
* sets a session variable accordingly. If the colour scheme is 1 (the
* theme default) the variable is unset.
* If the page is being requested via AJAX, we just return HTTP 200, or
* 400 if the parameter was invalid. If requesting normally, we redirect
* to reset the saved setting, or to the page we came from as required.
*
* @package block_accessibility
* @copyright Copyright © 2009 Taunton's College
* @author Mark Johnson
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @param int scheme - The number of the colour scheme, 1-4
*/
require_once('../../config.php');
require_once($CFG->dirroot . '/blocks/accessibility/lib.php');
// Special function to catch exceptions from site policies.
block_accessibility_require_login();
$scheme = required_param('scheme', PARAM_INT);
switch ($scheme) {
case 1:
// Clear the scheme stored in the session.
unset($USER->colourscheme);
// Clear user records in database.
$urlparams = array(
'op' => 'reset',
'scheme' => true,
'userid' => $USER->id
);
if (!accessibility_is_ajax()) {
// If the 'redirect' argument passed in isn't local, set it to the root.
$urlparams['redirect'] = required_param('redirect', PARAM_LOCALURL) ?: $CFG->wwwroot;
}
redirect(new moodle_url('/blocks/accessibility/database.php', $urlparams));
break;
case 2:
case 3:
case 4:
$USER->colourscheme = $scheme;
break;
default:
header("HTTP/1.0 400 Bad Request");
break;
}
if (!accessibility_is_ajax()) {
// If the 'redirect' argument passed in isn't local, set it to the root.
$redirect = optional_param('redirect', $CFG->wwwroot, PARAM_LOCALURL) ?: $CFG->wwwroot;
redirect(new moodle_url($redirect));
}