969 Modules match your search

Extend and customize Drupal functionality with contributed modules. If a module doesn't quite do what you want it to do, if you find a bug or have a suggestion, then join forces and help the module maintainer. Or, share your own by starting a new module.


Date Popup module

This package contains both a flexible date/time field type Date field and a Date API that other modules can use.

The D5 and D6 versions of the Date field require the Content Construction Kit (CCK) module. The D7 version works with the core Field functionality.
D8 includes Date in core.

The Drupal Handbook pages are at Date/Calendar Documentation.

Be sure to read Debugging Information before reporting a problem. Going through those steps may resolve your problems and will help provide enough information to tell if this is a bug.



You need Views if

  • You like the default front page view, but you find you want to sort it differently.
  • You like the default taxonomy/term view, but you find you want to sort it differently; for example, alphabetically.
  • You use /tracker, but you want to restrict it to posts of a certain type.
  • You like the idea of the 'article' module, but it doesn't display articles the way you like.
  • You want a way to display a block with the 5 most recent posts of some particular type.
  • You want to provide 'unread forum posts'.


XML sitemap

The XML sitemap module creates a sitemap that conforms to the sitemaps.org specification. This helps search engines to more intelligently crawl a website and keep their results up to date. The sitemap created by the module can be automatically submitted to Ask, Google, Bing (formerly Windows Live Search), and Yahoo! search engines. The module also comes with several submodules that can add sitemap links for content, menu items, taxonomy terms, and user profiles.

Please read the included README.txt, the handbook documentation, and the current list of known issues for more information before using the module.



Webform Screenshot

Webform is the module for making forms and surveys in Drupal. After a submission, users may be sent an e-mail "receipt" as well as sending a notification to administrators. Results can be exported into Excel or other spreadsheet applications. Webform also provides some basic statistical review and has an extensive API for expanding its features.



IMCE Screenshot

IMCE is an image/file uploader and browser that supports personal directories and quota.




Requires Views and the Date API (packaged with the Date module).

This module will display any Views date field in calendar formats, including CCK date fields, node created or updated dates, etc. Switch between year, month, and day views. Back and next navigation is provided for all views. Lots of the Calendar functionality comes from the Date module, so any time you update the Calendar module you should be sure you also update to the latest version of the Date module at the same time.

See also Date iCal, a project that contains code and features needed to either import or export dates using iCal feeds. The functionality that used to be in the Calendar iCal module has been moved into that module.

Be sure to read Debugging Information before reporting a problem. Going through those steps may resolve your problems and will help provide enough information to tell if this is a bug.


Better Exposed Filters

Better Exposed Filters

The Better Exposed Filters module replaces the Views' default single- or multi-select boxes with radio buttons or checkboxes, respectively. Description fields and Select All/None links can be added to exposed filters to make for a better user experience.

Views Filters is a powerful tool to refine the results returned by a given view. When you expose a filter, you allow the user to interact with the view making it easy to build a customized, advanced search. For example, exposing the node type field as a filter lets your site visitor limit their search queries to just blog entries. Better Exposed Filters gives you greater control over the rendering of exposed filters.

Why use this module? Because it provides a better user experience than the default option. Try telling a client that they should click on an option, then scroll to the next option and ctrl+click on it. Don't just click 'cause you'll lose your first selection. Oh, and ctrl+click again to unselect an option... Yeah, not user friendly.

People understand checkboxes and radio buttons.

What else can I do with BEF?

The BEF handbook page provides some basic recipes making exposed filters a much better user experience.

  • Add help text for each exposed filter


Facet API

Facet displays


The Facet API module allows site builders to easily create and manage faceted search interfaces. In addition to the UI components that come out of the box, themers and module developers can build their own widgets that can optionally be contributed back to Drupal.org. Facet API works with the core Search, Search API, and Apache Solr Search Integration modules (including Acquia Search) meaning that code and configuration can be reused as-is with the most popular search solutions available to Drupal. Refer to the documentation for more details.

How to Contribute



This module allows nodes to be published and unpublished on specified dates.



