Some Drupal Modules I've Used

Recently, a fellow Drupalist asked me a really good question, approximately worded: “what are the modules you are familiar.” This is a great question, and I wanted to pick some awe inspiring modules that had a 'wow-factor' but all I could think of was “link,” “devel,” but what I wanted to say was some great module that really did everything and summarized what Drupal is all about.

“Views it is, yes of course Views.” An obvious answer, but there is so much more when talking about all the available contributed Drupal modules. There are so many 'Lego'-like modules in Drupal it almost becomes a blur. Thinking about Drupal modules for a second, there are simply a huge number of building block modules that do some precise thing, but are not inherently awe inspiring, and yet many other modules depend on these “Lego” modules.
One notion comes to mind: contributed Drupal modules, are absurdly important, perhaps more than we give them credit. With that thought, here are as many modules as I can list based on memory, which I've setup and/or used. Idea: a site where Drupal site builders and developers can check off modules they've used, or flag them to create favorite lists. A Drupal.org user's profile could have a list of modules they have worked with shown in a sorted list of size 10 (with next-prev. Buttons.) (There could be some performance issues to work-out if implemented for all of Drupal.org!)

Descriptions are provided from Drupal and some of the default modules and sub-modules are omitted for space. And so in no particular order:

Core Modules:


Aggregator: Aggregates syndicated content (RSS, RDF, and Atom feeds).
Aggregator comes in useful for precise situations. In general not used very much, and for reading syndicated content the Feeds module is more flexible. Still has it's place on some sites.

Block: Controls the visual building blocks a page is constructed with.
Comment: Headless Drupal may not use Block, but most other sites will likely use this key module. Configuring blocks to work well in different contexts, you may want to think about Venn Diagrams.

Blog: Enables multi-user blogs.
Good for multi-user cases, otherwise can just make a content type for a site-wide blog.

Book: Allows users to create and organize related content in an outline.
When Book is needed, it's really handy for creating a hierarchy of structured content.

Color: Allows administrators to change the color scheme of compatible themes.
Some themes allow this, but frequently for custom themes it's not necessarily used.

Comment: Allows users to comment on and discuss published content.
Protecting your comments from spam? There are some modules for that.

Contact: Enables the use of both personal and site-wide contact forms.
Simple contact forms, which can be useful, and again sites may want to protect and lock down to prevent abuse.

Content translation: Allows content to be translated into different languages.
Only used this module a little, not set it up. Content translation is a topic in itself.

Contextual links: Provides contextual links to perform actions related to elements on a page.
Nice to add these into custom modules where they make sense.

Dashboard: Provides a dashboard page in the administrative interface for organizing administrative tasks and tracking information within your site.
Can be useful to setup for site administrators to speed up workflow.

Database logging: Logs and records system events to the database.
It's pretty obvious that it's good to know what is happening with the site.

Field UI: User interface for the Field API.
Really only needed when setting up or modifying fields via the UI, similar to many of the other Uis.

Filter: Filters content in preparation for display.
Another configuration that really should be setup and locked down. Making everything nice for content editors will likely involve some contributed modules.

Forum: Provides discussion forums.
I've checked out this module, but have not implemented in a live site. It's easy enough to setup, but locking everything down is going to be paramount.

Image: Provides image manipulation tools.
When building sites, at some point configuring new image styles will probably happen.

Menu: Allows administrators to customize the site navigation menu.
The menu configuration is hardly one can ignore for most sites, but as always, there are so many ways to do anything in Drupal.

Node: Allows content to be submitted to the site and displayed on pages.
Don't think just 'node.' Think 'admin/structure/types' and all the amazing thing possible creating new types. Entities plus views really shows the power of Drupal.

Number: Defines numeric field types.
Not awe inspiring, but it is if a numerical field is the order of the day.

OpenID: Allows users to log into your site using OpenID.
This is neat for sites where this kind of login is needed. Not sure if it's going to be in Drupal 8.

Overlay: Displays the Drupal administration interface in an overlay.
I usually disable this one, but that is a preference.

Path: Allows users to rename URLs.
Great module for what it does, add on Pathauto and it's really useful.

