17,778 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.


A standardized solution for building API's so that external clients can communicate with Drupal. Out of the box it aims to support anything Drupal Core supports and provides a code level API for other modules to expose their features and functionality. It provide Drupal hooks that allow others to create their own authentication mechanisms, request formats, and response formats.


HTML5 Tools


HTML5 Tools is a module that allows Drupal sites to be built using HTML5 ... smartly.

One of our goals is to provide as much support for HTML5 markup in a set of Tools provided by a module so that you can use this module with any HTML5 theme you'd like.

Drupal 7 Features

The Drupal 7 branch of html5 tools is actively being developed. We're always looking for new features so feel free to create an issue.

Here are some of the features you can find in the Drupal 7 version:


Menu per Role

Sample of hide/show flags in the edit node and edit menu forms.

This module allows you to restrict access to menu items1 based on user roles. It depends on the Drupal core menu.module—just activate both modules and edit a menu item as usual. There will be a new fieldset that allows you to restrict access by role. The fieldset also appears in the node edit form.

1We wrote "menu items", not "nodes". This module does not prevent users from accessing the destination nodes. It only changes the visibility of the menu items.

Warning: Update in 6.x-1.x-dev (and next in 1.9)

The newest 6.x-1.x-dev reverts a change made in version 1.8 so administrators do not see hidden menus by default. However, the main administrator user (UID 1) still sees hidden menus unless you go to the new administrative screen and change the flags there.

Note also that the module was moved from the "Others" package to the "Menu" package. It seems to make sense to have it there since most menu related modules are found there.


Search API sorts

Provides custom sorts and a global sort block for Seach API.


This module is compatible with Search API, Search API ranges (slider), Search API Solr and Search API ajax. Is not tested with Apache Solr Integration module.



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.


Vertical Tabs

Picture 2.png

#D7CX This module got into core and will only be available as a back-port version for Drupal 6.

Provides vertical tabs like http://drupal.geek.nz/static/node-form/default/summaries2.html on the node add form.

This module provides the following features:

  • Vertical tabifying all node forms.
  • Vertical tabifying the content type forms.
  • Vertical tabifying the block forms.
  • Specialized CSS for Garland, as well as generic CSS for other themes
  • Color module support when both Garland and color.module are used
  • Vertical tabbed forms and fieldsets are over-ridable by using your site's settings.php and $conf. For more information see #644790-7: Simplify the module and integrate with form_controller to allow customizations.
  • When used in combination with Form module allows you to configure vertical tabs on all possible forms.


Page manager existing pages

Page manager existing pages allows you to override/configure Drupal menu paths so you can create variants with Page manager, which is bundled in the CTools project.

Technically, this project defines one abstract task and one content type plugin, so menu items can be overridden and the original page callback can be called through the content type plugin. This project comes with one default existing page, which is 'node', the default Drupal frontpage.

Tested overridden paths

  • Drupal frontpage at 'node'.
  • Media file paths as 'media/%'.
  • Apache Solr search pages at any path you defined.
  • FAQ at 'faq-page', 'faq-page/%', 'faq-page/list' and 'faq-page/%/list'.

In theory, any menu callback can now be overridden. Default contexts can be added for entity paths, but will need more testing.


Install the module as usual, more info can be found on http://drupal.org/documentation/install/modules-themes/modules-7
You should also install Panels, which is not a dependency for this module but is the recommended module to start overriding page layouts. Panels can be found at http://drupal.org/project/panels


On admin > structure > pages click "add existing page".


Elysia Cron

Elysia cron

!NEW Release 2.0 is finally out, with D7 support, code & performance improvements and a lot of new features!

Elysia Cron extends Drupal standard cron, allowing a fine grain control over each task and several ways to add custom cron jobs to your site.

  • [NEW IN 2.0] Set the timings and frequencies of each cron task (you can run some jobs every day at a specified hour, other only monthly and so on...). For each task you can simply choose between some frequently used options ("once a day", "once a month" ...), or use a powerful "linux crontab"-like syntax to set the accurate timings. You can even define your frequently used options to speed up site configuration.
  • Parallel execution of cron task: you can group jobs in channels and execute then simultaneously: so a task that takes a lot of time to execute won't block other tasks that need to be executed every 5 minutes...
  • You can disable all tasks, an entire channel or a single task.
  • Change the priority/order of task execution.
  • Manual force the execution of a cron tasks.
  • Detailed overview of cron status with time statistics for single tasks and channels.
  • [NEW IN 2.0] powerful API for module developers: you can define extra cron tasks for your modules, each one with own default timings (site administrators can override them by configuration, other modules via hook_alter). Elysia Cron 2.0 gives a brand new API support (compatible with 1.0 version) with a lot of features.
  • Administrators can define custom jobs (call to functions with parameters), via the "script" option.
  • Several optimization for frequent cron calls and error handling.
  • Protection from external cron calling by cron_key or allowed host list.

