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


DreML: Drupal Relationship and Enitity Markup Language


This module integrates the Userlike livechat into Drupal.


Metriweb is an analytic tool maintained by CIM.be for official visitor statistics.

This module adds the tracker code of Metriweb to the content pages of Drupal. It creates keywords based on the arguments of the current page.

Note: this module is not developed by CIM and does not include the necessary javascript-file provided by CIM. You should get the js-file from them when you signup for the service.


Database web API

This module creates an API for querying a database based on GET requests supplied in the URL, and returns results in JSON or XML for purposes such as enabling AJAX applications based on the data stored in a database table.

Obnoxious Overlay

Everybody loves the overlay! The epitome of grace, modestly, and reliance.

Obnoxious overlay gives the overlay a sense of awareness and confidence. Using modern HTML5TM animation techniques, the overlay no longer wanders but strides* confidently on to your screen. Impress your co-workers with an admin interface that's the life of the party. Delight your clients years from now once they upgrade to a real browser!

*Or bounces, spins, fades or jumps. Your milage may vary.

Web Performance

Note: Do NOT use. Everything in this sandbox was contributed to the Pre project

A collection of tools to increase frontend performance on a Drupal site.

Commerce product order history

Provides a view that displays all orders for a given product, the order date, order status and the quantity ordered.

Bot Assembla

A module for Bot that integrates with Assembla projects.

Email Jumbler for Drupal

Enables Craigslist-style "anonymization" of email addresses on node comments. An anonymous user can post their comment, enter their name and email, and choose to expose a "fake" email address that will route to their real email address.


This module doesn't work out of the box. Some mail server configuration is required. Details may be found in the README file.

This module was designed to work with a Google apps account that has IMAP turned =on. It has not been tested with other email providers, although we do not forsee any problem adapting it for other providers.

How it works

Generates random email addresses at a specified domain to mask the real email addresses of people who post content or comments on your website. These random email addresses are not actual accounts on your mail server; rather they are all sent to a "catch-all" address.

This script downloads mail from the catch-all account (using IMAP) and looks up the recipients against a database table that maps fake emails to real emails. If matches are found, the messages are forwarded to the appropriate destinations.


  1. Set up a Google apps account
  2. Create an email account to act as a "catch-all" address. This will catch emails sent to the randomly-generated addresses created by this module.


Ubercart Installation Fee

Ubercart Installation Fee provides an pane in the checkout page to enable user with installation options for physical products like setting up a local network after buying a router.

These installation options can be also associated with flat rate, which means individual installation type can have own shipping cost.

Unactivated User


This module provides Drupal administrators to send a email reminder to a unactivated user automatically and remove it automatically.


  • Auto reminders
  • Auto delete


git clone --recursive --branch 7.x-1.x http://git.drupal.org/sandbox/thyssimonis/1561238.git unactivated_user

Imagecache JAIL

Adds CCK display formatter for ImageCache presets that allows for lazy loading of images via the Javascript Image Asynchronous Loading (JAIL) jQuery plugin.


This module leverages Drupal user roles to create different profiles for users.

It creates a multi-step user registration form in order to display fields associated with roles. A key aspect of this module that makes it different from other profile modules is that fields can be associated with multiple roles at a time. Field labels can be customized according to role.

Development was sponsored by the City of Pleasanton - Community Services.

Commerce FedEx Test

Creating a Commerce FedEx Shipping Method

Heads Up Drupal

This is a Heads Up Display for Drupal.

DLs Demo Sandbox Module

This is a demo module for testing purposes only.

Latest Redirect

This module provides a simple redirect to the newest instance of a particular entity type. Optionally you can also specify a bundle type as well.

This provides you with a link that you can publish like:
which will always redirect the user to the newest published node of type article.


Drush is a very nice framework for building CLI tools. But it's not a proper ecosystem until it has a todo app.

