10 Essential Drupal 7 Modules

Drupal 7

With the release of Drupal 7 in January of this year, more than 50 modules were moved into core. With so many changes, I thought it would be a good time to go over some of the Drupal 7 modules that (almost) every site should have installed.

PathAuto

PathAuto is a very useful module, particularly on sites with multiple content contributors. This module works alongside Token, one of the modules from Drupal 6 that has been moved into core.

So what does this little gem do?

By default, Drupal will produce URLs that look like this:

Path URL

Of course, you can always add a more human-friendly path using the URL path setting, but PathAuto makes this task much easier. By working with the Token module, it automatically creates paths whenever new content is created according to rules you define. The Tokens module allows for a very wide range of possible parameters that can be used to set the URL. Below is an example that shows a path set using tokens for the content type blog, the year the content was posted and the node title.

Example of a URL set using PathAuto and tokens

Each new blog post on the site will have a path automatically created using the same pattern. As you can see, PathAuto can be a big help when it comes to providing consistent naming conventions for your content URLs.

Views

This one is probably at the top of most people's "must have" list of Drupal 7 modules. Views is a powerful query builder that allows you to write complex queries on the content in your Drupal database and then display the results on a page, block or RSS feed. Once you've dabbled a bit with Views, you'll be in love, but it takes some getting used to. With all that power comes some complexity and it typically takes new users a little while to really get the hang of it.

One problem I have with Views is that it often produces invalid markup, for example a div nested inside of a span. Semantic Views comes to the rescue and is a module that I consider an essential complement to Views.

Panels

Panels is another very robust module that adds the ability to create customized layouts using a drag and drop content manager. The image below is a screenshot from the Landing Page Wizard and you can see that it provides layout options for creating a display. By selecting different categories you have the ability to create a variety of one, two or three column page layouts.

Drupal panels screenshot

Panels also allows for custom styles and integrates with both the Views module and Organic Groups (a great community-building module). There are also related modules like Panels Everywhere that add even more flexibility. What I've just described barely scratches the surface, so I recommend checking out one of the many tutorials out there if you're interested in learning more.

WYSIWYG

One thing a lot of new users feel is missing from Drupal is a default HTML rich text editor, commonly referred to as a WYSIWYG (What you see, is what you get) editor. The WYSIWYG module allows for a number of editors to be easily added, with my favorite being TinyMCE. If you're going to have users creating rich content on your site that aren't fluent in HTML, this module is essential.

I really hope that future releases of Drupal come with WYSIWYG as part of core. It's a usability feature that is sorely needed. I feel the omission of this type of editor says to new users that Drupal is an 'experts only' CMS, and as a fan, I hate to see anything chase off potential users.

IMCE & IMCE WYSIWYG Bridge

These two modules are, in my mind at least, part of a package when combined with WYSIWYG. OK, let's say you have the WYSIWYG module installed and you're happily formatting your text when you decide to insert an image. Well, not so fast if you don't have IMCE and IMCE WYSIWYG Bridge installed.

Without these two modules installed, you're going to have to use Drupal's built-in file attach tool and then manually add the path to the file. That means you'll need to remember your file paths on the server or keep a cheat sheet nearby. Not exactly user-friendly, is it? But with IMCE installed you simply click the image button on your editor's toolbar and you can select, upload, resize and preview the image. IMCE WYSIWYG Bridge is simply a module that allows the other two to work together.

Now that I've described it, it sounds pretty much like every image/file insert tool you've ever worked with, right? So why isn't it included in core? Beats me. It's an area where WordPress has a clear advantage over Drupal - usability. The good news is that a Drupal administrator can add these modules without too much trouble, allowing content contributors to work in an environment they are familiar with.

Webform

If you want to create customized forms on your site, Webform should definitely get a look. Imagine someone in your organization asks you to create a sign up form for the company picnic. With Webform, no problem. You can have a form up and running in minutes. 

A more useful business application of Webform is surveys. Webform allows you to easily create forms of all kinds and then export data to Excel, send confirmation emails and more. It even provides basic statistics on the data you collect. A nice add-on module is Webform Validation which allows you to set fields as required or make sure the data submitted fits conditions you define. 

Global Redirect

This one is essential for anyone who wants to optimize for search engines, and who doesn't want that? When you set the URL alias (or have PathAuto do it for you) Drupal will create the path specified, but it doesn't get rid of the original page, usually named 'node/XX'. This leaves you with two paths that lead to the same page, which can cause a real hit with Google and the other search engines out there.

Global Redirect solves this problem by directing users to the same page every time, keeping you on the good side of SEO best practices.

Content Access

Most folks who choose to use Drupal as a content management system do so because they're going to have multiple users adding content to a website. Content Access is an essential tool that allows administrators to set content permissions by role and by user. Imagine you have a group of users that will be creating blogs but you don't want them to be able to edit any other types of content. Content Access makes this a snap, even allowing for customized access for each content node. 

Mollom

SPAM is a big problem for site administrators and Mollom offers an elegant solution to the problem. This module, backed by Dries Buytaert, the founder of the Drupal project, offers access to an 'intelligent' moderation service. While many sites use CAPTCHA for each submission to protect against spambots, Mollom only requires a CAPTCHA if it thinks the poster might be a spammer. This allows for most anonymous users to post to your site without having to enter a CAPTCHA code each time - a nice usability enhancement. 

Mollom is a service, so after installing the module you'll need to register on the Mollom site for your key. It comes in free and paid versions, with most sites getting by using the free version. 

Honorable Mentions

There are a couple of modules that didn't make my top ten, but still deserve mention. The Rules module allows site administrators to define conditional actions based on events that occur on a site. An example would be sending an email to a moderator every time a comment was posted to the site. I've personally used it to create content workflows which is another excellent use of the module. Rules has a ton of functionality, so if you want X to happen when a user does Y, give it a try.

If you've installed a bunch of modules on your Drupal site, then you know how overwhelming that list can get over time. Module Filter provides a tab interface for the Modules page, allowing for quick sorting by group and module status.

Wrapping It Up

Admittedly, this list of Drupal 7 modules is rather arbitrary. All the same, I think they do form a great base for any site that is just getting off the ground or looking to add some functionality. When choosing modules for your site, be sure you do your research. Selecting critical modules carefully can help ensure your upgrade to Drupal 8 will be a smooth one.