Elysia has no dependencies with contributed modules, and doesn't need to patch the core: it can be used in minimal Drupal installation with only core modules.
It also can be used in a Drupal install profile.

3rd party integration:

  • [NEW IN 2.0] Ping feature, for external tracking services like host-tracker to tell whether cron is functioning properly on your site.
  • [NEW IN 2.0] Drush support: you can call "drush elysia-cron" to manually run extended cron.
  • [NEW IN 2.0] CTools support for exports/backup of task settings.
  • [NEW IN 2.0] Features support.


Webform Rules

This module adds rules integration on webforms.


Domain Access

Screen shot 2011-09-16 at 11.50.21 AM_0.png

Drupal 8 status

See https://github.com/agentrickard/domain for the most current work.


The Domain Access project is a suite of modules that provide tools for running a group of affiliated sites from one Drupal installation and a single shared database. The module allows you to share users, content, and configurations across a group of sites such as:

  • example.com
  • one.example.com
  • two.example.com
  • my.example.com
  • thisexample.com <-- can use any domain string
  • example.com:3000 <-- treats non-standard ports as unique

By default, these sites share all tables in your Drupal installation. The Domain Prefix module (for Drupal 6) allows for selective, dynamic table prefixing for advanced users.


Module installation requires edits to your site's settings.php file. See the online installation guide for details.

Technical background

The module uses Drupal's Node Access system to determine what content is available on each site in the network. Unlike other multi-domain modules for Drupal, the Domain Access module determines user access based on the active domain that the user is viewing, rather than which group or site the user belongs to. For more information about Node Access in Drupal, see http://api.drupal.org/api/group/node_access/7

This module uses some advanced Drupal concepts and requires that you understand and control your site's DNS configuration. See this case-study or this more recent Row Eleven Wine Co. post for more details about using Domain Access.

You can also watch video of the DrupalCON Paris session "Managing Multiple Sites with Domain Access" (from 2009).

If you are looking for a module to provide subdomains to users and groups and do not need to affiliate content, take a look at Subdomain.


Form Block


Enables the presentation of user registration, site wide contact, or node creation forms in blocks. This is particularly useful for including forms on panels.

How to use Form Block

To enable a node add form for a specific content type:


Views Datasource

Views Datasource is a set of plugins for Drupal Views for rendering content in a number of shareable, reusable formats based on XML, JSON and XHTML. These formats allow content in a Drupal site to be easily used as data sources for Semantic Web clients and web mash-ups. Views Datasource plugins output content from node lists created in the Drupal Views interface in a variety of formats - XML data documents using schemas like OPML and Atom, RDF data documents using a vocabulary like FOAF, JSON data documents in a format like Exhibit JSON, and XHTML data documents using a microformat like hCard.


404 Navigation

On 404 Not Found error pages, Drupal will skip rendering of all the navigation links of your website for performance reasons*. Some of these include:

  1. The "Primary links" block and any other menu links block.
  2. The Primary links and Secondary links of your theme.

* Unless you have configured a "Default 404 (not found) page" on admin/config/system/site-information.

But many websites find navigation invaluable. Especially on 404 pages, when they want to show lost users how to get to real pages.

So this module simply revives those features on 404 pages. Simply install and enable the module. No configuration needed.


Video Filter

This is a highly flexible and easily extendable filter module to embed any type of video in your site using a simple token. Other modules can add video sites/formats (called codecs) using an easy plugin architecture.

With WYSIWYG installed, you can use the Video Filter button to easily add videos in a rich text editor. TinyMCE and CKeditor are supported (both standalone and with WYSIWYG).


Commerce Checkout Progress



Adds a block visible on checkout pages that shows what step of the checkout process the user is currently on. The status is an unordered list with each checkout page title being an item. The active page is designated in the list with an "active" class.




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

"The cck model for voting with Drupal" (source)

