My List of Favorite Drupal Modules

February 21, 2008

When it comes to producing robust applications efficiently, choosing a framework is just the first step. Just as important, is familiarizing yourself with a framework’s plugins and knowing how to use them effectively.

I’ve been using Drupal regularly for about a year now, and I continue to be impressed with it. Not only is the framework itself robust and intelligently architected, but I’ve come to expect that when I need to add a new feature to a site, I can find an existing, mature plugin (or “module” in Drupal’s terminology) that implements it. Not only are these modules great in their own right, but they often work surprisingly well in conjunction with other Drupal modules.

There are so many modules, that it can be a little overwhelming at first. So, although the list of modules I am going to provide is obviously subjective, based on my own use of Drupal, I think it will help orient new Drupal users to some of the more commonly used Drupal modules.

Generally Useful
These are modules I am quite apt to use in any Drupal instance as they naturally extend the core Drupal framework and/or provide often requested functionality.

  • FCKEditor: Easily adds the Javascript WYSIWYG editor to Drupal.
  • Attachment (requires Filemanager): This provides a more robust alternative to the default Upload module, for uploading files associated with nodes along with titles and descriptions.
  • Captcha and Captcha Pack: An easy and flexible way of injecting Captcha challenges of various types to Drupal forms.
  • Print: Provides printer-friendly content views.
  • XML Sitemap: Produces sitemaps that facilitate search engine indexing.
  • Ecommerce: A robust ecommerce solution for tangible and virtual products, donations and subscriptions.
  • SMTP: More flexible email configuration.
  • Akismet: Uses the Akismet Web Service for spam filtering.
  • Event: Provides an event content type and various calendar displays.
  • Front: Allows you to create a splash page that is laid out differently than the theme template your site uses.
  • Image: Provides an image content type as well as the ability to display images in galleries.
  • Location: “Let your users set their address or tag your content to a physical snail mail location and integrate it to a mapping solution!”

More Advanced
You can do a lot of advanced stuff in Drupal without writing code:

  • Content Construction Kit (CCK): Arguably the most powerful single Drupal module, CCK allows you to easily create new content (node) types through the admin interface with custom form fields, or add custom form fields to existing content types, among other things. Although I was initially skeptical of this approach, figuring I would soon “hit a wall” trying to make this module do my bidding, I was surprised by the power and flexibility of this module. My sense from the Drupal community is that this is becoming the preferred way to create new content types, instead of through custom modules, at least for some purposes.
  • CCK specific modules: CCK comes with a solid set of field types, but if you need something more specialized (such as images, links, dates, or computed fields), you’re likely to find it on the Drupal site.
  • Contemplate: Allows you to flexibly control teaser and body output of content types, and is often used in conjunction with CCK.
  • Views: This is essentially an advanced, GUI based query builder for filtering and displaying lists of content in various ways. Like Contemplates, it is often used in conjunction with CCK, although it can be used with any Drupal content type (node).
  • Devel: As you might expect, this module provides views that can help debug a site as its being developed.

Exploiting Taxonomies
The built-in taxonomy module is basically a very general and flexible content categorization system that can be used for various purposes and is a real workhorse within Drupal. Like CCK, there are many great modules that work in conjunction with taxonomies. What follows are some that I have personally used.

  • Content Taxonomy: Access your taxonomies within your CCK content type definitions.
  • Taxonomy Context: Provides flexible ways of displaying taxonomy information as you navigate through taxonomies.
  • Taxonomy Image: Associate images with taxonomy terms, so that for example, you can display icons with categories on your site.
  • Taxonomy Theme: As the name applies, allows you to control the theme based on taxonomies.

Specialized Modules
Some modules essentially re-cast Drupal as a more domain specific framework. Here are two great examples I have used:

  • Open Resort: “Online booking engine and reservation system for destination marketing organizations.” In other words, for hotels, motels, bed and breakfasts, ski resorts, provides the ability to make reservations, pay for rooms, etc.
  • CiviCRM: Customer (”constituent”) relationship management for the civic sector.

Other Modules Worth Mentioning

  • Path Auto: Automatically generates path aliases based on patterns specified for content types. If you use URL aliases, this is worth a look.
  • Autologout: Exactly what is sounds like; forces logouts after periods of inactivity, but does so in a way that prevents users from loosing their work.
  • Auto save: Uses AJAX to automatically save a revision of a node that is being edited.
  • JSTools: A collection of AJAX components.
  • SWFTools: Allows easy embedding of Flash scripts, most notably, various media players.

Useful Modules You May Not Know You Already Have
These modules are part of the default Drupal install, but are not enabled by default.

  • Profile: Provides a configurable way to collect more information from those who register with your site.
  • Contact: Provides an email contact form that can be be used for multiple departments or purposes (like sales vs. customer service vs. technical support). Plays nicely with Captcha.
  • Locale: Even if you aren’t supporting multiple languages, this module can provide an easy way to customize the text strings on Drupal screens without modify Drupal code.
  • Book: I’ve seen a few people lament that Drupal doesn’t have Wiki functionality–the book module is Drupal’s take on the Wiki model.

So, that’s my list. If you are an experienced Drupaler, chances are I have left out at least one of your favorite modules that you just can’t live without. Well, nobody is more interested to hear about it than I, so leave a comment and let me know about it.

For those new to Drupal, you may want to read these general instructions for how to install and activate modules. Once you are more familiar with Drupal, you may want to create your own installation profile that automatically installs your favorite modules for new sites.

1 Comment »

Comment by Cip
2008-10-19 07:12:34

hi,

this is a useful article.
good work.
keep on doing it.

 
Name (required)
E-mail (required - never shown publicly)
URI
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.