Introduction to Jay’s List
These modules are great stocking-stuffers for every Drupaller on your list!
In all seriousness, as I mentioned in my last top modules list, the sheer number of Drupal modules (in the thousands) can be very intimidating. For the new developer, how do they decide which modules to use? Google search can help you find a module for a specific use case, but it doesn’t help you find the most common modules that seasoned developers use on every site.
- Admin or Admin Menu
Either module is a good choice for admins/developers to quickly navigate various parts of the site. The Admin Menu module has the ‘inline context editor’ which is very handy for moving blocks around that have been set by Context. The Admin Menu module let’s you navigate through the menu options somewhat faster than Admin module in my experience. I often will enable one of these for admins and use the toolbar for other logins (like editors, tech writers, etc).
A great tool for developers to backup their Views and content types to code. I have given several presentations on features and there is a wealth of information out there.
- Backup & Migrate
A must-have utility module for all developers. This allows you to easily dump the sites database minus cache tables which is great for migrating the site across environments. It is also great for scheduled backups that run on cron runs.
A must-have tool for developers to debug their sites.
- Drush + drush make
Drush is the standard for developer command line site administration. If you are not using Drush, you should be. Drush make is great for creating ‘builds’ and is also used in Drupal distributions.
- Address Field:
I am currently using Address Field as a replacement for the Location module which is not yet stable in Drupal 7. Address field allows you to collect an address from within a field and has Views integration.
While CCK has been moved to Drupal 7 core, as ‘fields’ the CCK module still has some important Drupal 7 tools. This module has migration tools which is helpful for site upgrades from version 6. It also has a PHP filter option for textfield selects, which is a very important feature for some
The defacto new standard for block placement. The admin/build/block page has real limitations and becomes unreadable with larger sites. Context is much more powerful. It’s exportable and you can do more than just block placement. I also tend to use it for adding body classes to ‘sections’ of the site which allows me to cleanly separate my CSS styles by ‘section’.
- File Field Sources
This has become a must have module for me because this module allows you to do things like reference an existing file from a file field or a really great feature is fetching a file from an external URL. I use this all the time when I am adding test content to a site.
Allows you to add ‘link’ fields to content and has Views integration.
For many, this module will replace SWF Tools and/or Embedded Field in Drupal 6. This is a powerful module and I have used it often for adding 3rd party video content to my website. This handles all kinds of Media, but thus far my exposure has been using the Media Youtube and Media Vimeo modules.
- Menu Breadcrumb
I use menu breadcrumb on most of the sites I build because it offers very straightforward breadcrumbs when you have a nested links in your primary menu. If you don’t have nested links, it is not as useful. I tend to use this module for my primary menu links and the ‘rules’ module for all of my other breadcrumb rules.
Maybe the most controversial module in the Drupal community because I think the UI turns a lot of people off. I have scaled back on my Panel’s usage on sites in favor of context but I still like using the ‘node template’ panel for rendering the output of a node detail page and also for 1-off layouts like homepage layouts. For these use cases, Panels is very handy.
- Path Auto
The standard for automatic path aliasing. A must-have module.
For node & user reference fields, this is the Drupal 7 replacement of the Node Reference & User Reference field modules in Drupal 6. It's a very handy module for relating content to other content or user accounts.
- References Dialog
Replacement of node relationships in Drupal 6. This is a great module for providing a dialog for reference content. Otherwise, you are left with only an auto-complete field or dropdown select.
I use this module on every project now. It's a swiss-army-knife tool for all sorts of tasks that in the past might have required custom code. You can send emails, set breadcrumbs, all sorts of tasks.
This module is very necessary in the Cloud server era. A lot of cloud servers can’t send out email the old fashion way because the Cloud server IP’s are blocked which can be very frustrating. Using SMTP authentication for the site mail is a workaround for this issue.
A new module for Drupal 7. This is very necessary for styling media, for instance, if you use the media module it may not be super-obvious that this module is very necessary to alter the output of your media (in my case I’ve used it for Youtube video).
A must-have module. This is the reason why you are using Drupal. Views 3 is even more awesome than 2.0. I really like the updated workflow.
- Views Bulk Operations
A very handy administrative-type tool. On most of my projects, I use this to provide administrators with a view-based replacement for the ‘Admin content’ and ‘Admin user’ screens so that we can customize the appearance of those screens.
- Views PHP
Replaces Views Custom Field in Drupal 6. Probably not best practice to have a bunch of PHP tucked away in various Views fields but a very practical module for getting a view to work correctly when you don’t have the exact fields you need.
- Views Slideshow
I use this module on almost every project I work on now because it’s very common for sites to have something rotating somewhere (including the homepage).
A must-have module for every site. Often used for contact forms and has all kinds of useful functionality.
Simple module for rendering a ‘print’ version of a page or sending a page via email. Can be handy, although I tend to not use this as much now.
Although this module is somewhat buggy, I still end up using it on just about every project. I haven’t found an alternative yet for using ‘lightbox’ functionality for things like image galleries, so for the time being I am still using Lightbox2.
This only applies for sites with e-commerce functionality but Commerce now is the sequel to Drupal 6’s Ubercart. The Commerce module has better integration with other powerful Drupal modules (eg Views, Rules) and is much more flexible.
I am using this module on just about every site now. If you know how to setup Memcache on the server level then installing the module on Drupal is very simple. This allows you to use Memcache instead of the database for cache tables and really helps the site scale as Drupal interacts with caches constantly.
I have been using Varnish on every project for a while now. For non-Acquia sites I install the Varnish module which integrates with Drupal caching API very well. I really like this functionality, I wish that Acquia hosting could support this module (hint).
It is possible that there are newer, better modules for adding a dialog popup window for adding images to a wysiwyg box but I have been using IMCE since version 4.6 so for the time being I am still stuck on this module.
- IMCE Wysiwyg
This module integrates IMCE with the Wysiwyg API module and is a must-have if you are using IMCE.
While I don’t care much for the Nodequeue UI, I haven’t been able to find anything better as of yet. Node queue is good for creating arbitrary lists of content and this module has good views integration. I wish it has a UI similar to Draggable Views which would really make this tool more useful.
Haven’t used yet but revision control is a common request so I am taking a hard look at this module. Allows for moderation of content revisions.
- Global Redirect
A helpful SEO-based module that helps Drupal not appear to have duplicate URLs so that your site isn’t penalized by search engines.
- Google Analytics
A must have SEO-based module for every site.
I have used it for a while now and I really like it. This module allows you to add meta tag information to your site, including node content. This replaces Nodewords in Drupal 6 which was an extremely buggy module and yet was used on 80,000+ sites.
- Page Title
A very simple SEO-based module that allows you to add page titles to your content.
Replaces path redirect in Drupal 7. Haven’t used yet in d7 but a must-have in Drupal 6 for creating 301 redirects.
- XML Site Map
An SEO module for providing site maps to search engines.
- Apache Solr
Apache Solr has become the industry standard for faceted searches. Apache Solr can be used as the default Drupal search. Also for newbie developers, ‘Acquia search’ is an option that sits on top of Apache Solr and provides solr indexing as as paid service and is very easy to set up.
- Captcha + Recaptcha
Captcha’s are handy for filtering out spam on contact forms. reCaptcha is a much better captcha which acts as a free service. Mollom is also an option but I tend to prefer reCaptcha.
- Redirect 403 to User Login
Very handy module for access denied pages! I use this on every project now. This module redirects you to a user login when a user hits a page they do not have access to.
Utility / API Modules
- Chaos Tools
From the mind Earl Miles, ctools is now required by Views in Drupal 7 so this is a must have module which helps power other import modules like Views, Panels & Features to list a few.
Entities are a new Drupal 7 concept, this module is required by a lot of other modules because it exposes an API to entities, so chances are you are going to need this module installed.
- File Entity
This is required by the Media module, and my knowledge of this module is that it let’s you do things like alter the display of a file field.
Libraries are another new Drupal 7 concept. It is an API module for modules and I don’t know that much about it other than this is a required module for other common Drupal modules.
Great when used with the Features module. This module stores Drupal settings in code instead of the database. This is very handy for Features because it will auto-export a lot of settings for you when you export content types to features.
Has been around for a while and is still great for using placeholders in content, urls, etc. One of the big improvements I’ve been told is regarding performance. I know that token in Drupal 6 was very inefficient and I am told it is much more efficient now in Drupal 7.