diff --git a/theme/splash/config.php b/theme/splash/config.php index f9bca28d4b8..c428ce5a167 100644 --- a/theme/splash/config.php +++ b/theme/splash/config.php @@ -33,10 +33,10 @@ $THEME->sheets = array( 'pagelayout', 'core', 'menus', - 'red', - 'green', - 'blue', 'orange', + 'blue', + 'green', + 'red', 'settings', ); @@ -53,48 +53,57 @@ $THEME->layouts = array( 'standard' => array( 'file' => 'general.php', 'regions' => array('side-pre', 'side-post'), - 'defaultregion' => 'side-pre' + 'defaultregion' => 'side-pre', + 'options' => array('langmenu'=>true), ), // Course page 'course' => array( 'file' => 'general.php', 'regions' => array('side-pre', 'side-post'), - 'defaultregion' => 'side-pre' + 'defaultregion' => 'side-pre', + 'options' => array('langmenu'=>true), ), // Course page 'coursecategory' => array( 'file' => 'general.php', 'regions' => array('side-pre', 'side-post'), - 'defaultregion' => 'side-pre' + 'defaultregion' => 'side-pre', + 'options' => array('langmenu'=>true), ), 'incourse' => array( 'file' => 'general.php', 'regions' => array('side-pre', 'side-post'), - 'defaultregion' => 'side-pre' + 'defaultregion' => 'side-pre', + 'options' => array('langmenu'=>true), ), 'frontpage' => array( 'file' => 'general.php', 'regions' => array('side-pre', 'side-post'), - 'defaultregion' => 'side-pre' + 'defaultregion' => 'side-pre', + 'options' => array('langmenu'=>true), ), 'admin' => array( 'file' => 'general.php', 'regions' => array('side-pre'), - 'defaultregion' => 'side-pre' + 'defaultregion' => 'side-pre', + 'options' => array('langmenu'=>true), ), 'mydashboard' => array( 'file' => 'general.php', 'regions' => array('side-pre', 'side-post'), - 'defaultregion' => 'side-pre' + 'defaultregion' => 'side-pre', + 'options' => array('langmenu'=>true), ), 'mypublic' => array( 'file' => 'general.php', 'regions' => array('side-pre', 'side-post'), - 'defaultregion' => 'side-pre' + 'defaultregion' => 'side-pre', + 'options' => array('langmenu'=>true), ), 'login' => array( 'file' => 'general.php', - 'regions' => array() + 'regions' => array(), + 'options' => array('langmenu'=>true), ), // Pages that appear in pop-up windows - no navigation, no blocks, no header. 'popup' => array( @@ -137,8 +146,11 @@ $THEME->layouts = array( 'report' => array( 'file' => 'report.php', 'regions' => array('side-pre'), - 'defaultregion' => 'side-pre' + 'defaultregion' => 'side-pre', + 'options' => array('langmenu'=>true), ), ); $THEME->csspostprocess = 'splash_process_css'; + +$THEME->javascripts = array('colourswitcher'); diff --git a/theme/splash/javascript/colourswitcher.js b/theme/splash/javascript/colourswitcher.js new file mode 100644 index 00000000000..578f96beefa --- /dev/null +++ b/theme/splash/javascript/colourswitcher.js @@ -0,0 +1,63 @@ +YUI.add('moodle-theme_splash-colourswitcher', function(Y) { + +// Available colours +var COLOURS = ['red','green','blue','orange']; + +/** + * Splash theme colour switcher class. + * Initialise this class by calling M.theme_splash.init + */ +var ColourSwitcher = function() { + ColourSwitcher.superclass.constructor.apply(this, arguments); +}; +ColourSwitcher.prototype = { + /** + * Constructor for this class + * @param {object} config + */ + initializer : function(config) { + var i, c; + // Attach events to the links to change colours so we can do it with + // JavaScript without refreshing the page + for (i in COLOURS) { + c = COLOURS[i]; + // Check if this is the current colour + if (Y.one(document.body).hasClass('splash-'+c)) { + this.set('colour', c); + } + Y.all(config.div+' .colour-'+c).on('click', this.setColour, this, c); + } + }, + /** + * Sets the colour being used for the splash theme + * @param {Y.Event} e The event that fired + * @param {string} colour The new colour + */ + setColour : function(e, colour) { + // Prevent the event from refreshing the page + e.preventDefault(); + // Switch over the CSS classes on the body + Y.one(document.body).replaceClass('splash-'+this.get('colour'), 'splash-'+colour); + // Update the current colour + this.set('colour', colour); + // Store the users selection (Uses AJAX to save to the database) + M.util.set_user_preference('theme_splash_chosen_colour', colour); + } +}; +// Make the colour switcher a fully fledged YUI module +Y.extend(ColourSwitcher, Y.Base, ColourSwitcher.prototype, { + NAME : 'Splash theme colour switcher', + ATTRS : { + colour : { + value : 'red' + } + } +}); +// Our splash theme namespace +M.theme_splash = M.theme_splash || {}; +// Initialisation function for the colour switcher +M.theme_splash.initColourSwitcher = function(cfg) { + return new ColourSwitcher(cfg); +} + +}, '@VERSION@', {requires:['base','node']}); diff --git a/theme/splash/layout/general.php b/theme/splash/layout/general.php index 4763983db91..3def7ed9012 100644 --- a/theme/splash/layout/general.php +++ b/theme/splash/layout/general.php @@ -107,7 +107,12 @@ echo $OUTPUT->doctype() ?> alt="orange" /> - lang_menu();?> + layout_options['langmenu'])) { + echo $OUTPUT->lang_menu(); + } + echo $PAGE->headingmenu + ?>