Each Drupal developer out there has their own list of their "must-have” modules. These modules are the tarballs (.tar) that each developer downloads and unzips immediately after installing the Drupal CMS. The following list is partially mine and partially that of my Twitter followers.
This post should help those new to Drupal get started on the right path. With any luck, other Drupal ninjas will weigh in with their must have modules that they can’t live without. If you do share any stellar modules, then we will add it to this list and give you credit for the mention, too.
1. ViewsThere is a good reason Views is at the top of my list. It is, IMHO the most powerful module of all. Views allows you to create customized lists of content from your database. The views project page on Drupal.org describes Views as:
... a smart query builder that, given enough information, can build the proper query, execute it, and display the results.To sum it up, Views gives you a very usable interface to create complex MySQL queries which are used to display your content. Let’s say, for example, that you created a content type called “Recipes”. You filled your database with all your favorite munchies. Let’s say you wanted to output all these to the URL path “/recipes”. How would you do this? Views. Or how about a list of the 5 most popular recipes on your site, exposed as a block? That’s a piece of cake with Views. Did I mention Views has its own API?
2. CCKThe second module we install - Content Construction Kit. This module lets you add custom fields to node types. Let’s use the "recipe" example again. Maybe you want to have an “ingredients” field that is separate from the “preparation instructions”. CCK will allow you to add a textarea to your node type. Or maybe you want to have a “Difficulty” field where recipes can be marked as “Easy, Medium, or Hard”. CCK will allow you to add a select menu to your node type with these three options. A few more notable features of CCK:
- CCK creates all the database tables; people with very little database experience can wield the power of CCK
- CCK handles simple validation
- CCK is pluggable, so module developers can write their own “Field types”
3. DevelDevel is one of the most useful tools for Drupal Developers and Themers alike. Devel allows you to:
- print database queries for each rendered page, including execution times
- expose some handy functions for printing complex arrays in a human-readable fashion (using Krumo)
- empty cache, rebuild menus with one click
- generate dummy content (nodes, users, comments) - great for theming and testing views
- Theme Developer: allows you to click any rendered element; observe which function created it; offers candidate override function and displays available arguments as well as candidate template files
4. PanelsPanels allows you to divide pages into, well, panels. Panels:
- gives you the ability to create columns, each with different content
- provides many different configurations and can really add some depth to your pages
5. PathautoDrupal comes packaged with the Path module, which allows users to customize URLs for each piece of content. With Pathauto, you create rules for creating path aliases on the fly. For example you might declare that all nodes of type “Recipe” follow this format:
/recipes/Node-TitleCombine Pathauto's functionality with the Token module, and you have something extremely powerful. A few additional features of Pathauto:
- it can help organize your content into manageable sections by URL (all "Features"" can be found at: "/features/*")
- you can also use Pathauto to define paths for taxonomy terms and user pages
6. TokenToken provides an API that allows other modules to tap into variable bits of text (usernames, node titles, taxonomy terms, etc). This module is required by many current modules, including Pathauto.
7. WebformWebform allows users with the required permissions to create simple data capture forms - great for creating simple newsletter sign up forms or alternative contact forms. The best part is, the forms are created as nodes and act accordingly. Webform:
- provides simple validations for radio buttons and email fields, etc.
- can email submissions to a single or multiple designated addresses
- allows developers to add custom PHP validation processes and post submission actions (like sending information to a 3rd party service)
8. FiveStarHow many sites out there allow you to rate content nowadays? The FiveStar module, created by the great folks at Lullabot, allows you to do just that. Perhaps the biggest strength of FiveStar - you can attach the rating system to all content types (or just those which you specify). I can’t imagine trying to code this myself from scratch. No thanks! This module also requires the VotingAPI module.
9. MollomWithout a doubt the best spam protection software for Drupal - created in part by Dries Buytaert (creator of Drupal). This module uses image and audio CAPTHAs, captures statistics, and learns from each site using the service. Mollom is free, but offers a paid premium service as well.
10. PoormanscronPoormanscron is nifty module that will automatically run Drupal cron operations after a specified period of time. The cron operations take care of loads of behind-the-scenes stuff that keep your site running optimally (search indexing, cleanup of database tables, etc).
Modules Recommended By Our ReadersOne of the best things about blogs is open discussion through comments. Here are some more "must-have" modules for Drupal Web Developers suggested by some of our readers. Israel" for the suggestion!
a command line shell and Unix scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend most of our working hours hacking away at the command prompt.If you find yourself using the command line on a regular basis, it may be worth your while to take a look at Drush. Thanks to Shawn for the tip!