PHP filter: Allows embedded PHP code/snippets to be evaluated.
Best to avoid. Write a custom module and make sure it is clean instead.

Poll: Allows your site to capture votes on different topics in the form of multiple choice questions.
Poll is nice for what it does, but more flexibility may require some contributed modules.

Search: Enables site-wide keyword searching.
Adjust settings as needed.

Shortcut: Allows users to manage customizable lists of shortcut links.
Can be useful to improve user experience, and allows different sets of shortcuts.

Statistics: Logs access statistics for your site.
It's not required, but it can give some usefult information about usage.

Syslog: Logs and records system events to syslog.
Good when logging to the operating system is desired or required.

Taxonomy: Enables the categorization of content.
Think 'tags.' Go to admin/structure/taxonomy. Drupal's taxonomy is really flexible, but even then contributed modules fill in the gaps.

Testing: Provides a framework for unit and functional testing.
If you just patched a contributed module, you may want to turn this on and test your changes if unit tests exist for the module change or even dependancies. While running the test, you could probably go and make a sandwich.

Toolbar: Provides a toolbar that shows the top-level administration menu items and links from other modules.
Toolbar is nice, but I prefer the admin_menu contributed module. There are some other choices for admin toolbars.

Tracker: Enables tracking of recent content for users.
Depends on the site, but this is nice when the site requires users be able to follow updates this way.

Trigger: Enables basic actions to be fired on certain system events, such as email when new content is created.
So useful to send an email if some action occurs. Many contributed modules plug into Trigger offering more options. For even more options, one really needs to use the incredible Rules contrib. Module.

Update manager: Checks for available updates, and can securely install or update modules and themes via a web interface.
Would not recommend updating modules via this module, but it can check when updates are needed. Of course, always good to read about the update and test it to see if it's going to work.

User: Manages the user registration and login system.
Pretty basic stuff at admin/config/people/accounts, but can get more involved via more contributed modules and adding many user roles.

Contributed Modules


Administration menu: Provides a dropdown menu to most administrative tasks and other common destinations (to users with the proper permissions).
Such a useful module and it's somewhat configurable via 'admin/config/administration/admin_menu'. When using this module, but remember clear your cache if there are issues with it.

Chaos tools: A library of helpful tools by Merlin of Chaos.
Required by Panels and Views, but it has some useful functions if you are building custom or contributed modules, the AJAX comes to mind.

Devel: Various blocks, pages, and functions for developers.
It's not required for you to install this if you are building a site, but it does so many things like

query log: what SQL is generating this page? See it here.
page timer: is what is says
memory usage: for the current page
redirection page: can use when working with drupal_goto()
Krumo backtrace: figure out where something is breaking, totally useful
Settings for making theme changes (the rebuild option)
and more


Devel generate: Generate dummy users, nodes, and taxonomy terms.
This is a nice submodule of Devel that is really handy for creating tons of content so you can see what your site will look like. Try to use it before you have real content on your site, although if there are backups it's not a requirement.

Image resize filter: Filter to automatically scale images to their height and width dimensions.
A really awesome module which can speed up pages and prevent huge images from eating up bandwidth. Great module.

IMCE: An image/file uploader and browser supporting personal directories and user quota.
Still a handy module depending on how authenticated users are going to work with images and files.

Production check: Check a site to see if it's properly setup for production use.
Handy module to check a bunch of things quickly for you. Probably best to disable this when not in use.

OAuth: Provides OAuth functionality.
If you are using the Twitter module, you will need to use this now. Setup is pretty straightforward. Can disable the UI for this when not in use.

OpenCalais: Performs Auto Tagging on Entities.
Not the best module when your content is to be protected, but for the right applications, this module can create tags based on the content which some content authors will appreciate. It required external registration at the OpenCalais site.

AddToAny: Share buttons by AddToAny, including the AddToAny universal sharing button, Facebook, Twitter, Google+, Pinterest, and over 100 more on theAddToAny platform.
Another social sharing module. Watch out for external JavaScript libraries that are loaded when using these.

Google Books: Input filter module returning data from books.google.com.
I wrote this module, and it's a text filter to allow pulling in bibliography materials from the Google Books project via their API. Registration is required for loading more items per day than the limit allows.

