What's on the Menu?

When creating a website or application, it is common practice to complete the information architecture with a menu system. However, approaches to menus differ wildly and menus should be handled with extreme care, especially on larger content managed sites. We have recently been working on a site with many content items that have been housed in an enterprise level content management system (CMS). This CMS was built to enable easy insertion of content items into menus. What's more the rules governing content creation gave site editors huge amounts of freedom to create containers for their content. Over time, the menu structure therefore became unweidly - as content was hidden within multiple levels of menu hierarchy. Even good search was unable to rectify this problem. Moving this content to Drupal provided a number of challenges. Data migration (which I'll handle in another post) was one, but more importantly sanitising menus in a way that better serves the needs of the audience is what took up most effort. Why should this be so? To begin with, Drupal's menu layer is separate from its content (node) layer. In other words, creating what most people think of as a content page in Drupal does not organise the content within a menu. This is actually a very hard concept for people to grasp if they are used to dealing with other CMSs.

You have some content, so you need to put it somewhere sensible - why not a menu? But as we've seen, menus get bloated and unmanageable over time. What's more, not every content item 'belongs' in one place. An organisation may have learning content in a learning area of its Intranet - but it is often appropriate to flag up that content when looking at other areas of the site - dealing with common problems, or compliance. Users might identify a problem and then need to see exactly how to rectify it with appropriate training. Tagging or taxonomy seems the obvious answer, and while much more commonly understood, still provides challenges to organisations. In the Drupal world, taxonomy is also a lot more than a simple tagging system - it is an extremely powerful way of organising your content to create data collections, expose local sorts and filters and, yes, even to create menus.

We still rely heavily on menus at a high level. But it is far more appropriate to organise menus at the outset of the project and then enforce strict levels of access to edit them. Potentially, the highest level of an Intranet has only one person who can alter the menus. Content editors within specific content areas may be given access to edit their own menus (the Menu Position module is useful here) - but again this should be handled with care. In most instances, it is far better for local editors to create content within content zones (e.g. using Workbench) and for this to be available through a sensible taxonomic view system.