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

Responsive Menus

Example menu using simple style


Responsify your menus! Just give me a CSS selector of your menu and I will make it mobile friendly (when the time is right).

Technically you could set this to affect any element on the page... e.g. collapse a sidebar or content area at a certain screen width.
(Using 'simple' style).


  • Choose from different responsive menu styles.
  • Configure any amount of menus to be responsified (simple or codrops' multi style).
  • Configure at which screen width they should be handled.
  • Include / exclude admin pages. (more options with Context)
  • Disable other mouse events.
  • Remove other classes/IDs.
  • Context module integration.
  • Easily theme-able.

Included Responsive Menu styles:

  1. (1st screenshot) 'Simple', a lightweight style.
  2. (2nd screenshot) codrops' Responsive Multi-Level Menu*
  3. (3rd screenshot) MeanMenu*
  4. (4th screenshot) Sidr*



Provides an AddThis.com button or toolbox to let your users share your content to social network sites.


Real Name

The RealName module allows the administrator to choose fields from the user profile that will be used to add a "real name" element (method) to a user object. Hook_user is used to automatically add this to any user object that is loaded. It will also optionally set all nodes and comments to show this name.


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.


Please help us test 6.x-1.11-rc1, released November 4th, 2015. Not recommended yet for production, but very much ready for rigorous testing!



Breakpoints management for responsive web design.

Breakpoints defined by a theme

A theme can define multipliers and breakpoints in the theme.info file like


Nivo Slider

Nivo Slider provides an easy and eye-catching way to showcase featured content. Nivo Slider gives administrators three important tools:

  • A simple method of adding slides to the slideshow.
  • An administration interface to configure slideshow settings.
  • Simple slider positioning using the Drupal block system.


Hierarchical Select

Hierarchical Select


This module defines the "hierarchical_select" form element, which is a greatly enhanced way for letting the user select items in a hierarchy.

Hierarchical Select has the ability to save the entire lineage of a selection or only the "deepest" selection. You can configure it to force the user to make a selection as deep as possible in the tree, or allow the user to select an item anywhere in the tree. Levels can be labeled, you can configure limit the number of items that can be selected, configure a title for the dropbox, choose a site-wide animation delay, and so on. You can even create new items and levels through Hierarchical Select!

For a good overview of what Hierarchical Select can do, look at this demo!

Drupal 7 version

The Drupal 7 version integrates with:

  • Taxonomy (Drupal core)
  • Menu (Drupal core)
  • Entity Reference (rudimentary support)



This module allows you to specify content type(s) as being a block. This allows the content managers of the site to edit the block text and title without having to access the block administration page. Users only need edit access to that node in order to edit it.

We advice you to use this module together with Node Level Blocks or Block Reference module.

It is very handy to create a simple block content type and enable this content type for blocks and use these in place of the normal 'add block' functionality.

Now supports translatable content

If Content Translation is enabled, then only a single node block per translation set is exposed and the node from the translation set with the appropriate language is loaded into the block. Entity translation is not supported yet.

Other modules

There are several other modules and approaches that allow nodes to be presented as a block. See a comparison at http://groups.drupal.org/node/93499

Drupal 7

The Drupal 7 version of this module enables the use of view modes. This gives the user even greater control over customizing the output of the node block. Default view modes and links display can now be assigned per content type and then overridden at block/node level.

Drupal 6



Boost skips PHP/Drupal/SQL for lighting fast page loads!

Boost provides static page caching for Drupal enabling a very significant performance and scalability boost for sites that receive mostly anonymous traffic. For shared hosting this is your best option in terms of improving performance. On dedicated servers, you may want to consider Varnish instead.


CSS Injector

IMPORTANT: There is currently a bug in Pantheon's backup process that will skip any file or directory starting with 'css' including the CSS Injector files that are saved in a css_injector directory. If you are using CSS Injector 1.x on Pantheon, you will lose the actual CSS from each configuration if you restore from a backup until this issue is resolved.

Allows administrators to inject CSS into the page output based on configurable rules. It's useful for adding simple CSS tweaks without modifying a site's official theme. The CSS is added using Drupal's standard drupal_add_css() function and respects page caching, etc. The 2.x brach leverages CTools so CSS can be included with Feature changes (ie. CSS that improves the look of a View can be packaged with the View).


simplehtmldom API

The module is a bridge between simplehtmldom PHP library and Drupal.
It provides powerful API for HTML parsing. Also, it works fine with broken markup.


Entity cache

Entity cache puts core entities into Drupal's cache API.

Due to the entity loading changes in Drupal 7, no core patches are required.

How to use it

This module has no user interface, if you enable it, entities will start being cached, if you disable it, they'll stop.

Supported core entities

  • Nodes
  • Comments
  • Taxonomy terms
  • Taxonomy vocabularies
  • Files
  • Users

Support for contrib entities:

There is no automated support for contrib entities, to use entitycache for a contrib or custom entity:

  • Create a cache_entity_$myentity table/bin.
  • Specify EntityCacheDefaultEntityController as your controller class in hook_entity_info(), or extend it.
  • Never update your entity tables outside of save/delete API calls.


Entity cache is now set up for automated testing on Drupal.org, see current HEAD status.

This module is being developed for Drupal 7, and will never be backported to Drupal 6. For Drupal 6 you may want to look at this pressflow merge request or http://drupal.org/project/advcache.


Security Review

Security review example results page

The Security Review module automates testing for many of the easy-to-make mistakes that render your site insecure.


Checklist API

Example checklist

Checklist API Provides a simple interface for modules to create fillable, persistent checklists that track progress with completion times and users. You don't need this unless you're a module developer or you want to use a module that calls for it.



This module provides a phone field type

You should probably consider using https://www.drupal.org/project/telephone instead. Eventually, the validation and formatting features of this module will be moved into a new module that extends the telephone module in both D7 and D8.



Drupal's block module is limited by the fact that a block can only have one instance. Each block has a 1:1 relationship with its region, weight, visibility (and other) settings. This means that it is impossible to have blocks in multiple regions or to have blocks that have different settings on different pages.

MultiBlock module solves this problem by allowing you to create multiple Block Instances of already existing blocks. Please read the README for more information.



This module will geocode just about anything you throw at it including addresses, GPX files, geo-tagged images, and KML files.

It is commonly used to automatically geocode Addressfield addresses into Geofield points for display on Openlayers Maps. It also supports the geolocation, and location modules.

This module also makes available an API to convert the information you already have into geographic information. It support a variety of input formats and runs them through pluggable backends to produce geographic information. In addition to Latitude / Longitude points, this API also supports more complex geographies such as lines and polygons.

If you'd like to help improve the module your patches and co-maintenance are welcome!



Computed Field

Computed Field is a very powerful field module that lets you add a custom "computed fields" to your content types. These computed fields are populated with values that you define via PHP code. You may draw on anything available to Drupal, including other fields, the current user, database tables, you name it. (Feeling the power yet? :) ) You can also choose whether to store your computed field values in the database with other content fields, or have them "calculated" on the fly during node views. (Although you should note that Views use requires database stored values.) This field is literally the Swiss Army knife of fields. So start cooking up your PHP based values!