Mollom: Automatically moderates user-submitted content.
Such a cool service and module (requires registration at the Mollom site). Keep people from spamming your site, and protect your forms. Recommended.

On The Web: A block that provides linked icons to your other presences on the web.
A quick and simple module.

Pathauto: Provides a mechanism for modules to automatically generate aliases for the content they manage.
This module is so useful, perhaps it should be in core.

Redirect: Allows users to redirect from old URLs to new URLs.
Another useful module when moving URLs or upgrading.

Security Review: Site security and configuration review module.
Handy to run this at various times and when launching a new site. Good to disable when not in use.

Site map: Display a site map.
Simple module displays a simple site map of some things in Drupal, not all. May soon allow sorting and could benefit from more flexibility about what to list as it may not meet all specifications for what some sites consider a full site map.

Site Verification: Verifies ownership of a site for use with search engines.
Useful for some verification services, although for most services a file can be added instead of using the Site Verification module.

Token: Provides a user interface for the Token API and some missing core tokens.
A Drupal token is basically a text placeholder and is really useful. The basic token API is in Drupal 7.

Twitter: Adds integration with the Twitter microblogging service.
Great for adding a Twitter feed to a site, but it allows more operations. It required plugging in with the Oauth module now.

Panels: Core Panels display functions; provides no external UI, at least one other Panels module should be enabled.
Panels allows great flexibility in displaying content in a variety of ways. It's very useful, but is fairly heavy, and it isn't perfect. Even so, if a site needs a complex or controlled way of displaying a variety of, well almost anything, panels is up for the job.

Global Redirect: Searches for an alias of the current URL and 301 redirects if found. Stops duplicate content arising when path module is enabled.
So useful to keep redirects clean and helps redirects work better.

CAPTCHA: Base CAPTCHA module for adding challenges to arbitrary forms.
Decent CAPTCHA module even without the external reCAPTCHA, which requires this module to work.

Http:BL: An implementation of Project Honey Pot's http:BL.
If a site is hammered by spammers, this is a possibility, although it may block valid users by IP sometimes.

reCAPTCHA: Uses the reCAPTCHA web service to improve the CAPTCHA system.
Almost a standard for protecting forms, excellent and easy to use.

Spamicide: Provides yet another tool in the arsenal against spam.
Does some interesting things to create hidden forms tripping up bots. Another easy module to use.

Google Analytics: Allows your site to be tracked by Google Analytics by adding a Javascript tracking code to every page.
Does what it is supposed to do, and also allows some nice options for Google Analytics.

Tagadelic: Tagadelic makes weighted tag clouds from any-ol' weighted list.
A silly fun module from early Drupal days.

IMCE Wysiwyg API bridge: Makes IMCE available as plugin for client-side editors integrated via Wysiwyg API.
If you are using IMCE, this is a nice install.

Sweaver: Visual interface for tweaking or building Drupal themes.
Don't know how to write CSS or theme (I do, but this is still a neat module!) then try this fun module out to allow changing some things with many themes.

Wysiwyg: Allows to edit content with client-side editors.
Supports multiple editors, really useful.

Views: Create customized lists and queries from your database.
The Swiss army knife of Drupal. It does not do everything out of the box, but it does so much that one can only say Drupal Views is a beautiful thing. It's in Drupal 8 Core, and how cool is that?

Webform: Enables the creation of forms and questionnaires.
Brilliant module that allows creation of custom webforms. It has a ton of options. It would probably be used more than Core's contact except it is somewhat large, but if a custom form is needed this is a great solution prior to coding one yourself.

XML sitemap: Creates an XML sitemap conforming to the sitemaps.org protocol.
That is what it does, and it's another great module. You can set your sitemap XML link in Google Webmaster Tools and the same for Bing and make the search engines happy.

Link: Defines simple link field types.
It's just a field for links. There are many of these field modules for link, Date, phone or whatever, use as needed.

CSS Injector: Adds CSS to the page output based on configurable rules.
Not always the best way to do things, but if you want to avoid getting into the theme layer, this module allows CSS on all or specific pages to be added so it can save time for smaller site builds.