This module provides flexible voting widgets for nodes and comments.

Administrators can add multiple widgets. By default, there are 8 widget types to choose from:

  • Thumbs up
  • Thumbs up / down
  • Number up / down
  • Fivestar
  • Emotion (this makes me mad, angry...)
  • Yes / no
  • Slider
  • Custom

By using "custom" you can customize the rating buttons and Voting API mode. Widget types can be extended by other modules. Other features include:

  • Views integration
  • Nodes get an extra tab with voting results per widget, which shows:
    • Total vote count
    • Average rating
    • Total points (for thumbs up / down)
    • Vote count per button
    • Chart of vote count per button, per day
  • Multiple ratings on the same node (i.e. for "comfort", "location", "services" etc.)
  • Voting can be closed at a configurable period after node creation
  • Start- and enddates can be configured per node, per widget


Insert View

Insert View is a filter that allows users to embed content lists generated by the Views module into node bodies and blocks using relatively simple tag syntax.


Field formatter settings

The Field API in Drupal core lacks the ability for other modules to easily alter field formatter settings forms and the formatter summaries. This module is a small API provider for other modules since it's too late to get the hooks into Drupal 7 core.


Commerce Search API

Provides Commerce-specific Search API integration.

Included in the box:

  • Automatically created Search API db server, if none is found.
  • Auto-generated search index that includes all product display node types* and related product data.
  • Auto-generated facets for all node type categories and product attributes.
  • Optional integration with Search API Ranges (allowing for a price slider, for example).
  • Search API Filter class for product display node types* (allowing for an index composed only of product displays)
  • Facet API Filter class for removing facet items that do not change search results.
  • Facet API Filter class for hiding certain facets on the initial search (so that product attribute facets are only shown after the initial search, for example).

* - Every node type with a product reference field is considered a product display node type.

Note: Commerce 1.4 is required, since it added the amount_decimal property, allowing prices to be indexed properly.



Introduced in Drupal 6, the Schema API allows modules to declare their database tables in a structured array (similar to the Form API) and provides API functions for creating, dropping, and changing tables, columns, keys, and indexes.

The Schema module provides additional Schema-related functionality not provided by the core Schema API that is useful for module developers. Currently, this includes:


HTTP Parallel Request & Threading Library

Blocking vs Non Blocking

This is a library module. It provides no out of the box functionality other then providing an API that other modules/code can use. Other projects might require/recommend this module. Install HTTPRL only if other modules recommend or require it.

What does httprl do?

Using stream_select() it will send http requests out in parallel. These requests can be made in a blocking or non-blocking way. Blocking will wait for the http response; Non-Blocking will close the connection not waiting for the response back. The API for httprl is similar to the Drupal 7 version of drupal_http_request().

As a bonus, a simple threading library is built on top of the parallel http requests functionality. This allows you to split a job and have multiple http "workers" running this split job in parallel. Anything that takes a long time to do can greatly benefit from using threads.




Allows to use ImageMagick as image toolkit for Image API in Drupal 7 and 8 core. This integration is based on invoking the convert binary through shell access to process images. The Imagick module is an alternative toolkit module that uses the Imagick PHP extension instead.


Varnish HTTP Accelerator Integration

This module provides integration between your Drupal site and the Varnish HTTP Accelerator, an advanced and very fast reverse-proxy system. Basically, Varnish handles serving static files and anonymous page-views for your site much faster and at higher volumes than Apache, in the neighborhood of 3000 requests per second.

This module provides admin-socket integration which allows Drupal to dynamically invalidate cache entries, and also lets you query the Varnish admin interface for status, etc.


Memcache API and Integration

Memcached logo


This module provides integration between Drupal and Memcached with the following features:

  • An API for using Memcached and the PECL Memcache or Memcached libraries with Drupal.
  • Memcache backends for the following systems (all drop-in):
    • Caching (memcache.inc)
    • Locking (memcache-lock.inc)
    • Sessions (memcache-session.inc) (D6 only)
  • A module that provides a comprehensive administrative overview of Drupal's interaction with Memcached and stats.
  • A set of tests that can be run to test your memcache setup.


Empty Front Page

Drupal 6 and 7

By default, Drupal fills the front page with the latest content from your site.

This ultra lightweight module modifies this behavior to show no default content on the frontpage. Only the blocks will be displayed.

If you want more features and configurability, consider using one of these modules instead: