Free Videos about Mastering Views

Drupal Menu System Demystified

Play Video
Movie link (right-click to download)
Problem with this video? Contact me

There's a mistake I've made which a few others have made too. The mistake is rushing into your new Drupal site and populating your menu right away. You simply add new menu items as placeholders until you can create or add the data. You set the menu path to something like <front>, and populate away.

The frustrating part about this, is that your menus may not work as expected - at least when expecting cascading menus using the Primary links (or any other menu) as a hierarchy. Drupal needs to have something to point to in order to build it's internal menu.

There is an option within the Devel module to flush the menu (internally known as the menu router and menu links), and this is great to know, but won't help unless the menus are linked to actual content.

This video will walk you through the 'know-how' about how the menu works internally, and how to avoid the pitfalls of making your menus do what you want. I cover three other add on modules which you can use to make your Drupal serve up the order you've placed for it (did you catch that one? - if not, do you need a Menu? - being addicted keeps you crazy.)

Modules referenced

Sites referenced

Thanks for your video but I still have one problem: Why does my About Us menu item duplicate itself below inside the submenu?

More specifically, how do I create a menu title in primary links called: About Us and then 3 subcategories including: Site, Staff, History

When I follow everyone else's instructions I still get this:

-About Us

I have used Garland Theme and acquia_marina and seems to be doing the same thing with rootcandy. Really can't figure out how to get rid of the first "About Us" subcategory. Now, of course, I created it because I needed a path from a page to add a Menu Item in the first place...

any help would be great.

Thanks for the information. I will try to do likes your said. But, I need some more information about it, I am exited to know more about drupal!!

I recently had to implement what appeared like a simple feature for a client, moving several of the local tasks located on a user's profile page in to the site's primary menu. The menu paths in query are dynamic, E.g, /user/%/edit, /user/%/orders, /user/%/notifications, etc., which at first appeared like slight complication. So how to tackle this?

The Drupal menu system is very smart about when it shows menus.

I saw the same behavior once. But, it only happened in admin mode. Regular users saw a correctly display side menu.

Thank you for your great videos, Matt!

With help of your videos I'm gradually getting rid of all my CMS-Zoo. I've already migrated two of my sites to Drupal (multisite & multilanguage) and about to use it for all the rest ones.

Without your help I wouldn't become addicted. But now I am :).

Thank you very much for the excellent and useful subject.

You might want to check out the menu_editor module.
This module allows to start with the menu structure and fill it with placeholder paths, before you create any content. Your video is an excellent illustration of the typical use case, thank you :)

Hi Matt,

I noticed your secondary navigation links in the video have the same URL problem I have which is they don't display their parent node in the URL. For example your secondary link is showing as instead of

Since the secondary link knows it's parent then is there an automatic way to also show the parent node in the URL? The only way I have seen a way around it is to manually enter the URL alias as about/something instead of letting pathauto automatically create it. The problem with that though is if the parent node name has to change then you have to manually change the URL alias of any secondary links associated with it.

If you know of a way around this I'd love to know.

BTW thanks so much for your work on these videos. It was your videos I found through the Acquia site that gave me enough insight into Drupal to know if was the right CMS for our next website.

This is a great video and it gives me hope that I will get over the menus hurdle, but to add to Ken's comment above, I find it pretty confusing when I see something like, instead of the name of the content type/menu item, say, or with breadcrumbs enabled, HOME > ACTIVE PAGE instead of HOME > MENU NAME > ACTIVE PAGE.


it's really a great, great video. I started learning Drupal 2 weeks ago and I get more and more into it. In the beginning it's really like you'll never figure it out. But you have to think deeply and to understand the fundamental concept of how Drupal works.

Thank a lot for your work - these videos are great - especially for beginners as I am.

Now I got the concept of menues - first the nodes (content types) then creating the menues, so that Drupal can refer to the already created nodes. The nice menu module is really awesome.

Greeting from a German who lives in Istanbul with a lot of time learning Drupal....:-)

Nice Article, informative and interesting

Thank you for the video!!! i find it is very helpful....

Personally I find that the menu module in Drupal core needs an overhaul. In fact I think site structure should be a separate module and not left to the menu system and taxonomy.

I also had recurrent problems with menus working with Joomla. From what I understand Drupal is even more demanding for the user than Jommla. The only package that did not give me problems with menus was Wordpress, where one can easily set menus through categories. But then of course Wordpress is very much simpler than Drupal.

With best regards.

Medizinische Übersetzer

Drupal is more complicated and complex than Joomla, but I have to admit that even in Joomla I many times struggled with the formation of menus and their linking to the actual content. I strongly believe that one could make even something simpler than both Joomla and Drupal, but still with more capabilities than e.g. Wordpress. Just my 2 cents.

Great blog! I like the videos of this blog. This blog contain valuable information.I've already migrated two of my sites to Drupal. Drupal menu system is quite new subject for me. Thanks for sharing information.

you done a great job, thank you for post this article.. its very excellent topic.. i have book mark this one.
Drupal Web Developer, Drupal website Developer


The problem with that though is if the parent node name has to change then you have to manually change the URL alias of any secondary links associated with it.