35,720 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.

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


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:


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)


SEO Checklist

SEO Checklist tasks

Drupal SEO Checklist - What is it?

The Drupal SEO Checklist uses 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


Embedded Media Field

Maintainers: aaron (Aaron Winborn) and Alex UA (Alex Urevick-Ackelsberg)

This extensible module will create fields for content types that can be used to display video, image, and audio files from various third party providers. When entering the content, the user will simply paste the URL or embed code from the third party, and the module will automatically determine which content provider is being used. When displaying the content, the proper embedding format will be used.

The module is only an engine, and requires a supported module to function. These include 'Embedded Image Field', 'Embedded Video Field' and 'Embedded Audio Field'. These modules are included in the contrib folder of the module, so they can be easily activated from the module administration page.

Please note: As of emfield 2.x, provider files for these modules are no longer included with the main emfield module, and must be downloaded separately- please see the list of projects providing provider files below.

Modules extending Embedded Media Field

The following modules work in conjunction with this project, largely to expose media providers (you'll need at least one of these to make the module useful):

Media: 8Tracks
Media: Archive



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.



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 (Contrent translation with i18n and Entity Translation)

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.

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



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.


EU Cookie Compliance

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



This is a Drupal bridge project that provides an AddThis.com button or toolbox to let your users share your content to social network sites using AddThis.

What is AddThis?


Entity view modes

Screenshot of the view mode listing admin page

The Drupal 7 successor to Build modes which will allow administrators to define custom view modes for entities. Custom entities are added to the entity registry via hook_entity_info_alter() so they are available to any code that uses entity_get_info() to provide a list of view modes for an entity. This includes node and user reference fields, Views, etc.



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!



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.


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:


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.


Organic groups

Note: Development and issues are handled on GitHub, and code is synced back to Drupal.org


Enable users to create and manage their own 'groups'. Each group can have subscribers, and maintains a group home page where subscribers communicate amongst themselves.


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.


Nodewords: D6 Meta Tags

This module is now unsupported, please look to the Metatag module for an upgrade path to Drupal 7 and 8.


Token Filter

Token Filter is a very simple module to make token values available as an input filter.

Drupal 7

The module now supports native tokens (e.g. [site:name]) and all global tokens by default. It even allows some contextual tokens like node or user to be replaced, but currently does not encourage users to use them in the filter help text.



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.



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.0, each view mode may also be panelized individually, with special view modes added for the old-style "Page Manager" page display.

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


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.


Smart Trim

Smart Trim implements a new field formatter for textfields (text, text_long, and text_with_summary, if you want to get technical) that improves upon the "Summary or Trimmed" formatter built into Drupal 7.

After installing and enabling Smart Trim, you should see a "Smart trimmed" option in the format dropdown for your text fields. This is located in the "Manage Display" section of "Structure->Content types. With smart trim, you have control over:


Role Delegation

Example of permissions added by Role Delegation

This module allows site administrators to grant specific roles the authority to assign selected roles to users, without them needing the administer permissions permission.


Webform Ajax


This module adds AJAX support to Webform (3.0 and above).

As a first step it focusses to simply add form AJAX paging and submit. Form submissions get ajaxified including prev/next pages. Especially for multipage forms, this leads to faster loading (less data transfer), better usability and finally smaller server load.

There's no backport to previous versions on our roadmap and features are D7 only.


Enable the module. You'll be able to configure AJAX enable per form in the advanced form settings.

Known problems