History: Module menu
Preview of version: 16
Module menu
Starting in Tiki7, there is a dedicated menu module.
You can use it in a wiki page with this syntax:
{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.
{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:
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).
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.
Once saved, the menu would display its links dynamically:
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
- 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
- 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.
- 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.
Related Pages
See these pages for information that applies for all modules:
- Module — Overall introduction and overview
- Module Admin — Introduction to the module admin pages for site-wide and individual module settings
- Assigning Modules — How to select a module to configure it
- Module Settings Interface — Interface for configuring individual module settings
- Module Settings Parameters — Explanation of standard parameter settings for modules
- Creating Custom Modules — How to create user modules
- Index of Modules — Links to the documentation of individual modules
- User Modules — How (if the feature is active) users can choose and place their modules
- Mods Type Modules — Links to modules that are installed as components
Alias names for this page:
MenuModule | ModuleMenu