32,553 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.

Menu Trail By Path

Menu Trail By Path sets the active-trail on menu items according to the current url.

For example if you are at yoursite.com/blog/category1/article1
Menu Items with these paths will get the active-trail class on them and expand accordingly.


This is particularly useful if you want a lot of nodes to appear as children of certain nodes / taxonomy term / views / referenced nodes / etc, but do not want to add them all to the menu. eg. hundreds of blog articles.

Menu Trail By Path is best used in conjunction with Pathauto.

This module is similar to Menutrails (D6) and Menu Position (D7), except no configuration is needed. It uses the path URL to determine the active-trail instead of setting rules for each node type. Theoretically, it also works for non-node pages such as taxonomy term and views. Just enable the module to see the results.

7.x-2.x branch

7.x-2.x branch is completely rewritten. It should be compatible with any menu, including menu_blocks.

Can also handles breadcrumb by path.

6.x-1.x branch

NOTE: The 6.x-1.x branch is no longer supported and will not receive further development.


Webform Conditional (Same Page Conditionals)


This modules enhances the existing Conditional Rules of the Webform Module. It adds the ability to make components dependent on select components(i.e. listboxes, radio buttons, and checkboxes) that appear on the same page.


As of Webform version 7.x-4.0-alpha2 this module has been merged into Webform and is no longer necessary. The 7.x-2.x version of this module handles this upgrade. See: #1616376: Create Migration to Webform 4.x

Webform already has support for conditional fields on multi-page forms. For example Field C on Page 2 can be dependent on Field A on Page 1. This module adds the ability to have conditional fields on the same page. This module adds the ability to have Field B on page 1 be dependent on Field A also on Page 1.

This module requires Webform 6.x-3.x.

Features overview:

  • Showing and hiding components based on "Select options" components that appear above a component on the same page.
  • Fieldsets can be hidden. All contained components will be hidden.
  • Mandatory Components will not be mandatory unless shown on the form.

View a demonstration form

Screencast Demo


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


Block Title Link

D7-dev screenshot

Have you ever needed to make a block title a link? This module makes it easy. Block Title Link creates a link field on the Block Admin page. It works by overriding the $block->subject variable and changes it to a link.

Features Support: Block Title Link is compatible with the Features module by using the Strongarm module. Simply select any block_titlelink prefixed variables and they will be exported in your feature.


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.


Language Switcher Dropdown

Language switcher dropdown with Language icons module

Project Description

    Language Switcher Dropdown is a very simple module that exposes a new block, similar to the default Language Switcher block provided by Locale module.

    The new block allows site visitors to switch languages using a drop-down select list instead of using hyperlinks.

    The module also integrates well with Language Icons module if installed.

    The picture says it all.


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.



Allows to use ImageMagick or GraphicsMagick 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.



This module is a backport of Drupal 8 Responsive Image module. It allows administrators to optimize images for different devices and resolutions by pairing image styles with CSS media queries. It is implemented as a display formatter for image fields.

The Picture module uses the "<picture>" element, which was recently added to the HTML specification. While browser support for this new element is currently very limited, this module uses a polyfill library to provide backward compatibility with older browsers.

While this module cannot account for different connection speeds (such as WiFi vs. 3g), it does limit wasted bandwidth by ensuring delivery of only one image, optimized for the device being used, and therefor can improve mobile performance.


Cloud Zoom

Cloud Zoom

IMPORTANT: The 1.x plugin has been removed from the Professor Cloud website. Only the 2.x plugin is available now, which is not tested with the module and is only free for non-commercial use.


Piwik Web Analytics

Piwik for Drupal configuration page

Adds the Piwik web statistics tracking system to your website.

