Module menu

Starting in Tiki7, there is a dedicated menu module.
You can use it in a wiki page with this syntax:

Copy to clipboard
{module module="menu" structureId=1}


where structureId is the ID of the structure. You can find the id of the node (or subnode) of the structure that you want to start the menu with, when you visit the page to edit a structure. Each page of the structure has a page_ref_id number associated with it. This is the ID that you can place in the param structureId of the module.

Before the existence of the Module menu, you had to create the menu this other way, instead, in a custom module:
Copy to clipboard
{menu id=43 css=y type=horiz toLevel=0}

Parameters

Displays a menu or a structure as a menu.

Go to the source code

Parameters Accepted Values Description Default Since
menu_id HTML id of the menu in the DOM
megamenu_static This is instead of the dropdown being in the standard position under its parent item in the menu ( y / n ) y
menu_class text Class of the menu container
navbar_class To set the color style of horizontal menus, use the Look and Feel Admin "Navbar background color" option and, for horizontal menus in the top and topbar module zones especially and also in other locations, use CSS variables (recommended method - see https://themes.tiki.org/Pagetop Styles and CSS Variables). Note: 1) the previous default classes "navbar navbar-expand-lg" and "navbar-light bg-light" or "navbar-dark bg-dark" are no longer needed here, 2) special coloring of vertical menus will require specific CSS rules in a stylesheet or Look and Feel Admin Custom CSS, etc.
link_on_section alpha Create links on menu sections (y/n default y)
sectionLevel int In a menu with many levels such as made with a wiki structure, menu levels lower than this won't be displayed.
menu_cookie alpha Open the menu to show current option if possible (y/n default y)
setSelected Process all menu items to show currently selected item and other dynamic states. Useful when disabled on very large menus where performance becomes an issue. ( y / n ) y
show_namespace Show namespace prefix in page names ( y / n ) y
navbar_toggle Used in Bootstrap navbar menus when viewport is too narrow for menu items ( y / n ) y
navbar_brand Used in Bootstrap navbar menus, if there is a brand logo to be attached to the menu
translate alpha Enable translation of menu text (y/n default y)
type text Orientation of menu: horiz or vert (default: vert)
toLevel int Menu levels higher than this won't be displayed.
bootstrap If Bootstrap menu isn't chosen, the result will be a legacy-style vertical menu. ( y / n ) y
megamenu This is a Smartmenu that has a flattened structure of level 1 (Smartmenu preference must be turned on). ( y / n ) n
id int Identifier of the menu (from tiki-admin_menus.php)
structureId text Identifier of a structure of wiki pages (name or number from tiki-admin_structures.php)


Example based on Structure (sub)tree

Imagine that we have this structure defined in our Tiki:

Copy to clipboard
Introduction Methodology Design of Experiment Wet Lab work Data processing work Statistics work Results Discussion Bibliography


Those pages, once created the structure, will receive and Id number (page_ref_id param).

Click to expand
Click to expand


The homepage of the structure has page_ref_id=6. If we added that number to the module menu Structure Id param, the full structure tree would be used for the menu. If we use another page_ref_id, from a subtree of the structure (like page_ref_id=8, for the subsections of "Methodology"), then that subtree would be used to create the menu.

Click to expand
Click to expand


Once saved, the menu would display its links dynamically:

Click to expand
Click to expand


If we add new pages to that structure subtree, they would show up automatically as links in the menu also.

Making menus look good

For top-right horizontal menu

  1. Use the module menu in the "top" section with the following parameters:
    • id= (put the ID of the menu you want there)
    • type=horiz
    • css=y
    • menu_id=secondary_site_menu
    • menu_class=box-secondary_site_menu
    • nobox=y

The second-level horizontal menu

  1. Use the module menu in the "topbar" section with the following parameters:
    • id= (put the ID of the menu you want there)
    • type=horiz
    • css=y
    • menu_id=tiki-top
    • menu_class=clearfix
    • nobox=y

Using CSS option (instead of bootstrap) so the sub-level menu open where there is room.


If you use a CSS menu instead of the default bootstrap in the footer (for example, a horizontal one there when there's no left column on the page), then the dropdowns will slide upward to stay in view.

  1. Sample using a module menu in the "bottom" section with thre following parameters:
    • id= (put the ID of the menu you want there)
    • type=horiz
    • bootstrap=n
    • css=y

Bottom menu sub-level that dropup (slide up) and instead of dropdown (slide down)

On admin-modules, under the menu or for other dropdown-containing module's you can go to "Appearance" tab, add "dropup" for the "custom class" option.

Comparison with other modules

What is better with the "module menu" compared to the "module wikistructuremenu", is that the "module menu" you can use for horizontal and vertical menus, whilst the "module wikistructuremenu" works only vertically.

Example

See:
http://projekte.go-man.eu/Dokumentationen

The main horizontal navigation menu in the top bar, that you can see aswell on the one column HomePage, is a "module menu" with a "standardly assigned menuId".
Each of the topnavigation items link to a wikistructure startpage, each assigned to an appropriate category.

There is a second horizontal menu - not in the topbar, but in the pagetop.
This is the same menu than lefthandside, so it is a wikistructuremenu - but this one is made with the "module menu" (instead of the lefthand ones, which are said to be "modules wikistructuremenu").
So you see that a wikistructure menu works with the "module menu" aswell.

If the menu should be restructured - mostlikely the new pages autoposition in the menu does not fit exactly - somebody with permission to admin the structure has to move up and to deprecate or to promote the page in the structure - that is done only with arrows up/down/left/right

In the admin area of the specific structure, you also can add (or delete) pages to this structure and depending of the settings regarding autocategorisation, these added pages also appear in the menu automagically (if a structured page would not be in the structures category, the menu would disappear).

This way, you do not need to give any editor the task and/or permission to edit menus.
The moving of pages in the structure is such time-un-consuming, that a few people with permissions on structure administration might be enough and this might not necessarily a permission for all editors.


See these pages for information that applies for all modules:


Alias names for this page:
MenuModule | ModuleMenu