Extension:SideBarMenu

What can this extension do?
This extension allows the creation of multilevel menus through the tag

Download instructions

 * 1) Download extension -> (SVN Repository should not be used)
 * 2) Extract the contents to /path/to/mediawiki/extensions/

Installation
To install this extension, add the following to LocalSettings.php:

Styling
You can use CSS to customize the appearance of the sidebar and override the default CSS styles. To get started take a look in the file /css/ext.sidebarmenu.css.

You can also override css styles on a per menu item level. The styles will attach itself to the  tag. You can override css styles in two ways:
 * 1) using the style parameter. e.g **MenuItem|style=font-weight:bold;font-size:16px;
 * 2) using the class parameter. e.g **MenuItem|class=some-defined-css-class another-css-class

As a late addition, you can also set the class property on the sidebarmenu tag to add custom classes to the root container of the sidebarmenu. This way you can create your own stylesheet and have several sidebarmenu's with their own styling.

Example:  +MyMenuElement1
 * MyMenuElement2

Through this method you could make the sidebarmenu look completely different.

Syntax explanation

 * Each newline represents a new menu item.
 * The first character of a line (either '+' or '-') determines if the menu item's children are visible or hidden
 * The number of '*' characters determines where in the tree the menu item should be placed.
 * The rest of the line is interpreted as wikitext.

Example syntax
MenuItem1                  <-- root menu item +MenuItem2                 <-- new root menu item which has it's children visible -*Child1                   <-- child of MenuItem1 which has it's children hidden
 * Child1                    <-- child of MenuItem1
 * Child2                   <-- child of Child1
 * Child3                    <-- child of MenuItem1
 * Child2                   <-- child of Child1

'+' or '-' determines whether the menu item should be expanded or collapsed, if neither is supplied at the beginning of a line then the default configured ('parser.menuitem.expanded') will decide.

The number of '*' characters determines the location in the hierarchy for the menuitem.

Example usage
The following code;

will result in the following (not entirely true as some changes has been made to the sourcecode):



--- NB. You can now also give each menu item a different display name e.g Monster truck would display "Monster truck" instead of "Monster_Truck"