Module filter: Filter the modules list.
Not a necessary module but makes dealing with tons of contributed modules so much easier. Check it out.

Search 404: Automatically search for the keywords in URLs that result in 404 errors and show results instead of Page-Not-Found.
This is a neat module to prevent 404 errors, although one would wonder about the SEO ramifications.

Special menu items: Allow users to add placeholder and/or separator menu items.
Simple module but useful if one needs to clean up a menu display.

Display suite: Extend the display options for every entity type.
This is another module which allows some options for changing how entities are displayed without going into the theme layer code. It can save time with a few caveats.

Features: Provides feature management for Drupal.
This is an amazing module that allows many Drupal constructs to be pulled out and exported into code. So useful, but also so … well either you already know or you will see. :)

Strongarm: Provide exportables of Drupal variables.
Can be used with Features. It's neat. Be careful.

Content Taxonomy: Extends the Taxonomy Reference Fields
Another useful module to make taxonomy reference fields more flexible.

Custom Formatters: Allows users to easily define custom field formatters.
This is a clever module, which allows a custom field display formatter without having to write a custom module.

Entity Reference: Provides a field that can reference other entities.
Powerful module to allow entities to reference each other. So useful.

Field collection: Provides a field collection field, to which any number of fields can be attached.
Embed a collection of fields as an entity inside an entity, meta.

Fieldgroup: Groups fields together.
Does what it says.

References dialog: Enhances references fields by adding dialogs for adding and creating entities.
Cleans up the way reference dialog works.

Simplenews: Send newsletters to subscribed email addresses.
Not a ton of options but still nice for cases where it works.

Backup and Migrate: Backup or migrate the Drupal Database quickly and without unnecessary data.
Cool and simple module. You could also use Drush or MySQL but this has a nice UI.

Better Formats: Enhances the core input format system by managing input format defaults and settings.
Not needed in every case, but I feel this module can deal with some issues with the format system, especially extending flexibility of how defaults are set.

Block Title Link: Allows assigning links to Block Titles
Simple, but great when you need a block title linking to something.

Custom tokens: Allow users to define custom tokens to use throughout the site.
Handy module when you want to create a bunch of token replacements.

Delete Orphaned Terms: Delete orphaned terms from taxonomy, i.e. those no longer referenced by any
Backup before you do this … on dev first! Careful.

Libraries: Allows version-dependent and shared usage of external libraries.
Required by modules that use external libraries.

Masquerade: This module allows permitted users to masquerade as other users.
Absurdly useful for development, but not so safe for production, at least disable it.

Token Filter: Allows token values to be used as filters
Really useful to substitute text.

Metatag: Adds support and an API to implement meta tags.
Perhaps “the” module for metatags, as you may want to avoid the other “quick” module.

Fivestar: Enables fivestar ratings on content, users, etc.
Pretty nice for ratings. Caching can prevent immediate feedback without some modification, but useful none the less.

Colorbox Node: Displays a node inside a colorbox without the header and the footer.
Many “box” modules out there, ColorBox, Lightbox2, etc. pick the one that works for you.

Feeds: Aggregates RSS/Atom/RDF feeds, imports CSV files and more.
It allows data to flow into a site in a variety of ways. This is such a cool and useful module, and for simple content you can even use it to migrate data into a Drupal site.

Ubercart Feeds: Integrates Ubercart properties with Feeds.
Working with Ubercart and Feeds? Then you will likely need this.

Pathologic: Helps avoid broken links and incorrect paths in content.
Handy module if links in content are not super consistent or if you need to change them slightly.

Mime Mail: Send MIME-encoded emails with embedded images and attachments.
Fancy email!

Match Redirect: Matching source patterns are redirected to a single destination.
Can be used for moved URLs or sites migrated to Drupal to keep old URLs working.

Nivo Slider: Provides a user interface for building a rotating banner powered by the Nivo Slider jQuery plugin.
Nifty simple slider program instead of the cool and flexible Views Slideshow (which may require more setup).

Views Slideshow: Can be used to create a slideshow of any content (not just images) that can appear in a View.
Very flexible module to create all kinds of slidehows. Awesome!

