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


This module allows you to create arbitrary Workflows, and assign them to Entities.

Workflows are made up of workflow states. Transitions between states can be allowed per role. For example, a workflow with the states Draft, Review, and Published could be assigned to the Story node type. Only users with role 'chief editor' can set Stories to the published state.
You can set up the Workflow to alter states from form, page, comment and a special workflow tab.


Menu Firstchild

By default, Drupal requires that you enter a path for each menu link you add/edit from the Menu administration page.
There are cases you may want to create a parent item, without any path, that simply links to its first viewable child item.
Menu Firstchild provides this functionality.


Views tree

Heirarchical listing of Drupal Core versions created with Views Tree and Views

This module provides a tree-based style plugin for Views. It is equivalent to the tree-based style template from Views 1.

It is based off of the list style. Although it generates a nested view, there is still only a single query run for the view making it quite performant.

The 1.x branch is compatible with Views 2. The 2.x branch is compatible with Views 3.


  1. Create a new view using the Fields row style. Populate it with the appropriate fields you want.
  2. Select the Tree (Adjacency model) style plugin.
  3. Select the linking fields in the style configuration panel. Generally, you will want to link from a nodereference field to the nid on the same node type. That is, the nodereference field is used as a pointer to the "parent" node.
  4. Save and enjoy.


This module has been tested and used with the following relationship-oriented modules:

  • Taxonomy (in core) - parent/child relationships
  • References - node and user references
  • Relation - references between any entities (D7 only)
  • Entity reference - references between any entities (D7 only)


Taxonomy CSV import/export


This module allows you to import or export taxonomy from or to a CSV (comma-separated values) file or with a copy-and-paste text.

It helps you to quick import a non-standardized vocabulary, for example an old thesaurus, a hierarchical taxonomy or a simple list of children, synonyms, descriptions, weights or related terms to terms. It can be used as a module or as an API with a plug-in mechanism. It can manage internationalized vocabularies with i18n_taxonomy, a submodule of i18n module [Drupal 7 only].

Taxonomy CSV supports drush: you can import/export taxonomies from the command line interface with drush taxocsv-import and drush taxocsv-export.

More informations on Taxonomy CSV import/export are available on the help page in English (7.x version), in English (6.x version) or in French (6.x version). A quick demo is available here, in Dutch.


elFinder file manager


elFinder is a open source AJAX file manager


  • Integrated with WYSIWYG API capable editors: CKEditor, FCKeditor, TinyMCE, BUEditor (D6), jWYSIWYG (D6), YUI, WYMeditor
  • Multiple file upload
  • File copying/moving with Drag & Drop support
  • Quick file and directory rename
  • Image resizing
  • Lightbox-preview
  • Contect menu with generic file/directory operations
  • Inline text file editing
  • Favories directory list
  • Directory selection history
  • Working with archives
  • File descriptions

Upcoming 2.x version additional features:

  • Drag and Drop file upload
  • Drupal file table integration (including Private filesystem support)
  • Search
  • Visual image resize, crop and rotation
  • Role based access control

Module/Library version compatibility list

Module verson Supported library versions
7.x-0.8 1.2
7.x-0.7 1.1RC3 - 1.2


Image Block

Because I can never get a straight answer for a simple solution to include an image in a block with a easy-to-use interface for non-technical folk.

Image block is a module where one can create a simple block that includes an image. The 6.x version of this module integrates with Imagecache and 7.x with the core Image module's Image Styles for dynamic image sizing and manipulation.



This module allows users to create image galleries using the Galleria jQuery plugin, found on http://galleria.aino.se.


Jquery Colorpicker



This module creates a new Form API element type: colorpicker, which relies on the 3rd party integration of the jquery colorpicker. After enabling this module and downloading the relevant files from the site linked above, a new form element can be created.


Automatic Entity Label


"Automatic Entity Label" is a small and efficient module that allows hiding of entity label fields. To prevent empty labels it can be configured to generate the label automatically by a given pattern.

This can be used on any entity type, including e.g. for node titles, comment subjects, taxonomy term names and profile2 labels.

Patterns for automatic labels can be constructed with tokens. Drupal core provides a basic set of tokens. For a token selection widget install the token module. Some entity types (e.g. profile2) provide tokens via the entity_token module (part of entity).

Advanced users can use PHP code for automatically generating labels.


Video.js (HTML5 Video Player)

Video.js is a HTML5-based video player with a built-in Flash fallback for older browsers. This means that videos can be played on nearly all devices and operating systems, provided the right codecs are used.

This module is a support module for Video.js. It doesn't contain Video.js itself, but integrates it with the File, Link and Video modules after you've installed it.



The Drupal Openlayers Module

Features & Submodules

The OpenLayers core code stores map configurations: maps, styles, layers, and behaviors, and combines them to create maps using the OpenLayers JavaScript library on any Drupal site.
OpenLayers supports a wide range of map types and new types can easily be added as ctools exportables - new layer types are being added all the time. Currently the module supports OpenStreetMap, Google Maps, Yahoo Maps, Bing Maps, TMS, WMS, CloudMade, XYZ map types and the MapBox maps.
OpenLayers supports a wide range projections and new ones can easily be added as ctools exportables. Proj4JS is the JS library who allows to create custom projections, so, the proj4js module is now a dependency.
Map interactions like popups, zoom controls, editing, and fullscreen can be added via the UI and extended by other modules.
OpenLayers UI
This module allows for a user interface to create and store maps which can be used to customize all sorts of things like CCK Formatters to Views Plugins. Maps can be provided by code or stored in the database and integrated with Features.
OpenLayers Views


Simplified Menu Administration


This module simplifies the core Menu and Shortcut modules by merging the "List links" and "Edit menu" operations into a single administration page.

If you've ever accidentally clicked "Edit menu" hoping to edit the most important part of a menu (its links) but then found that all you could do from that page was edit the menu's name and description instead, this module is for you. What it does for the time being is get rid of the "List links" terminology altogether and consolidate everything under the "Edit menu" page, where most people will naturally look for it.


Retina Images

Retina Images adds an option to all image effects included with core to allow them to output high resolution images for high DPI or retina displays. When enabled as part of an image style, this module returns high resolution images for all devices, as is recommended and explained in Thomas Fuchs' excellent blog post and examples on this subject.



IMCE Crop Screenshot

Adds image cropping functionality to IMCE through its UI.

1. Go to admin/settings/imce Assuming you have already created a IMCE profile. Under section 'Configuration profiles' click on approprate 'Edit' link.

2. On the next page find section 'Directories'. Set appropriate permission using the check box 'Crop'.

3. Click on 'Save configuration' button.

4. To test use IMCE. A new 'Crop' tab button will be display. Follow instructions on screen.


Image Delta Formatter


This module provides a custom formatter for imagefields, that allows the user to specify which values (deltas) should be displayed.


Go to the "Manage Display" page of your entity type, and change the formatter
for the desired image field to "Image Delta". Then click the gear icon
to configure the deltas.



The MediaElement module brings the MediaElement.js html5 player plugin to Drupal. MediaElement is a jQuery based JavaScript plugin that enables the video and audio tags using h.264 to work under browsers that do not support the tag or the codec and provides a consistent interface across all browsers.



Boxes module is a reimplementation of the custom blocks (boxes) that the core block module provides. It is a proof of concept for what a re-worked block module could do.

The module assumes that custom blocks are configuration, and not content. This means that it is a reasonable action to ask for all blocks at one time, this is in fact exactly what the core block module does.

Boxes provides an inline interface for editing blocks, allowing you to change the contents of blocks without going to an admin page.

Boxes provides exportables for its blocks via the (required) Chaos tools module. This allows modules to provide blocks in code that can be overwritten in the UI.

Chaos tools is required to use Boxes.

Boxes Integration

The following modules provide Boxes plugins. Let us know if your plugin is not listed here.

Spaces support


Disable Messages

Disable drupal messages

