37,571 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.

Simple Password Reset

Form presented without Simple Password Reset enabled.

This modules simplifies the password reset process.

Without this module enabled, core Drupal prompts the user to log in via a one-time login form. After clicking "Log in", the user is brought to their profile edit form where at long last they can change their password.

With this module enabled, the user skips the one-time login form. Instead the password reset link brings them right to the profile edit form where they can immediately change their password and log in. So what core Drupal does in two steps, this module does in one.

Additionally, this module now logs a user out who uses the password reset form linked from the account edit form. This prevents those users from seeing an access denied message when they follow the password reset link that gets e-mailed to them, reducing customer support inquiries during password resets.

The idea behind this module is described in Dave Cohen's blog.

Read the README.txt file for installation and further details.

Content Menu

Workflow for adding new menu item with selecting existing content via view

Content menu module improves Drupal's default menu management interface for tighter intergation of content authoring and menu management, so content can be created and edit right from the menu interface (e.g. creating content for a menu item that has been just created - watch screencast below).

About content menu module:

The goal is to make building a site's structure and content in one fluid process seamless, easy and natural. Editors can create content along with a menu item without ever really leaving the menu management process. Editors can find, associate and edit content right from the menu management interface.

Content Menu module makes building a structure-oriented website "page by page" with Drupal effortless and intuitive.

To get an impression of how easy content centric menu management is with the content menu module, watch our screencast: http://youtu.be/sYoYtoQ1s8c


Basically, Content Menu evolves Drupal's simplistic and isolated menu management interface into an editor's intuitive central for site authoring.

The most important new possibilties are to directly asses and edit a menu item's linked content and to directly create and position a new menu item with selectable target (content) type.

You can create a new menu item as …

  • URL – With the traditional menu item form



Once FAPI uses HTML5 to render elements, this module can be replaced by the "placeholder" attribute available as part of the HTML5 spec. You can update the FAPI to use the "placeholder" attribute right now by using elements module. This means that this module is only useful if you are concerned about older browsers that do not support "placeholder".

*If you are upgrading from 7.x-1.0-rc1 you will need to upgrade the placeholder library. See the README.txt file for details.

Responsive Dropdown Menus

Mobile version of the module

Responsive Dropdown Menus provides a new menu tree rendering to make responsive, drop-down enabled main menu possible on any theme. This sandbox was created to provide a simplistic approach to a common problem that gives theme builders room to customize.


Mobile Switch

Use Mobile Switch

The Mobile Switch module provides various functionalities to develop mobile ready websites, based on device detection by Browscap or Mobile Detect.



Views Grouping Row Limit

This is a basic Views style plugin that allows for a limit on the number of rows displayed within a grouping field. So, for instance, if you have a view that outputs the following:

Grouping Field 1
 - Row 1
 - Row 2
 - Row 3
 - Row 4
 - Row 5

Grouping Field 2
 - Row 1
 - Row 2
 - Row 3

there is currently no way using Views to only show the first two rows under each grouping field without painstakingly making several different displays. That's where this module comes in.

User Stats

Provides commonly requested user statistics for themers, IP address tracking and Views integration. Statistics are:

  1. days registered;
  2. join date;
  3. days since last login;
  4. days since last post;
  5. post count;
  6. login count;
  7. user online/offline;
  8. IP address;

