Drupal 101: Navigation

drupal.pngHere's the third in a series of posts on getting started with Drupal, the popular open source content management system. The short intro and discussion on modules are best read first. Today we'll look at site structure, and how menus, blocks and taxonomies can make your site navigable for your visitors.

Menus

Drupal has a simple and flexible tool for creating and managing menus. You can check/uncheck standard functions; assign them to regions (left sidebar, right sidebar, header, footer, etc.); and easily create new items.

By default, Drupal offers three menus that you can add to your site:







drupal_navigation.pngNavigation - The main menu is dynamic. It displays items based on the visitor's role and state of authentication. For example, an unauthenticated user might see a "Login" menu item, while an authenticated user would see "logout". An authenticated user who is also a site manager would see the Administer menu. This menu is usually placed in a sidebar, next to the main content
drupal_primary-links.png
Primary Links - This is often the menu for the main content areas, e.g. Home, Blog, Calendar, About. Primarily links are usually placed in a site's header.
Secondary Links can be used for less popular pages, but ones that you want to have available, such as site maps, privacy notices, and contact links.


You can assign a menu item to any particular piece of content, or to a collection of items by content type. Drupal assigns numbers to individual items. The basic content type is called a node, so the default first page of a web site would be at http://your-site.org/node/1. If you create a blog, the first post would be at http://your-site.org/blog/1.

Tip: Be sure that the Path Module is enabled. Path lets you can rename items with friendlier names than, say, site/node/113.


Say you wanted blog/1 to be your front page, but you also wanted something easier to remember to appear in the address bar, you could rename it "home", so that people could browse directly to the site at http://your-site.org/home. They would see, in the center of the home page, that first blog entry. Drupal's general settings allow you to identify your home page; renaming a numeric page simply makes it friendlier for your users.

If, instead, you simply wanted the whole blog to be the home page, then you would skip the numbers, and not bother with a rename, as linking the front page to http://your-site.org/blog would accomplish that.

Drupal's real power comes in when you realize that, with the CCK module, you can make your own content types, and that can be very easy. A press release will have a similar format to a blog item (title, content). So you can create a type called press_release and link a page to it: http://your-site.org/press_release. All new press releases that you post to the site from Create Content/Press Release will appear there.

Blocks

Blocks are boxes that can be placed on one or more pages or associated with one or more content types. They usually appear in the left or right sidebars. Strategically associating blocks with particular content can be a subtler way o offer navigational aids. For example, you might want to have a block with current open positions appear on your "About" page, but not necessarily with your blog. Or you might not want the job listings to appear on pages describing your services, instead featuring a "Donate Now" box. This flexibility allows you to align content in ways that make sense for the different audiences with varying interests that your site will attract.

Taxonomies

All of the above is fine for sites without a lot of content. But, once you have a library of blog entries, press releases and documents to share, you'll want to give your visitors a way to find what they're looking for that doesn't involve inordinate amounts of scrolling. Search is a no-brainer, but even more important is to organize your content with meaningful labels. For this, use the Taxonomy module.


drupal_taxonomy_terms.pngdrupal_taxonomy_block.png


Taxonomies allow you to tag or classify your content using hierarchal terminology. For example, if your NPO serves the homeless, you might have papers on poverty and employment, descriptions of available shelters and programs, job opportunities, and much more. You can break this content down into meaningful categories, then assign sub-terms in each category. Once the taxonomy is in place, you can assign menu items to terms in your taxonomy, thus aggregating all of the relevant content on a single page. You can set up menu blocks for the sub-terms and assign each block to it's category page. The result is a content rich, drill down web site.



That's it for navigation. Next week, we'll talk about Themes and ways you can make your Drupal site distinctive.