This module adds a weight option to enabled node types. Nodes with lower weight will float to the top of lists, while heavier items will sink.

You might be interested in reading Comparison of Node Ordering Modules.


SEO Checklist

SEO Checklist tasks

Drupal SEO Checklist - What is it?

The Drupal SEO Checklist uses Drupal SEO best practices to check your website for proper search engine optimization. It eliminates guesswork by creating a functional to-do list of modules and tasks that remain. Updated regularly with the latest techniques, it makes on-page Drupal search engine optimization hassle-free.

It breaks the tasks down into functional needs like Title Tags, Paths, Content and many more. Next to each task is a link to download the module from D.o and a link to the proper admin screen of your website so that you can configure the settings perfectly.

Drupal SEO Checklist also keeps track of what has already been done. It places a date and time stamp next to each item (when you click save). That provides a simple report that you can share with others showing what's been done.

You need Drupal SEO Checklist if

  • You know SEO basics pretty well
  • You work on a lot of different websites and need help keeping track of what you've done on each
  • You know how to properly configure modules for SEO needs
  • You are a list-maker! Or, you simply enjoy checking things off when they're done.

Drupal SEO Checklist does not:

  • Provide good SEO strategy


jQuery plugins

The jquery_plugin module provides miscellaneous jQuery plugins, which can be loaded from any module or theme by calling jquery_plugin_add($plugin) in Drupal 6 or drupal_add_library('jquery_plugin', $plugin) in Drupal 7. The Drupal 6 version supports jQ, a jQuery plugin registry.



Test message


Lets you theme your messages the same way you theme the rest of your website.



ThemeKey allows you to define simple or sophisticated theme-switching rules which allow automatic selection of a theme depending on current path, taxonomy terms, language, node-type, and many, many other properties. It can also be easily extended to support additional properties exposed by other modules. In combination with Drupal's theme inheritance you can easily achieve features like:

  • individually-styled channels
  • a front-page / "splash" screen
  • a date/time-selected Christmas theme
  • mobile themes for different auto-detected mobile devices
  • special themes for "limited" or "old" browsers
  • content, user, or role -specific themes
  • indicating your environment (production, staging, testing, sandbox, … )
  • testing your redesign safely on a live server
  • ...

And unlike other theme switching modules, ThemeKey should play well with internal and external page caches, like Boost or Varnish, even for anonymous users.

Feedback is welcome!

Damn, ThemeKey ... ROCKS! Really appreciate the kick ass work you did on this :) mortendk


Migrate Extras

Migrate Extras extends Migrate to provide support for several contributed modules.

The best place to implement migration support for a contributed module is in that module, not in the Migrate or Migrate Extras modules. That way, the migration support is always self-consistent with the current module implementation - it's not practical for the migrate modules to keep up with changes to all other contrib modules. We are no longer adding support for other modules to Migrate Extras.


Migrate Extras 2.5 is now available. This is planned to be the final Migrate Extras release - the only work to be done with Migrate Extras going forward will be to port the contrib module support here directly to the respective supported modules.




Chosen uses the Chosen jQuery plugin to make your <select> elements more user-friendly.


  1. Download the Chosen jQuery plugin and extract the file under sites/all/libraries.
  2. Download and enable the module.
  3. Configure at Administer > Configuration > User interface > Chosen (requires administer site configuration permission)

How to use Chosen as a widget in Fields UI:

Chosen can be applied to select list widgets. Go to the field settings and check "Apply Chosen to this field".

Installation via drush (<= 7.x-2.0-alpha3)

A Drush command is provided for easy installation of the Chosen plugin.

drush chosenplugin

The command will download the plugin and unpack it in "sites/all/libraries".
It is possible to add another path as an option to the command, but not
recommended unless you know what you are doing.

Dependencies (<= 7.x-2.0-alpha3)


EU Cookie Compliance

#D8CX: I pledge that EU Cookie Compliance will have a full Drupal 8 release on the day that Drupal 8 is released.

Notice: If you are using a responsive theme please use the 7.x-1.12 version or later of the module.