This module was developed for The Webmaster Forums (who have moved to Drupal from vBulletin -- yes, we do like Drupal's forum!)

Mail Logger

Logs all outgoing mail from your site that uses proper Drupal APIs.

Any user with "access mail logger" permission will be able to read logs of outgoing mail from any user to any recipient, including new user welcome emails, password resets, triggered actions, Rules-based actions, and more.

Node Page Disable

Screenshot of UI


Allows easy UI access and disabling of the path /node when not used. This was inspired by a security consideration in the Production Check Module.

If you have a dependency on this module and you need a Drupal 8 version, please let me know by commenting on (or creating) the issue called “Drupal 8 Port”. I will prioritize those modules that have the most votes for Drupal 8 first over others.

Address Field Phone

This project extends the Address Field module to add support for some additional fields (Phone number/extension, Mobile number and Fax number) that are stored with other address fields.

This module may or may not be what you need.

File Resumable Upload

Step 1: The widget is displayed

File Resumable Upload aka file_resup adds large files multiple and resumable upload to the File and Image field widgets.

Watch Daily Dose of Drupal Episode #181 about File Resumable Upload on CodeKarate.com!

Reference field option limit

This module allows reference fields of several types to have their widgets' available options limited by the values of other fields in the current entity.

This is best illustrated by examples:

Example 1: countries and cities

Suppose you want to label articles (or products, or businesses, etc) by both city and country so both can be used for filtering and searching. You could use a hierarchical taxonomy with city terms as children of country terms, but that doesn't make sense when you come to set up Views filters.

With this module, create two separate taxonomies for country and city (or content types, or whatever entity you want to use). Then add a reference field so that each city points to its country: eg, the term 'Paris' has a reference to 'France'.

Then when editing an article, selecting 'France' in the country field will cause the city field to update to show only cities in France.

Example 2: sports and teams

Suppose you want news stories to be marked as being about a sport and a particular team for that sport, perhaps using taxonomy terms for both. To make editing easier, you would probably like want the 'team' dropdown to be limited to just teams for the current news story's sport.

Image FUpload

Image FUpload

Image FUpload (Multiupload) which is an addition to image and CCK's imagefield module, gives the ability to every user who is allowed to upload images by using image module or imagefield module, to upload multiple images with one simple click. All selected images are uploaded via a flash module (swfupload) and are automatically processed.
So, there’s no need any more to upload image by image.


  • Upload multiple images with one click
  • Fully integrates in image and imagefield module (thumbs creation [also using imagecache module] / file size limit) + using Drupals AJAX
  • Every user can upload images depending on permission (Not only restricted to administrator)
  • Preview list of all uploaded images in which title, body, taxonomy and imagefield specific fields can be edited all at once (customisable [decide which fields should be provided] / themeable / preview image handling customisable / additional permission restrictions)
  • Taxonomy and all other modules (for example CCK fields like node reference) are supported
  • Automatic node title creation and predefining of imagefield fields (customisable / themeable / editable by user / token support [imagefield])

Wysiwyg Linebreaks

WYSIWYG Force Linebreaks - Don't mess up your text!

Wysiwyg Linebreaks allows users of wysiwyg editors to save and open markup from their website with linebreaks instead of <p> and <br /> tags.

You can choose between two different methods:

  • Force linebreaks: Your content will always preserve whitespace/linebreaks around blocks of text, rather than paragraph and break tags.
  • Convert linebreaks: Your legacy content will appear correctly in your WYSIWYG editor, then the content will be saved with the markup added by the editor).

The 'force' option is useful for sites where you would like to edit content both with and without wysiwyg editors (so you don't have to manually enter paragraph and linebreak tags everywhere).

Basically, you can edit content that was originally created without a wysiwyg editor (for instance, simply using Drupal's Filtered HTML format, a user may hit enter twice to create a new paragraph—no <p> tag wraps the block of text in this case), without having to deal with the headache of reformatting everything inside the wysiwyg editor.

Mobile sliding menu

Drupal mobile sliding menu module - demo example

The mobile sliding menu module integrates the mmenu jQuery plugin for creating slick, app look-alike sliding menus for your mobile website.

Image Assist


Image Assist allows users to upload and insert images inline into content. It automatically generates an "Add image" link under fields of your choice. Clicking the link opens an image browser, displaying all images that have been uploaded via the Image module.

Images can be filtered by ownership or taxonomy terms (categories). New images can be uploaded through Image Assist's dialog. Clicking on an image displays a properties page where attributes such as caption, size, and alignment can be set before the image is inserted into the post.

Image Assist is especially useful when using a client-side editor/WYSIWYG editor. Currently, it can be used with TinyMCE via Wysiwyg API - support for other editors is right on the way.

Taxonomy Formatter

This is a small module written to provide a custom formatter for taxonomy items. The default formatters both output the terms wrapped in divs. This module adds a new formatter that allows you to specify the element type, the wrapper type, classes for both, the separator used, and if they link to the term pages or not. This gives much more customizable layout options.

This project was started in Drupal 7 and will not be back ported unless a good number of requests come in.

cURL HTTP Request

This is a module intended for developers, as it provides just one API to call: chr_curl_http_request() (use curl_http_request() for versions 1.5 and earlier).

The function chr_curl_http_request() is an alternative implementation of Drupal core function drupal_http_request() using cURL.
The function intends to be backwards compatible with drupal_http_request(), by accepting the same parameters in the same form and by returning the response in the same format.

Debug HTTP requests (v1.6 and higher)

View dpm() print-outs of HTTP requests/response objects by enabling Devel and the debug mode in the cURL HTTP Request administrative section.

Proxy support

cURL HTTP request does provide some extra features, though: it allows for requests to be sent via proxy, whether they are HTTP or HTTPS request. It can even support different proxies for HTTP and HTTPS. Basic proxy authentication via username and password is also supported as well as an exception list of hostnames not to be contacted via proxy.

Sample proxy settings

An example of the proxy configuration that you must add to your settings.php in order to have proxy support in your request via curl_http_request():


missing module

This module lists modules that are activated in your database but missing from your file system.

These can greatly impact the performance of your drupal 7 site.

For example: 1 missing module lead to 900 file_scan_directory() calls resulting in a wasted 250ms every page load.

-- Usage --
1. To use either view the site status report

2. from drush run
drush list-missing-modules # (alias drush lmm)
drush remove-missing-modules (alias drush rmm)

-- Examples --


This is an attempt to implement a generic framework for keeping track of any progress.

Modules that utilize Background Process

Node Save Redirect

This module provides a method of specifying a location to take the user after saving a piece of content.

A set of radios buttons are added to the submission vertical tab on the content type edit form.

The available options are.

Default - Default behaviour
Return to Edit page after saving
Return to content overview page (assuming the user has access permissions
Re-redirect to another location. (any valid drupal path)

** New in 7.x-1.x **
Tokens are now supported for custom paths.

File Lock

This module allows you to "lock" files so they cannot be deleted.

File Lock can be used to control two different problems:

  1. Preventing deliberate deletion of files
  2. Preventing accidental deletion of files caused by the behaviour of Drupal's core file field

File Lock is particularly useful when used with a media library setup, for example using the Media module.


This module provides a field type which can be used as a hotness metric or a regular view counter for entities and for much much more. In essense, entities receiving attention (views or actions defined by Rules) are heated while inactive ones slowly cool down.


Features are:

Better Messages

Better Messages with Cube/Tao theme

Better Messages is a very simple module that provides "Popup-like" Drupal messages.

Better Messages intends to let you control where and how you want to see your Drupal messages! Combine different animations and override better_messages.tpl.php to create your custom look.

Similar Modules:

Here is a comparison chart outlining the feature-sets of several modules similar to Better Messages: http://groups.drupal.org/node/51088


This module provides a simple interface to alter the default Drupal messages! Currently it allows you to do the following:

  • Control the position and width of the popup message relative to screen.
  • Control the animation for opening, and for closing the popup message.
  • Enable or disable popup messages at specific pages.
  • Works with AHAH submits. COOL!!
  • Override the popup message by coping and altering better_messages.tpl.php into your theme directory.
  • Override the popup message CSS by coping and altering better_messages.css file in your theme directory.
  • Optional dependency on jQuery UI module which can make the message draggable.
  • Control countdown timer for auto closing messages.