Installed Modules

Drupal is strongly modularized. What's standard in other content management tools is encapsulated as modules in Drupal, including search, comments, database logging, and taxonomy support. The advantage to this approach is that you have finer control of what's implemented or not, without having to programatically alter the application's default behavior.

Not all have modules have been ported to Drupal 6 yet, but I found all the functionality I wanted. Some of the modules I activated are pre-installed with Drupal; others I found at the Drupal site and downloaded manually. They're all installed in the /modules subdirectory in my installations, and each can be activated from the Modules page, as well as configured from the module configuration page.

Modules | Burningbird's RealTech
Administer | Burningbird's RealTech

The following are the pre-installed Drupal modules I activated.

Book

If there is one aspect of Drupal I like the most, it's the application's support for a book—pages grouped under a title and with their own internal navigation. Though longer writings are not fashionable at the moment, multi-page writings are the only way to adequately cover a topic. With the book content type, creating these longer writings is a snap. I'm using the book content type with this writing.

The only quibble I have with the book implementation is that the top-level page for the book must be published before it's accessible to be parent for the other pages. However, just because the front page is published doesn't mean it automatically shows on the front page. You have to specifically promote the book to the front page. In addition, you don't have to publish all the pages to the book at once. You can publish the first page and then add new pages as you write them. I'm primarily using the book content type at my personal site, Just Shelley.

Contact

The Contact module enables a contact form per user, as well as a site-wide contact form. The site wide contact form requires specifying a category, as well as a receiving email address before the page is available.

Forum

Rather than comments across all my sites, I've implemented a forum at RealTech, with forum categories for each site. People can comment on existing forum topics, anonymously or signed in using a registered account or OpenID. I've also created a custom "user", with the ability to create new forum topics. Needless to say, I have to know the person before they get "trusted" access. I'll have more on this later.

Menu

The Menu module allows customization of the menus. This is one area I'm still feeling my way around, with the help of some non-core modules. By default, Drupal provides for multiple menus, which can be located in the sidebar (Navigation), or along the top of the page (Primary and Secondary links). For my multi-column sites, such as RealTech, I implement Navigation and custom menus, but all sites, including Painting the Web and Just Shelley, have Primary links along the top. Where the menus are displayed is based on which block they're implemented in, which I'll cover in a later section.

Path

The Path module allows users to rename URLs, and is required for the Pathauto module.

PHP Filter

The PHP Filter is a handy module. With it activated, I can embed PHP within a post and the code is actually processed, rather than being escaped to uselessness. I can implement PHP code snippets for tutorials or whatever, knowing that the little buggers will work and without me having to sacrifice a chicken to the Web Safe god.

Profile

The Profile module allows me to configure the user profile; to add additional fields, such as first and last name.

Search

The Search module generates both regular and advanced search pages, both accessible via the default /search URL. Drupal's search is actually quite sophisticated. You can search on category, as well as story type.

Taxonomy

The Taxonomy module is what provides all of the categorization and grouping you see in effect for this writing and others at all of my sites. Before I even started installing Drupal, I mapped out the organization for each of my sites and then implemented them using the Taxonomy module. The only site that doesn't have a taxonomy is my personal site.

Tracker

Tracker provides a list of recent posts of any type, including book pages, stories, blog entries, and forum topics. It doesn't list recent comments.

Token

Token is an underlying core module that manages the strings or aliases used to represent specific data accessible by the Drupal APIs. When constructing URL aliases, you use tokens such as book-raw and vocab-raw in order to specify book name or vocabulary name, respectively. I did have to install the development version of Token because it has a patch which allows me to use the book title as part of the URL for all of the pages. This is a bit of a pain, because the Update module, which I also activated, keeps telling me to upgrade the development version of Token.

There are some other core modules, but the rest are more for reporting and logging. In addition to the core modules—each of which was installed with Drupal, though not activated—I also installed several non-core modules.

Menu Breadcrumb

You can see the Menu Breadcrumb module in action along the top of this page. This module provides a breadcrumb showing the menu entry for each individual writing.

NiceMenus

Nice Menus provides the drop down menus in use at Painting the Web. The menus are driven by CSS except for some JavaScript support when the pages are accessed by IE6.

Pathaudo

Pathauto works with Path to automatically generate URL aliases, such as the ones for these book pages. There are any number of available patterns you can use to generate your paths, and you can also generate alias patterns for taxonomy entries, as well as users. This automatic path generation can be overridden on a post by post basis.

Search404

Search404 provides a nice option: if someone tries to access a page that doesn't exist, the 404 page automatically does a keyword search with the URL terms, as well as providing a search form.

Vocabulary Index

The Vocabulary Index module is what creates the nice taxonomy pages you see when you access the main categories from the Categories menu in the left sidebar of RealTech, and in the main topic menu items in the header of Painting the Web.

Print Friendly

At the bottom of every page, you'll see a link to a "printer friendly" version of the page. In addition, for book pages, you'll also see a link for generating a PDF version of the page. I also include a link to the printer friendly version in the Atom syndication feed, just in case someone has trouble accessing my sites with all the graphics I use. Since I'm using a non-standard layout for Just Shelley, with a fixed left side graphic, I wanted to provide an alternative view of the writing, though the site should be accessible with most browsers, and mobile devices.

Another aspect of the Print Friendly option is that for a book, if you access the link from the top page, all of the pages are concatenated into one document. I've been able to convert this printer friendly page into a Kindle ebook for offline reading.

Atom

Out of the box, Drupal supports RSS 2.0. The Atom module provides access to an Atom feed, which is the only one I support. The module generates a valid Atom feed, which can be configured to support summary, full content, or both. It also has the option to embed ads. What I've done is use the ad override to add the printer friendly option.

Atom | Burningbird's RealTech
Uploaded with plasq's Skitch!
XML Sitemap

The XML Sitemap module generates a dynamic sitemap that can be used with the Google Webmaster tools. I don't use XML Sitemap with all my sites, but I do with RealTech.

The RDF and Sparql modules

The RDF and Sparql modules provide support for RDF data and Sparql querying, respectively. I only have this implemented at RealTech, as the modules are currently in alpha. I'll have more on the metadata support capabilities of Drupal in a later writing.

htmLawed

I just installed this on RealTech, but this module should scrub all input; to ensure that the X/HTML is clean, as well as to do the necessary entity encoding. We'll see how it does.

Image.module

I just installed this module in Just Shelley. This module incorporates ImageMagick into processing uploaded photos and other images. It also adds a new image type, which allows posting of photos with post, in addition to maintaining a gallery.

Many of these modules result in additions to the user interface of the Drupal installation. Where these end up being positioned in the page depends on the site theme.