Working with Menus: Administration Form (Drupal 6)
In all likelihood, menus are the main way by which visitors get at your content. That makes them the key to your site.
What's on the menu?
A menu is a list of links to content. A specific link inside a menu – a "menu item" – can link to a specific node or to a URL on another site. Or, calling on the full power of the database behind your site, it can pull up a list of nodes based on some criterion, telling Drupal to create a new page from those nodes.
As you'd expect, your site can have any number of menus. Drupal starts you off with a couple of basic ones: the Navigation menu and the Primary links menu (often called "Primary menu").
The Navigation menu is Drupal's built-in menu of links for authenticated users (that is, users who have an account and are logged in). It provides links to the various functions the user has permission to perform: creating content, viewing reports, editing account info, administering sections of the site, whatever the user is allowed to do. (The Navigation menu doesn't provide links to functions for which the user doesn't have permission. It's a big help that Drupal handles this automatically; you don't have to worry about creating a menu of links to only the functions a user needs and no more.)
The Primary menu is simply a suggested menu for you to start placing your site's main links. It's ready-made for you on the assumption that you'll want a main menu with links like 'Home', 'About this site', 'FAQs', or whatever works for you. But you're perfectly free to create a brand new menu for that purpose, or to have no such "main menu" at all. It's all up to you.
What do you do with menus?
Where displaying menus on your site is concerned, the general Drupal concept is to have each menu exist as a block. To place a menu on the site, you enable the block on the Blocks administration form, set where on the page you want it to occur, and voilá, Drupal created a block there bearing your menu's title and displaying all of its menu items as links.
An exception is the Primary menu. That, too, can be displayed as a block like any other. But most Themes will also set aside a special region in which the Primary menu will appear in its own unique format (typically, in the form of horizontal links at or near the top of the page, as seen on so many web sites).
Working with menus
There's a big administration form for all menus on your site:
Navigation » Administer » Site building » Menus
At the top of that form, you should see three tabs: 'List menus', 'Add menu', and 'Settings'.
An overview of the tabs:
You'll see a simple list of the titles of the menus available on your site: probably the Navigation and Primary menus (unless they've been renamed), and whatever other menus have been created.
Click one of the menu titles on the list, and you'll be taken to a page with three new tabs:
This tab lists all the menu items in the selected menu. The list has the following columns:
Here you see the title of each menu item. Naturally, those are the same labels a user sees within the menu.
Clicking on a menu item's title simply activates that link, the same as selecting it in an actual menu.
To the left of each menu item is a cross-shaped "drag mark". Just drag that mark or down to change the order of a menu item within the menu. You can also drag to the right, to make a menu item a sub-menu item of the item above it. (Drag it back to the left to undo that.)
Sub-sub-menus? No problem. You can make any hierarchy of menus you like. Just drag away.
The dragging procedure is much easier to perform than to describe. Quick experimentation will make it crystal clear to you.
This is a great quick way to take an item off of a menu without deleting it entirely. Just uncheck 'Enabled', and when you click the 'Save configuration' button, the item will no longer appear in the menu. You can always enable it again later with the same check box.
The 'Expanded' column refers to the handling of any sub-menus. A menu item can have multiple menu items beneath it as a sub-menu. See the Navigation menu for a perfect example: The item 'Administer' has a sub-menu 'Site building' below it, which in turn contains sub-sub-menu items like 'Blocks'.
If the 'Expanded' box is checked to expand the sub-menu, then the sub-menu items will be visible in the menu (though probably indented, to show sub-menu status). For example, you would see 'Site Building' indented under the "parent item" 'Administer' in the Navigation menu.
If the 'Expanded' box is not checked, then a viewer will have to click on a menu item to see the sub-menu items under it. For example, you would see 'Administer' in the Navigation menu, but not 'Site building'. Only after you clicked on 'Administer' would its sub-menu "open up", displaying 'Site building' and other sub-menu items.
The 'Operations' column has links to edit or delete a menu item.
Editing a menu item follows the same procedure as creating one. See Add menu item below.
Deleting a menu item removes it for good.
This is where you add a menu item – a link to content, whether a node (or list of nodes) within your site, or an external URL (such as a page on another website).
Here are the fields on the form:
This is the meat of your menu item: What does it link to? You can input any external link (such as http://www.google.com) or an internal link to content within your site.
Internal links are a big, rich topic. See earlier pages.
Menu link title
Besides a path, this is the other important item: What's the title of the menu item, i.e., what words will people see in the menu? Typical titles are things like 'home', 'products', 'contact me', and so on.
Whatever you input here will appear as a "tip" when a visitor places the mouse pointer over the link ("hovers" over the link, as the techies term it). It's a good way to describe the link a little, without using a long title.
This is the same 'Enabled' option discussed above. Here you can choose to uncheck the 'Enabled' box when you create a new menu item, should you want to create an item now but not have it appear within the menu until later.
This is the same 'Expanded' option discussed above. Like the 'Enabled' checkbox, this allows you to check or uncheck this item as you create a new menu item, without having to do it afterward in the 'List items' tab.
As discussed earlier, the 'List items' tab offers a way to create sub-menus by dragging a menu item into an indented position under a "parent" menu item. Here you've got the option to the same thing while creating a new menu item.
Click the drop-down menu to see available menus and the menu items beneath them (indented with hyphens). Any existing sub-menu items appear too, using deeper indentations.
Just select a menu's name to place your new menu item inside that menu. Or choose a "parent" menu item, to place your new menu item underneath it as a "child" sub-menu item.
If you place your new menu item somewhere now and later want to move it elsewhere, there's no problem. Just go to the 'List items' tab and use the drag-'n'-drop method discussed there.
As discussed earlier, the 'List items' tab offers a way to order menu items by dragging them into place on the list. Here you've got the option to set a new menu item's order while creating it.
Where in the selected menu will your new menu item appear? Set the "weight" for the menu item: the "lightest" weight will appear first, and the "heaviest" weight will appear last.
But... Looking at the list of numbers that pops up, how do you know which number to choose to place your new menu item smack between two existing menu items? How do you know their "weights"? The truth is, you can't know without the hassle of editing those particular menu items. This 'Weight' option is something of a holdover from earlier versions of Drupal that offered it as a rather clunky way of ordering menu items.
The easiest way to order menu items is to ignore this 'Weight' option, and after you've created all the menu items you want, head to the 'List items' tab to drag items into the desired order.
Head to this tab if you want to change the title of a menu (for example, to change "Primary menu" to a less jargon-y "Main site menu").
This is where you create an entirely new menu to join the ranks of Navigation, Primary, and whatever else you've got.
You'll see the following fields:
Here you input a name for the new menu. Important point: This isn't the menu title that users will see in a block (like 'Our Products'). This is an internal menu name used by Drupal for its own purposes. Follow the instructions under the field on what characters you need to use – but for simplicity, keep the name similar to the title you plan to give the menu (like the name 'our-products' to go with the planned title 'Our Products').
Here you input the title that users will see. If you title the menu 'Our Products' and display the menu as a block, then 'Our Products' is the title that Drupal will place at the head of that block.
Here you can add a few words to describe a menu and its purpose, if you like. It might be useful as an aid to other site administrators, or even to help you later recall what you intended a specific menu for.
This form has a few settings related to site-wide handling of menus:
Default menu for content
This setting is probably meaningless unless you are allowing multiple users to create new content and create menu items linking to that content. Unless you have reason to change it, leave it set to Navigation.
Also see Creating Menu Items on the Fly.
Source for the primary links
Here Drupal is asking you which of your (possibly many) menus you would like it to handle as the special Primary menu. As discussed earlier, most web sites have one "main menu" with important links for visitors like 'home', 'about us', 'links', and so on. Drupal gives one such "main menu" special treatment: Most graphic Themes can automatically display this special "Primary menu" in a special manner, often horizontally at the top of every page.
Drupal initially creates a menu titled 'Primary links' for you, which is handy for this purpose. But here you're free to select any one of your menus for this special handling – say, ignore the 'Primary links' menu and set your hand-made 'Big Site Menu' menu as the 'Source for the primary links'. (Yes, the terminology is getting strange here.)
Source for the secondary menu links
Drupal is equipped to handle one more "special" menu: a Secondary menu. What's that for? Well, think of those sites that have their main links in a horizontal line at the top, plus a second line of links under that. Many Drupal Themes are set up to to easily display a menu in this "Secondary menu" position, with no particular effort on your part.
As your Secondary menu links, you might simply want another row of lesser (but still important) links. To do this, just select the appropriate menu in the pop-up selector. (If you haven't made such a menu yet, go do that first!)
Or, you might want the Secondary menu to display sub-menu items of the Primary menu. To do this, just select the same menu for both 'Source for the primary links' and 'Source for the secondary links'. Drupal will take care of the rest.
An example to illustrate that sub-menu option: If your Primary menu contains the big, important links including 'Our Products', and its 'Our Product' menu item has several sub-menu items for individual product categories, then the technique above will tell Drupal to display those sub-menu product categories in the Secondary menu when a user clicks 'Our Products'. That sort of menu setup is very common on web sites.