@Todo is intended to provide developers and administrators with a lightweight task-recording tool that can replace burying @todos in your code. Those can sometimes be useful to inform others of future intent, but are a pain to actually track your own actions.

With new or tiny projects, I often find myself putting high-level notes in an issue tracker somewhere but jotting down more detailed action items in a hard to manage scratch space... @Todo provides cleaner structure and is easily there for me on the command-line when I want to drop a quick thought into the queue.

Again, it is not intended to compete with a real issue tracker. Feature requests oriented at making @Todo scale to more users or more issues will likely be rejected.


Commerce Bespoke

Taillor made Drupal Commerce: a collection of simple customizations that apply to specific usecases.


  • Redirect to cart when adding a product

  • When pushing the 'Add to cart' button the user gets redirected to the /cart page.

  • Maximum product quantity in cart

  • Sets the product quantity that a user can order (per product, not total product quantity in cart)

Add to cart customization

It changes the 'add to cart' button text and it disables the button in these cases:

Webform component clone

Webform component clone (WFCC) is a webform module widget, it provides a clone across the different webforms component.

If you have many different webforms (already existing), but some very similar to the webform component, then the module will be suitable for use, you can easy clone, modify component and save new one.

Exif API

For now it uses exiftool to fetch exif data from images. But I want to build a plugin structure with providers so multiple sources can be used to fetch exif data.

The reason I don't use the EXIF module is that I want to use it on a file entity directly and have a good API so that don't get locked.


Bytehand sms service.
Allow sending sms all over the world

User-defined permissions

Latest: I've come back to using Drupal after a long break and am now maintaining this module again.

Ever felt existing roles/permissions weren't right for controlling access to your new view? Given the choice of compromising or defining a new permission in code, you may well have compromised. I generally did.

Using this module you can quickly define new permissions through the UI. Great for controlling access to views. If you decide to refactor your roles, you won't have to edit a bunch of views whose access is controlled by role. Just add and remove the user defined permission from the relevant roles in a single step.

This module would be even more useful if Rules were to get a "User has permission" condition. I think this condition is just in the bonus pack at the moment #1338768: Condition: "User has permission" but I could be wrong.

Help: What about permission renaming? Should this be allowed? The initial ID of the permission is just its title converted to all lower case. If we allow the title to change then the ID (which might be used by a custom module) will "drift" from the the title. Changing the ID of a permission that has already been assigned to a role would be all kinds of badness.

Node aspect pages

API that allows to have different build modes or page callbacks for node/%/[something], depending on node type or other criteria.

It can be seen as an alternative to panels/ctools page variants.

(this is going to be moved to a documentation page or README.txt some day)
* Implements hook_nodeaspect()
* Shortcut for hook_menu(), and for view mode registration
function bw_groups_nodeaspect($api) {

// Register a nodeaspect path node/%node/forum
// Register a nodeaspect path node/%node/wiki
// Register a nodeaspect path node/%node/wiki/view
// Register a nodeaspect path node/%node/wiki/edit
// Register a nodeaspect path node/%node/members

// Register view modes
$api->viewMode('group_forum', 'Group discussions');
$api->viewMode('group_wiki', 'Group wiki');
$api->viewMode('group_wikiedit', 'Group wiki edit');
$api->viewMode('group_members', 'Group members');

* Implements hook_nodeaspect_page()
* This is called during menu_get_item().
function bw_groups_nodeaspect_page($node, $suffix, $api) {

// This stuff is specifically for node type "group".
if ($node->type === 'group') {
$u = $GLOBALS['user'];
$is_member = og_is_member($node->nid);


Simplenews SMS

Basic Description

Adds SMS Functionality to Simplenews using Twilio.

Specifically this module adds a new field to each newsletter node type. This textfield contains the SMS version of the news item.

Users can subscribe to the SMS messages via text message.

Once users confirm their desire to receive the SMS messages, all newsletters that are sent, and that have text in the SMS message field will be sent to all users who have subscribed.

Allows you to send a test text message just as you can send a test newsletter.