Search form

You are here

Top Drupal 7 Modules: Winter 2014 Edition

Jay

VP of Technical Operations

Feb

12

2014

Top Drupal 7 Modules: Winter 2014 Edition

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!

Jay’s List

Administration

Admin Menu*UpdateThe 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.

FeaturesA 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.

Developer

Backup & MigrateA 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.

ContextContext 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..

DateAllows ‘date’ fields to be added to content with beautiful javascript-powered popup calendars and has Views integration.

DSDisplay 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*NewI 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 CollectionThis 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 GroupI 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 SourcesThis 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.

LinkAllows you to add ‘link’ fields to content and has Views integration. I still use the module literally on every project.

MediaThis 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 BlockThis 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 BreadcrumbI 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*NewThis 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*UpdateThis 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.

RulesI 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*NewThis 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.

ViewsA 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 OperationsA 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 SlideshowI 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 problem with this module and some companion modules (like FlexSlider) is that they do tend to be a bit buggy. I have spent a lot of time trying to get the right combination of module release + js library to get these modules to work. Views Slideshow is not responsive by default, so I also typically add some javascript to make it responsive (as opposed to using FlexSlider which is responsive if you can get it to work).

WebformA must-have module for every site. Often used for contact forms and has all kinds of useful functionality.

Content

ColorboxI 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*UpdateA 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.

FlagI 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.

Publishing

NodequeueWhile 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.

WysiwygSimply a great module for adding a wysiwyg to your site. Gives developers a lot of options and integrates with several of the leading javascript wysiwyg libraries.

Search

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.

SEO

Global RedirectA helpful SEO-based module that helps Drupal not appear to have duplicate URLs so that your site isn’t penalized by search engines.

Modernizr*NewThis 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*NewUsed to add media query support to older IE browsers. This is needed for any responsive site.

Users

Honeypot*NewSpambot 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 LoginVery 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 ToolsFrom the mind Earl Miles, ctools is required by Views in Drupal 7 so you probably already have this module.

EntityEntities 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*NewThis module is essential if you need to create new view modes for entities such as content types. We use this for most projects.

File EntityThis 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.

LibrariesLibraries 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*NewI 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.

StrongarmGreat 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.

TokenHas been around for a while and is still great for using placeholders in content, urls, etc.. Pretty much a standard module on every site.

Notable Mentions

I have moved a couple modules from the official list to notable mentions because some of these modules I don't end up using on every project.

CommerceThis 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 + OpenLayersThese 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.

MemcacheI 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.

SMTPThis 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.

VarnishVarnish 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.

Drops

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.