This post originally appeared on the Idealware Blog in October of 2009.
Last week, I kicked off this series on setting up a basic web site with Drupal, the popular open source Content Management System. This week we’re going to take a closer look at Modules, the Drupal add-ons that can extend your web site’s functionality. One of the great things about Drupal is that it is a popular application with a large developer community working with and around it. So there are about a thousand modules that you can use to extend Drupal, covering everything from document management to payment processing. The good news: there’s probably one that supports the functionality that you want to add to your web site. Bad news: needle in a haystack?
Drupal comes with a number of built-in modules that you can optionally enable. Some are obviously useful, others not so much. Here are some notes on the ones that you might not initially know that you need:
By default, Drupal asks new users for a name and email, but not much else. With the Profiles module, you can create custom fields and allow your users to share information much as they would on a social network.
Taxonomy is also recommended, and I’ll talk more about that next week.
Throttle should be used on any high-traffic site to improve performance.
Use Trigger if you want to set up alerting and automation on your site.
Add-on modules, must haves:
The Views module lets you customize the appearance and functionality of many of Drupal’s standard screens, and to add your own. Unlike CCK, which is limited to the default layout of content types, Views lets you seriously customize the interface. One easy reason to install Views is in order to take advantage of the Calendar view, which gives you not only a full page, graphical calendar to add events to and display, but also sidebar calendar widgets and upcoming event lists.
Here’s a tip: setting up the calendar view is reasonably tedious. The best write-up explaining it (for Drupal 6) is here: http://drupal.org/node/326061. Drupal’s documentation is okay, but this is step-by-step. It does miss one step, though, which is to add the “Event Date – From date” and “Event Date – To date” to the Fields listing (with friendlier titles, like “From” and “To”). Otherwise, calendar items show on the day they were submitted instead of the day that they are occurring.
There’s a good case to be made that these two modules should be folded into Drupal’s base package, because, in addition to providing very powerful customization features to the core product, there are a whole slew of additional modules that require their presence. If you plan to install a number of modules and/or customize your site, these are pretty much pre-requisites, so just grab and install them.
If you’re building a community site, with hopes of having lots of interactive, social features, Organic Groups gives you the flexibility to not only create all sorts of groups and affiliations on your own, but let your users create their own groups as well, much like Facebook does. For an interactive site, this is essential.
Many modules are available for either integrating with Authorize.net or Paypal, or setting up your own e-commerce site. The aptly named e-Commerce module and Ubercart are among the better known and supported options.
Drupal fans: what modules do you recommend? Which do you install first? Leave your recommendations in the comments.
Next week, we’ll talk about menus, blocks and taxonomies: Drupal 101: Navigation.