mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
127 lines
3.9 KiB
PHP
127 lines
3.9 KiB
PHP
<?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/>.
|
|
|
|
/**
|
|
* Library functions for theme_splash
|
|
*
|
|
* @package theme_splash
|
|
* @copyright 2011 Synergy Learning
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
|
|
/**
|
|
* theme_splash post process function for CSS
|
|
* @param string $css Incoming CSS to process
|
|
* @param stdClass $theme The theme object
|
|
* @return string The processed CSS
|
|
*/
|
|
function splash_process_css($css, $theme) {
|
|
|
|
if (!empty($theme->settings->regionwidth)) {
|
|
$regionwidth = $theme->settings->regionwidth;
|
|
} else {
|
|
$regionwidth = null;
|
|
}
|
|
$css = splash_set_regionwidth($css, $regionwidth);
|
|
|
|
if (!empty($theme->settings->customcss)) {
|
|
$customcss = $theme->settings->customcss;
|
|
} else {
|
|
$customcss = null;
|
|
}
|
|
$css = splash_set_customcss($css, $customcss);
|
|
|
|
return $css;
|
|
}
|
|
|
|
/**
|
|
* Sets the region width variable in CSS
|
|
*
|
|
* @param string $css
|
|
* @param mixed $regionwidth
|
|
* @return string
|
|
*/
|
|
function splash_set_regionwidth($css, $regionwidth) {
|
|
$tag = '[[setting:regionwidth]]';
|
|
$doubletag = '[[setting:regionwidthdouble]]';
|
|
$leftmargintag = '[[setting:leftregionwidthmargin]]';
|
|
$rightmargintag = '[[setting:rightregionwidthmargin]]';
|
|
$replacement = $regionwidth;
|
|
if (is_null($replacement)) {
|
|
$replacement = 240;
|
|
}
|
|
$css = str_replace($tag, $replacement.'px', $css);
|
|
$css = str_replace($doubletag, ($replacement*2).'px', $css);
|
|
$css = str_replace($rightmargintag, ($replacement*3-5).'px', $css);
|
|
$css = str_replace($leftmargintag, ($replacement+5).'px', $css);
|
|
return $css;
|
|
}
|
|
|
|
/**
|
|
* Sets the custom css variable in CSS
|
|
*
|
|
* @param string $css
|
|
* @param mixed $customcss
|
|
* @return string
|
|
*/
|
|
function splash_set_customcss($css, $customcss) {
|
|
$tag = '[[setting:customcss]]';
|
|
$replacement = $customcss;
|
|
if (is_null($replacement)) {
|
|
$replacement = '';
|
|
}
|
|
$css = str_replace($tag, $replacement, $css);
|
|
return $css;
|
|
}
|
|
|
|
/**
|
|
* Adds the JavaScript for the colour switcher to the page.
|
|
*
|
|
* The colour switcher is a YUI moodle module that is located in
|
|
* theme/splash/yui/splash/splash.js
|
|
*
|
|
* @param moodle_page $page
|
|
*/
|
|
function splash_initialise_colourswitcher(moodle_page $page) {
|
|
user_preference_allow_ajax_update('theme_splash_chosen_colour', PARAM_ALPHA);
|
|
$page->requires->yui_module('moodle-theme_splash-colourswitcher', 'M.theme_splash.initColourSwitcher', array(array('div'=>'#colourswitcher')));
|
|
}
|
|
|
|
/**
|
|
* Gets the colour the user has selected, or the default if they have never changed
|
|
*
|
|
* @param string $default The default colour to use, normally red
|
|
* @return string The colour the user has selected
|
|
*/
|
|
function splash_get_colour($default='red') {
|
|
return get_user_preferences('theme_splash_chosen_colour', $default);
|
|
}
|
|
|
|
/**
|
|
* Checks if the user is switching colours with a refresh (JS disabled)
|
|
*
|
|
* If they are this updates the users preference in the database
|
|
*
|
|
* @return bool
|
|
*/
|
|
function splash_check_colourswitch() {
|
|
$changecolour = optional_param('splashcolour', null, PARAM_ALPHA);
|
|
if (in_array($changecolour, array('red', 'green', 'blue', 'orange'))) {
|
|
return set_user_preference('theme_splash_chosen_colour', $changecolour);
|
|
}
|
|
return false;
|
|
}
|