Single menu or separate section menus
There are essentially two options,
- have a single menu structure, which expands the current sub sections as you travel down the tree.
- The problem is that as the site grows, a single (Drupal) menu becomes very cumbersome to manage, especially if re=organising a sub tree within the menu.
- The alternative is to introduce separate menu blocks which are determined by the current page.
- The problem now is navigation is separated into choosing the section (primary link) first, then using the menu block in the sidebar, to travel down to the lower levels. This is perhaps a little less intuitive for someone unfamiliar with the site
All the web pages are linked to the primary links menu. The top level is shown in the banner for site, as well as in the left sidebar. The latter is expanded as you travel down to the lower levels in the tree, and where ever you are in the tree, the whole menu is visible to you. (see left sidebar image below).
You can either use the banner links to jump directly to the section, your interested in (the sidebar will follow you), then use the sidebar to navigate to lower levels or you can simply use the sidebar on its own.
Separate section menus
The alternative is to split up the menu's so only the section you have selected at the top level is visible in the sidebar. For example if you select HTML overview from the banner links, then the sidebar menu will look like the centre menu below. i.e. only the html section is now visible to you. Now say you decide to jump to the CSS section, you must now use a combination of banner links and sidebar menu; as the CSS overview is not available in the (html) sidebar, and you cannot use the sidebar to back up to the top (primary links level).
If instead of selecting CSS overview, you click on the banner link for the webstyle home page (Markup languages), then the sidebar will then correspond to the primary links. The (right hand image shown below). The change is relatively simple to do,
Behind the scenes all pages are currently in the primary links menu. This becomes unwieldy when moving pages, especially when a block. (submenu) must be moved. By adding new menus, e.g. CSS, HTML, XML in this case, you will only have to manipulate the pages in those sections to change the particular menu (block) structure, rather
than the whole menu. This is probably the only significant benefit (to us administrators), at the expense of perhaps making traversing the menu's slightly more complicated for average site users.
The example shows how the site building > menus page will look after the proposed change
How does it work?
Once the menus are created, as part of the menu block configuration, you are presented with a list of menus (see below) which can be rearranged to change the search order. Within a given level, the order probably doesn't matter much, what is important though the menu's must be organised by levels e.g. second level (there are none in this example), first level, top (primary links). So for example, the web page CSS overview must appear in both the
primary links menu and the HTML menu itself. If this page is selected, then the system will first look in the HTML menu block,
then the XML menu and finally in the CSS menu, where it finds the selected page and stops, giving you access to the sub levels within the CSS menu.
What happens if you put the primary links menu before the CSS menu. Well it finds the CSS overview page there and stops. This time you only have access to the other primary links, and cannot access the sub menus because the sub levels of the CSS menu are not in that block.
So within a level if you find that the CSS menu is getting more hits than say XML, you could switch these two around to improve the search.
What if a page is not (yet) in the menu structure? well it will search through all available menus and stop at the last one, primary links in this case.
Hope that is clear. For a more detailed summary see the drupal menu api
or for even more technical detail see