Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Theme changes in 2.0

From MoodleDocs

Moodle 2.0


Goals

The main goals are:

  1. general simplification of code
  2. easier theme customizations
  3. allow themes to be stored in dataroot
  4. improved performance
  5. base all themes on YUI CSS foundation
  6. easy customisation of theme images (similar to smartpix)

Design description

All theme files will be served through two files /theme/styles.php and '/'theme/image.php. If more advanced themes need extra javascript files we could add optional /theme/javascript.php file.


All CSS style sheets (including YUI, plugin CSS and parents) would be merged into single large CSS file served via the /theme/styles.php file, it would have several parameters:

  • theme - string, theme name
  • rtl - bool, modified style sheet for RTL languages
  • iehack - 6/7, IE would include special IE6/7 incompatibility fixes (this means IE 6 and 7 loads two styles.php instead of one)


The theme config.php would be significantly simplified, the complete list of available options would be:

  • $THEME->parents = array('standard', 'purple'); lists all parents top-down, each theme contains full list of parents, this is non-recursive and more flexible specification without any limits
  • $THEME->sheets = array('styles_layout', 'styles_fonts', 'styles_color'); the same as before, lists files from current theme directory
  • $THEME->parents_exclude_sheets('standard'=>array('styles_moz'), 'purple'=>array('styles_fonts.css')); it would be also posssible to use true instead of array in order to specify all sheets or all sheets in all parents
  • $THEME->plugins_exclude_sheets('mod_book', 'gradereport_grader'); - specify individual components that should be excluded from this theme
  • $THEME->layouts = array(...); - the same as before, cascades through parent themes
  • resource and filter hacks $THEME->resource_mp3player_colors, $THEME->filter_mediaplugin_colors