YouTube Field

YouTube field

The YouTube field module provides a simple field that allows you to add a youtube video to a content type, user, or any other Drupal entity.

Display types include:



UAS (User activity stream) example

The Message module is the core of the message stack. It enables logging and displaying system events in a number of different use cases. Events that are recorded over time are sometimes call activity streams. Exportable messages subtypes can be created for different use cases with custom fields and display (view) modes.


Email Registration

Allow users to register and login using only an email address. Users can then log-in using their email address and password for authentication.


Menu position

Screenshot of content placed with Menu position module

Often times site builders want certain types of content to appear in a specific position in the navigational menu. The simplest solution, adding all of that content individually to the menu system, has performance and usability issues. (Imagine hundreds of menu items added to one spot in the menu.)

This module allows for the creation of rules that will dynamically add the current page into the menu system at the requested spots.

This includes affecting:

  • The main links of the theme
  • The secondary links of the theme
  • The breadcrumb trail
  • Menu blocks provided by core's Menu module
  • Menu blocks provided by the Menu Block module


Simple Google Maps

This module is about the simplest way to get a Google Map, and/or a link to a Google Map, displayed with your content. It provides a field formatter for Drupal plain text fields. You enter an address that Google Maps can recognize in the plain text field, and the formatter displays it as a map, link to Google Maps, or both.

If you want to do something more complicated than this, such as displaying location fields from multiple nodes on a map, see:



Panelizer configuration screen

The panelizer module allows you to attach panels to any node in the system. It is similar to the panels_node module that ships with Panels, which provides a single node type that is a panel. Panelizer, however, allows this to work for many entity types. It works by using the Page Manager template to take over the page rendering of the node. In Panelizer 7.x-3.x, you can also each view mode can also be panelized. The old-style "Page Manager" implementation is treated as a specialized view mode.

  • The administrator can specify which entity types may be panelized.
  • The administrator can specify what content is allowed and what layouts are allowed per entity bundle.
  • The administrator can specify a default panel to use per entity bundle. If a default panel is not specified, then panelized entities are normal entities until they are individually panelized. If a default panel is specified, then all entities of that type are automatically panelized with the default panel, and each entity can then have that panel modified.
  • All entity fields are immediately available as panel panes. Additionally, with token.module, you can create custom content panes and use tokens to aggregate several fields into a simple piece of text.
  • Unlike Panel Nodes, Panelizer allows additional contexts to be added to the panel, not just the node being panelized.

Work on v7.x-3.2 is being coordinated using a Trello todo list.


Commerce Shipping

Commerce Shipping provides a shipping rate calculation system for Drupal Commerce, integrating shipping service selection into both the checkout form and order edit form. This module is a framework that is meant to be used in conjunction with shipping method modules like Commerce Flat Rate, Commerce UPS, and others.

Shipping service availability and rate calculation is handled in the user interface through Rules and is backed up by an API that gives you a high level of flexibility to implement simple or complex shipping scenarios.

Developers and users of this module should use the new and improved Commerce Shipping 2.x version. Sites created using Commerce Shipping 1.x can find notes on what has changed and how to update in the release notes for the Commerce Shipping 2.0 release.

Development sponsored by Reveal IT and Commerce Guys.