Theme settings

Jump to: navigation, search

Note: You are currently viewing documentation for Moodle 1.9. Up-to-date documentation for the latest stable version is available here: Theme settings.

Location: Administration > Appearance > Themes > Theme settings

Theme settings


This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don't use spaces (e.g. standard,orangewhite).

  • Site themes which are listed can be previewed and chosen via Site Administration block> Appearance > Themes >Themes selector.
  • Older versions will find the available site themes via Site Administration block > Configuration > Themes.


If enabled, then users will be allowed to set their own themes through their Edit Profile page. User themes override site themes but not if the course setting is Force theme.

  • If the option allowuserthemes is enabled, each user may select their preferred theme on the Edit profile page. All Moodle pages will be displayed in the user's theme, apart from courses where a course theme has been set.


If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).

  • If the option allowcoursethemes is enabled, each editing teacher may select their course theme via the Force theme option on the Course settings page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.



When enabled, themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance.

  • In Moodle 1.9 onwards, category themes may be set. There is an admin setting to turn this feature on/off under "Site Administration/Appearance/Themes/Theme settings". It is off by default as it does take a bit of processing overhead. If it is switched on then you will be able to select a theme when editing categories. The theme will then apply to all courses in that category or child categories and the category page itself.


Allows users to display and hide blocks


If activity module allows blocks, this will enable a pulldown list.


Will allow the teacher to hide an activity type in the navigation bar.

  • Moodle1.9

In Moodle 1.9, it is possible for the teacher to hide an activity type, for example Quiz crumb, in the navigation bar from students or all users. This would prevent the user from seeing a list of other activities.

This setting has been removed in Moodle 2.0 (see MDL-22427).

New settings for Moodle 2.0

Moodle 2.0

  • Theme designer modethemedesignermode
  • Allow theme changes in the URL allowthemechangeonu
  • Allow blocks to use the dock allowblockstodock
  • Custom menu items custommenuitems


The custommenuitems setting allows you to create a drop down menu that can be displayed by theme's that support it. Currently all theme's that are provided with Moodle 2.0 support this custom menu.

You are able to create the custom menu by entering custom menu items one per line into the setting. Each item is preceded by a number of hyphens (-), the number of items determines the depth of the item. So items that are NOT preceded by a hyphen appear on the top level of the menu (always visible), items with a single hyphen appear on a drop down menu below the previous top level item, and items with two hyphens appear on a drop down menu below the previous first level item and so on.

The content of each item is constructed of up to three bits, each separated by a | (Shift + \) character. The bits are label | url | tooltip.

This is the text that will be shown within the menu item. You must specify a label for every item on the menu.
This is the URL that the user will be taken to it they click the menu item. This is optional, if not provided then the item will not link anywhere.
If you provide a URL you can also choose to provide a tooltip for the link that is created with the URL. This is optional and if not set the label is used as the tooltip for the menu item.

The following is an example of how you would create a custom menu:

Moodle community|
-Moodle free support|
-Moodle development|
--Moodle Tracker|
--Moodle Docs|
-Moodle News|
Moodle company
-Moodle commercial hosting|
-Moodle commercial support|

Note: The custom menu does not escape characters within the label, if you want to use a special HTML character such as an ampersand you must escape it yourself within the label. e.g. use & instead of &.

For more information on this setting please see the Using Moodle forum discussion Moodle 2.0: Custom menu in core

Special themes

Session themes

Moodle offers an additional way to set a theme - the session theme. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.

For example you can offer a special link for PDA users and integrate the session theme orangewhitepda in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter
. The whole URL without the session theme could look like
and with the parameter for the PDA theme like
. In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter
$CFG->allowthemechangeonurl = true;
to the Moodle config.php file in the Moodle base directory.

Page theme

A page theme is for special page-only themes set by code.

Theme hierarchy

Here is the usual order that themes are considered by the Moodle interface.

Theme type Overwrites Display Setting type
Site - all pages* saved in theme profile
User Site theme all pages* saved in user profile
Course Site, user and session themes one course saved in course profile
Session Site and user themes all pages* temporary until logout

(* except courses with the course theme set)

Change default hierarchy

In Moodle 1.9 onwards, the priority of themes can be set via the /moodle/config.php file. The order defines which theme wins when there are several set at different levels. You can set a variable called $CFG->themeorder (see config-dist.php for more details). By default it is set to:

$CFG->themeorder = array('page', 'course', 'category', 'session', 'user', 'site');

See also