This module intends to deal with the EU Directive on Privacy and Electronic Communications that comes into effect in the UK on 26th May 2012. From this date on, you run the risk of enforcement action if you are not compliant or visibly working towards compliance. More information can be found here

The above information applies to the UK however the EU law will be enforced in all EU countries and hence the module can be used everywhere in the EU.

By enabling and configuring the module you will demonstrate to the regulator that you, as the owner of the website:

  • are doing as much as possible to reduce the amount of time before your visitors receive information about cookies (information appears as soon as a visitor enters the site).
  • are providing your visitors with options. (find out more about cookies, do not browse if you disagree).
  • ensure that the information on cookies is readily available to your visitor(visible pop-up at the bottom of the screen).


File (Field) Paths

The File (Field) Paths module extends the default functionality of Drupal's core File module, Image module and many other File upload modules, by adding the ability to use entity based tokens in destination paths and file names.

In simple terms, File (Field) Paths allows you to automatically sort and rename your uploaded files using token based replacement patterns to maintain a nice clean filesystem.



  • Configurable file paths now use entity tokens in addition to user tokens.
  • Configurable file names.
  • Support for file based fields, including but not limited to:
    • Drupal core File module
    • Drupal core Image module
    • Video module.
  • File path and filename cleanup options:
    • Remove slashes from tokens.
    • Filter out words and punctuation by taking advantage of the Pathauto module.
    • Convert unicode characters into US-ASCII with the Transliteration module.
  • Automatically updates unprocessed file paths in any Text fields on the entity.
  • Retroactive updates - rename and/or move previously uploaded files.
  • Active updating - actively rename and/or move previously uploaded files.
  • Automatically create an redirect when moving uploaded files using the Redirect module.


Commerce PayPal

This project integrates PayPal into the Drupal Commerce payment and checkout systems. It currently supports off-site payment via PayPal Payments Standard (WPS) and PayPal Express Checkout (EC), off-site or on-site payment via PayPal Payments Advanced (PPA) and Payflow Link (PFL), and on-site credit card payment via PayPal Payments Pro (WPP). The PayPal WPS / EC integration supports PayPal's Instant Payment Notifications (IPNs) to react to authorizations, captures, voids, and refunds with full logging for testing and debugging.

We recently added PayPal Bill Me Later support on top of the Express Checkout integration to enable merchants to extend financing opportunities to their customers.

The full integration for PayPal Express Checkout, PayPal Payments Advanced, and Payflow Link was added in the 2.x version of the module and has been verified by PayPal. There is no upgrade path for the 1.x branch, so it has been discontinued. Additionally, this module deprecates the third party project(s) attempting to extend this module for EC support.

Sponsored by Commerce Guys.




This module provides many country related tasks.

  1. A fieldable countries database with an administrative interface.
  2. A way to alter Drupals core country list.
  3. A country FAPI element.
  4. A countries field.
  5. Integration with Country Icons.
  6. Token support.
  7. Up to date countries database including Bonaire, Sint Eustatius and Saba BES, Curaçao CUW, South Sudan SSD, Sint Maarten (Dutch part) SXM which are not covered by Drupal core.


Node Convert

Node Convert adds a menu tab "Convert" on the node view page, i.e. node/1/convert, which gives the ability to convert the node from its current node type to another node type. The module provides the means to transfer all the field values of the current node type into fields on the destination node type, or discard them.

The module integrates with Actions, Rules, Views Bulk Operations and Admin Views nicely. It has support for exporting templates into Features using CTools Exportables.
It also provides a hook that enables developers to execute additional code on conversion.


Field validation

This module adds an extra tab to each field instance, allowing you to specify validation rules for your field instances.

The following validators are currently included (7.x-2.x):

  • Regular expression
  • Numeric values (optionally specify min and / or max value)
  • length (optionally specify min and / or max length)
  • number of words (optionally specify min and / or max words )
  • Plain text (disallow tags)
  • Must be empty (Anti-Spam: Hide with CSS)
  • Words blacklist
  • number of selections (optionally specify min and / or max selections )
  • Unique
  • Match against a field
  • Match against a property
  • Specific value(s)
  • Require at least one of several fields
  • Equal values on multiple fields
  • Unique values on multiple fields
  • PHP Code (powerfull but dangerous)
  • URL (support internal path and external url validation)
  • Email
  • Pattern (Regular expression lite)
  • Date range2