The module allows you to add the following statistics features to your site:

  • Single/multi domain tracking
  • Selectively track/exclude certain users, roles and pages
  • Monitor what type of links are tracked (downloads, outgoing and mailto)
  • Monitor what files are downloaded from your pages
  • Cache the Piwik code on your local server for improved page loading times
  • Custom variables support with tokens (D7 only)
  • Custom code snippets
  • Site Search
  • Drupal messages tracking
  • Modal dialog tracking (Colorbox)
  • Access denied (403) and Page not found (404) tracking
  • User ID tracking across devices
  • DoNotTrack support


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.


Date iCal

Date iCal is your one-stop shop for iCal support in Drupal. It provides a plugin for Views to enable exporting your site's calendar as an iCal feed, and a plugin for Feeds to enable importing external iCal feeds into your site's calendar.


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:


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?


Session API

The Session API is a very simple set of functions that extend the core sessions workings, allowing data to be stored and associated with a user's session.

There is no need to install this module unless you are instructed to do so by another module.

Currently this module is used by


Inline Conditions

This module allows conditions to be defined on the entity add / edit form, and
 those conditions are later mapped to rules conditions when the rule is generated.

Inline Conditions are specially defined (hook_inline_condition_info()) and
 consist of a configure callback (provides a user-facing form) and a build
callback (adds the actual condition to the rule).

Integration consists of creating a field of the "inline_conditions" type on the
 entity, and later calling inline_conditions_build() from the implementation 
of hook_default_rules_configuration().


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.


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.


UUID Features Integration

UUID Features 7.x-1.0-alpha3 fixes some HTML code that made the module completely unusable. Please update ASAP. If you're experiencing WSOD simply remove the module files completely then upload the latest version. The latest version now works with UUID 7.x-1.0-alpha3. Please report any bug you encounter in the issue queue.

Comparison with other modules with similar functionalities: #1311428: Comparison with Node export (and possibly other modules with similar functionalities)?

We need patches and reviews! Please contribute here!

Co-maintainer(s) wanted! Please contact us.

The UUID Features Integration module provides a mechanism for exporting content (nodes, taxonomy, fields) into a features module. What's that you say? You thought features was only for configuration? This module is meant to be used in the cases where certain pieces of content straddle the line between pure content and configuration.


  • There are relatively static pages (like an About Us page) that have links from your primary navigation. If these were to go missing, your client would certainly say the site is broken.
  • You maintain page nodes for items like Terms of Service or Privacy Policy. These nodes appear on several sites and should always be the same.


Commerce Discount

Commerce Discount provides a new user interface for defining and managing product and order level discounts. Using just the core pricing system of Drupal Commerce requires knowledge of how to use the Rules UI, which is beyond the capabilities of most merchants. Additionally, the core system cannot support order level discounts or certain types of shipping / product discounts. This module addresses all of those things.

Additionally, all discounts are exportable entities, meaning they can be managed in code for version control and testing / deployment purposes.


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.



Drupal Commerce Extra Price Formatters

This is an add-on module for Drupal Commerce that provides additional options when displaying the formatted price in your store.

By default, Commerce allows you to format the price as:

  1. Raw amount
  2. Formatted Amounts
  3. Components

You can override the theme of these formatters, but this module gives you a way to control the formatting of your price display via the UI.

Extra Price Formatters Implemented So Far

RRP / Your Price

Allows you to display the Retail Price and the User Price for a product and optionally the amount the customer will save.
Allows you to switch the display back to a single price if there is no discount available on a particular product.

Formatted Price with Prefix and Suffix

Allows you to present a price in the style just £9.99 ex VAT or only £9.99 for a limited time only

Formatted Price with no decimal places

When you are selling items with whole unit prices, you don't necessarily want to see £10.00. This formatter lets you change the display to show £10. (use this with care!)

Please let me know if there are other price formatter combinations you would like to see.

There's a video demo here: http://www.youtube.com/watch?v=-WR3mKjou8M


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:


Http Client

Http Client is a library for making Http-requests. It has pluggable authentication methods and data formats.

Comes with support for authenticating with OAuth.module version 3.x for easy to access OAuth-protected resources.