Path Redirect Import: Provides the ability to import redirects for the Redirect module.
Great for migration if pulling in a bunch of redirects from a CSV file is the order of the day.

Simple Google Maps: Provides a Google Maps link/map formatter for simple Text fields
Cool little module to add maps to content based on addresses in a text field. Great!

Transliteration: Converts non-latin text to US-ASCII and sanitizes file names.
Wise module to install to keep file names working.

Rules: React on events and conditionally evaluate actions.
Rules = web-application without coding. Do all kinds of useful things when some defined thing happens. Essential.

Ubercart: Straightforward to setup out of the box shopping cart set of modules for Drupal.
It works well, even if it does not handle every special case. There are many other contrib modules to deal with special cases.

jQuery Update: Upgrades the version of jQuery in Drupal core to a newer version of jQuery.
Augments Views by allowing bulk operations to be executed on the displayed rows
A cool views module is so useful, wishing it were just in views.

Menu block: Provides configurable blocks of menu trees starting with any level of any menu.
Very useful module to do something core does not have yet.

Context: manage contextual conditions and reactions for different portions of your site.
Interesting and more flexible way to get blocks and content to display.

Filefield Role Limit: Limit the max upload file size for each different user role.
Adding something back that may have been more flexible in Drupal 5.

Email Field: Field type for email addresses.
It's a must, sanitize those email fields!

ImageField: provides an image upload field
Need an image in your entity type? Here it is.

Calendar: Module will display any Views date field in calendar formats.
Have not used in a while, but it works.

Nice Menus: Enables drop-down/right/left expandable menus.
Clever module to literally give menus fancy drop-downs.

Address Field: defines a field type to store international postal addresses.
Nice forms on this one for addresses.

Quick Tabs: Allows you to create blocks of tabbed content.
Not a huge fan, but I've used it.

LoginToboggan: Offers several modifications of the Drupal login system in an external module.
Yes like login with an email address and many more. Wish some of the options were in core.

Content Access: manage permissions for content types by role and author.
Time to setup is requred for all content types and roles, but offers more absurd flexibility.

Printer, email and PDF versions: Generate printer-friendly versions of any node.
Useful and easy to setup module. Output looks nice w/ some options for display.

Diff: allows pretty viewing of all added/changed/deleted words between revisions
Content authors may like this for dealing with revisions.

allows real-world geographic locations to be associated with Drupal nodes.
Sometimes associating nodes to locations is required. N ot an everyday module but for Drupal web apps involvingLocation:  places it's essential.

Field Permissions: Allows site administrators to set field-level permissions to edit, view and create fields on any entity.
For tons of control on your entity permissions, this is the module.

Views Data Export: Export large amounts of data from views.
Data can be exported in CSV, XML, TXT, and more.

Flag: A flexible flagging system that is completely customizable by the administrator.
“Do you have a flag?” Historically some issues with Display Suite, but may have been fixed. Important to allow users to create content they mark.

Migrate: Provides a flexible framework for migrating content into Drupal from other sources.
Even Drupal! There is some complexity involved, but fare less than writing all the custom migrate scripts yourself.

Profile 2: Allows adding fields to user account pages.
Great for pumping up user entities to be more like a real profile even though user entities are configurable.

Draggable Views: Makes rows of a view "draggable" which means that they can be rearranged by Drag'n'Drop.
Very slick, impress your users with nice interfaces in views. Good for ordering.

Service Links: Facilitates the adding of social networks.
Not a favorite, the interface has some peculiarities. Still it's an option.

Services: Standardized solution of integrating external applications with Drupal.
Create an interface to your data in Drupal, “Headless Drupal.” Nice module which is surprisingly easy to setup for what it does. Does REST, XMLRPC, JSON, JSON-RPC, SOAP, AMF and more.

Link checker: Extracts links from your content when saved and periodically tries to detect broken hypertext links by checking the remote sites and evaluating the HTTP response codes.
Can create false positives, but can let you know if you have some wonky links that need fixed. Run on development 1st (of course) and probably good to use the notifications but not the setting that alters text on the fly.

There are more, cannot remember them all. I can list more in the future! Looking for something not listed here, well pretty sure "There's a module for that!"