Following validators are included in sub module field validation extras:

  • Color(HTML5)
  • Date(ISO)
  • EAN number
  • Field collection unique
  • Integer values
  • IP Address
  • Numeric(HTML5, with the option to specify min/max/step)


Commerce Backoffice

Provides the backoffice functionality present in Commerce Kickstart v2.

Contains three submodules: commerce_backoffice_product, commerce_backoffice_order, commerce_backoffice_content.

Commerce Backoffice Product

Provides a better experience for stores using nodes as product displays for grouping product variations (commerce_product entities).

  • The node/add screen is now split into two tabs, "Create content" (ordinary node types), and "Create product" (product display node types).
  • The products view is now a view of nodes, showing product displays. Contains special exposed filters for filtering by product display type, and product display categories.
  • Uses the megarow pattern to provide a "Quick Edit" link in the view, that shows all product variations for that product display, right underneath the triggering row. The status and price can be modified directly.
  • Modifies the "Content types" screen by adding additional help text for understanding product displays, and adds a column to the table that indicates whether the node type is a product display node type*.


Administration theme

Administration theme settings page

Drupal allows you to define a different theme for administration pages (Administer -> Site configuration -> Administration theme). By default this only applies to pages with a path starting with 'admin' and content editing pages.

The Administration theme module allows you to use this theme on more pages like :
- batch processing pages
- devel node load and render pages
- coder code review pages
- pages you define yourself in the provided textarea

The Drupal 5 version adds the option "Use administration theme for content editing" available in Drupal 6 core.

Some of these options will only be available to you if they apply to your installation, i.e. you have the module installed which generates these pages.

Use default theme (not administration theme) for anonymous users on admin/*

This is possible using this module. See issue http://drupal.org/node/372156 for more details.

Module maintainers

You can add extra pages by implementing hook_admin_theme_options in a module.
For Drupal 7 the hooks are hook_admin_theme_info and hook_admin_theme_check

How can you get involved?



Drupal 8

For Drupal 8 Entityform is now EForm


The Entityform module enables you to create front-end forms (fieldable entities), which contain fields that you define! These forms use the standard Drupal fields. This means that out of the box, you can use any standard Drupal node field! As of the time this article was written, there were over three hundred "field" modules. And since Entityforms are "Drupal entities", you will automatically be able to use future "field" modules!

The forms can be used to create custom surveys, petition, and personalized contact forms, and other customized form. (For those of you who have used Webforms, this module brings Webform's functionality into the "standard" Drupal field / entity world.)

As with everything in Drupal, there are Pros and Cons to using Entityform. All though Entityform is a powerful tool, it is not always the best solution. The article When to Use Entityform discusses the advantages and disadvantages that Entityform may have over other methods of creating user "submittable" forms. Do not use Entityform for forms that will contain 150+ form elements

Reccomended Versions

The Drupal 8 verision of Entityform has been renamed to EForm(to avoid name confusion).

For new users the 7. x-2. x alpha versions are recommended. These versions are also recommended for current 7.x-1.x users who are NOT using built in Rules integration. The only remaining issues with them is upgrading 7.x-1.x Rules integrations to use Entity Rules.

The Problem

While Webform is a great module with a huge following, it does not integrate with standard Drupal field or entity aware modules. And while Webform can be integrated into Rules and Views via additional modules, it does add complexity and overhead.

The Solution

To solve these issues, the Entityform module was created. It is a survey creation tool that allows integrates with standard Drupal field and entity aware modules out of the box.


  • Ability to attach any Drupal Field to the Forms
  • Ability to use most field based and entity aware modules.
  • You can download submitted data to XML and / or CSV data files using View Data Export.
  • Rules based form submission notifications. Allows for complex notifications logic.
  • Rules based form access control. Allows for complex access logic.
  • Use Views to create to create an administrative listing of each Entityform type Submissions for fine grain control.