Introduction to Jay’s Winter List
It has been awhile since I have published a top modules list for Drupal so I thought with Drupal 8 coming out soon it was time for one last top Drupal 7 modules list. As I have stated in past blogs on this subject, it can be very challenging to sort through the literally thousands of modules available for Drupal. Therefore, what I like to do as an 8 year veteran of Drupal is routinely publish a list of modules that I use most often on projects. In doing so I hope to give newbie developers a good list to start with. Some intermediate developers might also find a handful of less obvious modules that can help them out on their next project as well.
NOTE: that I have tried to indicate on the list where I have made changes. You will see several 'New' and 'Update' labels. 'New' does not mean new to Drupal, but rather new to the list.
There are many modules that I use but not as often that didn't make the list or modules that I haven't even heard about. Please leave me feedback in the comments section and let me know which modules you think should be on this list. Thanks!
- Admin Menu *Update
The admin menu is basically the defacto standard module for developers to navigate through the maze of Drupal administrative menus. I previously had the admin module here as well, but I don't see as many developers using this module now. I am pretty hopeful that with the redesigned Drupal 8 administrative menu that we will no longer need to use this module in D8.
A great tool for developers to backup their various configuration (Panels, Views, content types) to code. In Drupal 8 a lot of the work Features does now will be handled by configuration management but I imagine Features will still have some kind of a role in the future.
- 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 is the standard for developer command line site administration. If you are not using Drush, you should be.
Context is some ways is a replacement for the admin/build/block page which has severe limitations. In the past I have used Context for site building/layouts across the sites that I build. More recently, our company has coalesced around Panels as a preferred layout/site building tool in recent months so I use Context differently now than I used to. If I use it all on new projects, I use it maybe for global blocks, theme settings, breadcrumbs, etc..
Display Suite is a great tool for adding advanced field configuration and layout control for node pages (and other entities). It does really well in my opinion of extending the Drupal 'display fields' to give themers much greater control over the layout of entities. That being said, I no longer use this tool on new projects because there is too much overlap with Panels which can essentially do the same thing DS does but Panels can lay out non-entity pages as well. I leave this on the list of a my top 50 as a great Panels-alternative for people who do care for Panels.
- Entity Reference *New
I use this module now over the References module which was a holdover I think from Drupal 6. This module is just a little bit better for relating entity content (like a node reference) and has been moved into Drupal 8 core.
- Field Collection
This modules allows you to create composite fields for Drupal content types. This is an amazing module that I absolutely have to have on most projects (although maybe not required so much on smaller ones). Configuring your views, etc. to pull in content from field collections is a little bit tricky so this is more of a module for intermediate developers.
- Field Group
I really wish this module was just part of Drupal core. This lets you group fields together and is absolutely handy for organizing fields on content types as well as other entities.
- File Field Sources
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. It's debatable whether to use this module or the media module as a widget type for a file field. You could use one or the other exclusively or you could mix and match. For example the Media widget does not give you the super quick auto-complete that the field widget gives you.
Allows you to add ‘link’ fields to content and has Views integration. I still use the module literally on every project.
This is a powerful module for all types of media. My only issue has been the bugginess I have seen over the past couple of years, particularly as it relates to the Media field popup. It's been in 1x-2x limbo for a long time now, I would recommend 2x as I don't believe 1x has any sort of upgrade path.
- Menu Block
This allows you to create new instances of a menu you have created. This is very helpful because sometimes you want to render only a 'slice' of a menu or render it differently depending on the context in which it's used. I use this module pretty much on every site.
- 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.
- Menu Editor *New
This module is great for bulk editing of menus on a site. Drupal Core only lets you add 1 menu item at a time, while with this module you can update many at 1 time.
- Panels + Panelizer *Update
This is a powerful site building tool for Drupal that boasts well over 1 million downloads on Drupal. Since my last blog post our company has transitioned over to using Panels almost exclusively on new projects. The Panels module allows you to control the layout of virtually any page, including entities like node pages. What has turned me around on this module are a couple of things. 1.) Now themers on our staff fully embrace it and 2.) I think the In-Place-Editor (IPE) really helps administrators edit content without needing to be exposed to the more advanced (and confusing) Panel page admin interface. I would highly recommend you give this module a chance if you haven't done so already.
- Path Auto
The standard for automatic path aliasing. A must-have module.
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.
- Smart Trim *New
This module gives you much better control over cutting teasers from body content (or other fields). This is extremely helpful for creating teasers in lists on your website.
A must-have module. This is the reason why you are using Drupal. It has become so ubiquitous with Drupal that it is now in Drupal 8 core.
- Views Bulk Operations
A very handy administrative-type tool. On most of my projects, I use this to provide administrator’s with a view-based replacement for the ‘Admin content’ and ‘Admin user’ screens so that we can customize the appearance of those screens.
- Views Slideshow
A must-have module for every site. Often used for contact forms and has all kinds of useful functionality.
I find that Colorbox is less buggy and more cleanly implemented than Lightbox2. For example, lightbox2 adds too many formatters which can be annoying when you are trying to configure a view or field to use a certain set of image presets.
UPDATE: I still like using Colorbox. I have not gone back to Lightbox2 for some time now. I suppose it could have improved since I have last used it.
- Feeds + Feeds Xpath Parser + Feeds Tamper *Update
A great module for importing content. I find that many sites need to be able to import syndicated content and this is a great tool for importing content. It can be a great tool for migrating content as well. We are using this module to migrate our content from Drupal 6 to 7 on this site.
UPDATE: I have added Feeds Tamper which is also very necessarily for doing things like mapping taxonomy fields with multiple values. This is very difficult to do without Tamper.
I have been using this module since Drupal 6 for things like rating content (creating a 'like' button for example) or flagging offensive comments or 'saving' a piece of content to a user queue. This module is abstract enough that it can be used for all sorts of purposes.
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.
- Search API - Great module for search, I use this on nearly every site now. There are many companion modules like Search API Pages, Search API DB or Search API SOLR that you will need to install as well. With Search API a big advantage for me is that I can build a site using the database initially to save time and then add SOLR later if that is what the project requires.
- 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.
Also a must have module for every site. This module allows you to add meta tag information to every page of your site. Our own Damien McKenna is a maintainer of this module.
A great module for adding 301 redirects to you site. You definitely want to use 301 redirects over just adding aliases and Google will penalize you for multiple aliases.
- XML Site Map
An SEO module for providing site maps to search engines.
- Modernizr *New
This module adds html5 support to browsers that do not support html5. This is important if you are creating a custom theme using a tool like Omega which ships as html5.
- Respond.js *New
Used to add media query support to older IE browsers. This is needed for any responsive site.
- Honeypot *New
Spambot detection without all the hassle of user captchas. I imagine bots can figure a way around this but so far this has been very effective on the sites I have used it on. It uses a simple timestamp check essentially to figure out if a person or a machine is filling out a form. I highly recommend.
- 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.
- Chaos Tools
From the mind Earl Miles, ctools is required by Views in Drupal 7 so you probably already have this module.
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.
- Entity View Mode *New
This module is essential if you need to create new view modes for entities such as content types. We use this for most projects.
- File Entity
This is required by the Media 2x module, and my knowledge of this module is that it let’s you do things like add fields to files.
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.
- Jquery Update *New
I use this module on nearly every project as the client-side requirements for projects really require a more up to date version of jQuery than what ships with Drupal core.
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.. Pretty much a standard module on every site.
This only applies for sites with e-commerce functionality but Commerce is a great module for Drupal. I only leave this on notable mentions since not every site requires an e-commerce component.
- Geocoder + Geofield + Geophp + OpenLayers
These modules are great for adding locations, maps to your website. It can be a little tricky to learn how to configure them initially, but these modules are very powerful and not too difficult to use once you get past the initial learning curve.
I do end up using this module on several sites when I need to import a 3rd party font, such as Google Fonts.
I use 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. This is not a module for newbies however as it really is only important for higher trafficked websites.
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.
Varnish is a must have module for large sites with a lot of anonymous traffic. This is not a module for new Drupal developers as smaller sites do not need Varnish to run smoothly.
These modules have been dropped from the last list updated and here I try to give an explanation as to why they were nixed.
- Apache Solr - I now use Search API instead of SOLR. Search API can work with the database or SOLR (or other search engines) and has great views integration.
- Address Field - I used to use the Location module fairly often and in early Drupal 7 I used this module. I tend to like the Geofield module a lot more than these particular modules.
- Captcha + Recaptcha - I really hate captcha modules. Recaptcha is a better one but they are really all just terrible. I prefer HoneyPot which does not hassle users and is effective.
- CCK - This module is handy for Drupal upgrades but I no longer use it on every project. This module was a holdover from Drupal 6 and just isn't as important as it used to be.
- Content Taxonomy - Drupal 7 has the ability to add taxonomies as fields so this module is not quite as important as it used to be in Drupal 6. This module does add some additional features though for advanced configuration of taxonomy fields.
- Email - This is a handy module but I don't quite use it enough on every project to keep it on the list.
- IMCE - I used to use this module all the time but now the Media module gives you a better WYSIWYG dialog for adding images, so this is really what I prefer.
- Print - I no longer use this module as it's more reliable to just use a print stylesheet as opposed to needing a module.
- References - This is still a good module, but I think that the entity reference module is just a little bit better, so I no longer use this module.
- References Dialog - Since I have switched to entity references I no longer use this module.
- Revisioning - I had this on notable mentions last time around but I have not ended up using this as much as I thought I would on projects.
- Styles - I have found that I don't really need this module any more to alter the output of media content like Youtube videos. I believe the Media module + D7 core already let me do what I want to do.
- Views PHP - I really try hard not to use this module as eval-ed PHP gives you both a maintenance problem.
Have feedback? Share your comments below or contact me at twitter.com/drupalninja.
Top Drupal 8 Modules | Mediacurrent Blog Post