[All Adaptavist Apps]
This tutorial shows you how to use the Macros to automatically generate self-updating menus...
There are three scenarios where you might want to automate the structure of your menus:
If any of those describe you, read on
But first, there are some scenarios where you might want to avoid automating menus:
So, assuming that you still want to automate your menus, let's begin...
You can use any macro that outputs an unordered bullet list of items within a menu. Let's take a look at two of them...
This is by far the most common macro to make it's way in to the menu settings:
{menu}[Builder] {children} {menu}
The [children macro] basically creates a bulleted list of child pages from a given starting point. The example shown above would look something like this if you put it on a page:
[Builder]
And produces the following menu:
[Builder]
As you can see, there's no other items showing - that's because this page doesn't have any children. However, if we were on a page with children then the list would be generated.
To ensure that children are listed from a specific starting point, use the page parameter as follows:
{menu}[Builder] {children:page=Builder} {menu}
Which would give:
[Builder]
Which results in the menu:
[Builder]
Voila! That's exactly
Well, not quite. We use the depth=2 parameter of the [children macro] to automatically create sub-menus for any pages that themselves have children.
how the Builder menu and most other menus are created at the top of pages in this user guide.
The [incoming-links macro] lists pages that link to the current page. As such, if you're on a page that nothing links to, it won't output anything
The [incoming-links macro] actually allows you to specify what to output if there are no incoming links:
{incoming-links:style=disc}* No incoming links{incoming-links}
. However, as something does link to this page, we will get some output:
{menu}[Automated Menu Creation] {incoming-links:style=disc}{incoming-links} {menu}
As you can see, this macro needs to be told to output as a bulleted list (by default it outputs with icons, but not the sort that are usable in the menu) and because the macro can have a body we've had to include the closing tag as well.
On screen, for this specific page, the macro would display:
Which produces the menu:
While writing this tutorial, we got a bit carried away playing around with other macros and came up with the idea of a navigate menu:
{menu}Navigate {submenu}Incoming Links {incoming-links:style=disc}* No incoming links{incoming-links} {submenu} {submenu}Child Pages {children} {submenu} {menuseparator} {submenu}Page Headings {toc:style=disc|maxLevel=5} {submenu} {menu}
Navigate
Incoming Links
Page Headings
Be warned, if you add this menu, it can get very big! We've included it here as an example of the different types of macros that can be used.
Have fun!