Note:

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

Creating different custom menu bars for different courses: Creating different menu bars: Difference between revisions

From MoodleDocs
(redirect)
 
(38 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Template:Themes}}This tutorials explains how to create different custom menu bars for different courses in a Moodle site
#redirect [[Creating different custom menu bars for different courses]]
 
This level of technical knowledge is moderate to advanced, as the tutorial involves some previous knowledge of php and css.
 
==What is the 'custom menu' bar==
 
The custom menu bar is the horizontal bar displayed on top of the screen, usually after the Moodle logo:
    [[ File:menu_bar.png|menu bar]]
 
The name 'custom menu' bar comes from the fact that, in Moodle 2.0, the links displayed on that bar can be easily customised by the administrator of a Moodle site through the menu:
 
Appearance->Themes-> Theme settings and then, configuring the 'Custom menu items' field.
 
Most of the Moodle sites use the same custom menu bar throughout the whole site, which that the links added to the 'Custom menu items' field are displayed in ALL the courses. This is probably fine in most of the cases, however:
''
Wouldn't it be great if, within the same Moodle site, we could display different custom menu bar for different courses'''''Bold text'''
 
 
 
#
#
#
##
I
 
Link to other pages
* [[Themes 2.0 creating your first theme]]
* [[Themes 2.0 overriding a renderer]]
 
==Getting started==
Previous readings
* theme/themename/lib.php
* theme/themename/renderers.php
* theme/themename/lang/en/themename.php
 
Next step open up your themes config.php file and add the following configuration option to it (at the bottom):
<code php>
$THEME->rendererfactory = 'theme_overridden_renderer_factory';
</code>
 
If you've already got a custom renderer you will already have this line.
 
And thats it! now we move on to extending the custom menu.
 
==More titles==
 
<code php>
class theme_themename_core_renderer extends core_renderer {
 
    protected function render_custom_menu(custom_menu $menu) {
        // Our code will go here shortly
    }
 
}
</code>

Latest revision as of 07:10, 8 August 2013