Gives a site owner options to disable specific messages shown to end users. The core drupal message system as offered by drupal_set_message is an excellent way for modules to send out messages to the end users. However not all drupal site owners are keen to show all the messages sent out by drupal core and all modules to their users. This module gives site administrators a reasonably powerful way to filter out messages shown to the end users.




The DRUPAL-6--2-0 branch works well with the Node Reference / Embed Media Browser (nrembrowser) module to bring Media-like functionality to d6!

Drupal 6-x-1 version Styles works with Drupal 6 + Filefield Styles to bring Drupal 7 to Filefield.


Features Override

Features Override is used to change (override) existing Features. You may want to use it if:

  • You are installing a feature module that requires this module.
  • You have a site built on features - e.g., an Open Atrium or Commerce Kickstart site - and you want to make changes without losing them when you upgrade to a new version.
  • You are a feature developer looking to selectively override components (Views, content types, etc.) of existing features and export just the changes to code.

Initial 1.x development sponsored by Chocolate Lily. The 7.x-1.x branch was unstable with several reported issues for views (and, likely, panels). That branch has been abandoned with new development occurring in the 7.x-2.x branch (sponsored by Phase2 Technology). Drupal 6 users should continue to use the 6.x-1.x version...no 2.x branch is planned.

NOTE: Overrides exported with version 1.x are NOT COMPATIBLE with overrides exported with version 2.x. If upgrading you should disable the 1.x override, remove the 1.x Features Overrides module, install/enable the Features Overrides 2.x version, then re-export your changes as new overrides.



Clientside Validation

Drupal 8

This module adds clientside validation (aka "Ajax form validation") for all forms and webforms using jquery.validate. The included jquery.validate.js file is patched because we needed to be able to hide empty messages.

Drupal 8



This is the core module, all it does is add data- attributes to the HTML
form elements. If an HTML5 attribute exists it is used as is.


Location Map

This simple module displays just one location map via Google Maps, for brochure and company profile web sites.

#D7CX: As pledged, Location Map module had a full Drupal 7 release on the day that Drupal 7 was released.

Location Map will:

  • create a Google Maps page with a marker on your location based on an address you supply. The map provides options for map view, satellite view, and a hybrid mode. It has the standard Google Maps features that users can zoom and drag to temporarily change the focus of the map. The size of the map can be configured in the admin interface. In v1.0, a node is created for this map at /locationmap, which can be aliased to any address you choose.
  • allow anyone given administrative approval for the module to drag-and-drop the map location marker for fine-tuning its position, if initial automatic geolocating from address information was not accurate.
  • create a block with a static image of the centre of your map, which links to the larger map.


Commerce Message

Provides Commerce-specific Message integration.

Included in the box:


URL field

Sample output of an url field

A lightweight URL field that is intended to be used as the basis for Drupal 8's URL field type in #501434: Move Link/URL field type into core. This can also easily be used to replace Drupal 6 profile URL fields.




  • External links only
  • Optional title support
  • Titles can be automatically fetched from the <title> value of the URL.
  • Widget with options to use title or URL as the link text, and trim length for long URLs or titles.
  • Token replacement of the title field on display.
  • API support for attributes for each URL field value (not exposed in the widget).

If you need more complex stuff like supporting internal links or targets, etc., then you can easily write more complex field widgets and formatters.

Recommended modules

  • Elements module if enabled, the default URL field widget will use the HTML5 'url' FAPI element.

Similar modules


    Entity Construction Kit (ECK)

    The Entity Construction Kit (ECK) builds upon the entity system to create a flexible and extensible data modeling system both with a UI for site builders, and with useful abstractions (classes, plugins, etc) to help developers use entities with ease.

    ECK allows the creation and management of entity types with custom properties; adding bundles to entity types; and fields to bundles, with the help of the Field UI module.

    If that last sentence sounded like a foreign language, I suggest reading the first section of ECK's documentation: Understanding Entity Terminology

    A fairly recent video demonstrating ECK's capabilities was created by Shane at Code Karate: Drupal 7 Entity Construction Kit. This video should get most site builders going.

    An older summary on what ECK could do on 7.x-1.1-alpha3 can be found in Jeff Eaton's article: Module Monday: Entity Construction Kit.