With the introduction of Drupal 7, many of the great tools that were essential in Drupal 6 – CCK and ImageCache for example – have been built right into the core installation. While some may argue that this bloats the core package and removes the ability to choose alternatives, the bottom line is that there weren’t, and don’t need to be, any alternatives to these great modules. So, instead of making 99% of developers install the same modules over and over and over, they’ve been included in Drupal core.
There are, however, still a few modules that every developer should install right from the offset of a new project and some that will be useful for different kinds of projects. We’ll take a quick look at the essential modules right now.
Modules to Install Upon Initial Setup
Backup and Migrate
Backup and Migrate is the FIRST module that I add to each and every project. By the time I have Drupal core uploaded and my “settings.php” file connected to my database, I want to make sure that I never lose any database information. Backup and Migrate does just that, backs up your entire database at customizable intervals and keep as many as you’d like. In Drupal 7, these database backups can be saved right on the site’s server, copied to another database, saved to another server (via FTP), exported to an Amazon S3 bucket, or emailed as an attachment.
I generally just set this to backup once a day and keep the last 5 days’ worth of backups. I store these right on the same server as the website, but it would really be best to save them to an Amazon S3 bucket, in the event of a server crash.
The new Drupal 7 toolbar is a huge improvement over the default menu system in Drupal 6, an unordered list that must be assigned to a region. It lacks one major feature though, and that’s dropdown menus for easy access to most used tools. That’s where Administration Menu comes in! Creating content and adding new modules is always a click away with Administration Menu’s dropdown menus. For that reason alone, this is the second module that gets installed in every Drupal install.
Must-Haves for Every Drupal Site
Now that CCK is part of core in Drupal 7, Views is the next most important module for Drupal designers to install. While some hardcore Drupal developers may use hooks within theme files, Views makes it easy to create lists of content on your site. All you have to do is tell it what type of content to filter by (news article, employee bio, etc), what fields to show, and the sorting order. The interface can be a little intimidating at first, but it’s because of the power of this module that it’s so important!
It’s only a matter of time before Views becomes a part of Drupal core. I believe the only reason it isn’t already is simply the number of files the module contains. Adding Views to core would, in effect, double the number of files in the Drupal core package.
Chaos Tool Suite (CTools)
While the main reason I’m listing this module here is because Views‘s dependency on it, the Chaos Tool Suite is also a major underlying module for TONS of great other modules. This powerful suite of tools has given other Drupal module developers the ability to create some stunning add-ons. Since you’ll have it installed anyway, take a moment at some point to see what other modules are powered by this great module.
At this point, the modules are starting to pile up. These contributed modules, in addition to all the modules that come with Drupal core, are starting to make the Modules page a bit hard to navigate. That’s where Module Filter saves the day. By collapsing all the module fieldsets on top of each other and providing a nice set of sidebar tabs to switch between them, Module Filter makes it easy to find exactly the module(s) you are looking for! You can also narrow your module search with the built in text field and check boxes.
Pathauto makes the job of creating a nice URL structure a breeze. The most powerful feature is the ability to set path patterns for your content. For example, you can tell it to set blog article paths to follow a pattern like this one:
"blog/[the post date year]/[the post date month]/[the article's title]"
NOTE: The pattern above is not the actual text required to make that pattern, but an example of how easy it is. All you would need to do is replace what I have in brackets with variables provided right on the Pathauto settings page!
Token is again listed here because it is required by Pathauto, but it gives lots of other modules the ability to function using what’s essentially called “shortcodes.” For example, instead of using PHP to call the global variable “user” and then sift through it for $user->name, token allows modules to use [user-name] to get that information.
I hesitated to add this as an “essential” module, but it’s ulnikely, at least for client work, that there won’t be a form of some kind to gather information. For most sites that aren’t ecommerce sites, the best we can hope for is a lead from a contact form. For that reason, Webform is essential, for me, for client work. There are other form modules for Drupal, but this one has proved the easiest and most robust.
That’s All… or Is It?
Can you think of any essential modules I missed? Let me know in the comments and I’ll make sure they get in this list!
Also, make sure you stay tuned to this series. The next article will be a list of modules that MOST new projects will need. After that, I’ll probably come up with a few lists for specific types of projects (ecommerce, hospitality sites, government sites, etc)!