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: Difference between revisions

From MoodleDocs
Line 38: Line 38:


=Removed old features=
=Removed old features=
# '''meta.php'' - used mostly for IE6/7 hacks, custom layouts may be used instead
# '''meta.php''' - used mostly for IE6/7 hacks, custom layouts may be used instead
# smartpix - completely obsoleted by new image location resolution algorithm
# '''smartpix''' - completely obsoleted by new image location resolution algorithm
# $CFG->themewww and $CFG->themedir - themes can be stored in dataroot, web hosting companies could use shared dirroot without custom themes
# $CFG->themewww, $CFG->themedir and friends - themes can be stored in dataroot, web hosting companies could use shared dirroot without custom themes, the styles.php URLs would be always constructed via some helper functions
# styles.php replaced by styles.css, supported in all plugin types - the PHP is not needed because images are specified using <nowiki>{{component|dir/image}}</nowiki> syntax
# styles.php replaced by styles.css, supported in all plugin types - the PHP is not needed because images are specified using <nowiki>{{component|dir/image}}</nowiki> syntax

Revision as of 11:42, 20 August 2009

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. solve all caching problems
  6. base all themes on YUI CSS foundation
  7. easy customisation of theme images (similar to smartpix)

Design overview

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)
  • rev - int, theme revision number stored in main config table, solves all caching problems


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


Removed old features

  1. meta.php - used mostly for IE6/7 hacks, custom layouts may be used instead
  2. smartpix - completely obsoleted by new image location resolution algorithm
  3. $CFG->themewww, $CFG->themedir and friends - themes can be stored in dataroot, web hosting companies could use shared dirroot without custom themes, the styles.php URLs would be always constructed via some helper functions
  4. styles.php replaced by styles.css, supported in all plugin types - the PHP is not needed because images are specified using {{component|dir/image}} syntax