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


The predelete module hooks into the deletion process of nodes. By default it is not possible to react on a deleteion attempt before the deletion of a node. This is cured by providing the hook_predelete_node(). Other modules may implement the hook and add custom checks on the node that is about to be deleted.

The module ships with an API documentation and an example module that provides a single checkbox field. Nodes that contain the field could only be deleted if the checkbox is checked.


Block display duration (in days)

Block Display Control Type Listing

This module allow to control the visibility of a block in time duration. The time duration can be set in number of days.

How time duration calculation works.

  • No. of days (If block have the value for start date & and end date)
  • Start date to Infinite time (If block have only start date value)

Why This
Using this module a block can be set as banner for display specified time


Content Mask


Mask parts of your content for certain users based on their role or UID. The module adds the content_mask shortcode for defining parts that should be masked, e.g.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla ac ligula non augue scelerisque dapibus vel et ante. Pellentesque volutpat nibh ut ipsum bibendum euismod. Ut nibh nisi, aliquam sed ornare eu, hendrerit quis nunc. Nam vel nunc sed erat dapibus accumsan id eget nunc.

[content_mask uid="1"]
Mauris ornare augue ac augue tempor auctor. Praesent justo ligula, convallis quis semper a, eleifend ut mi. Etiam eleifend aliquet quam, accumsan eleifend erat vestibulum at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

[content_mask role="editor|administrator"]
Praesent rutrum, ligula vitae porta faucibus, nunc ante consequat est, in imperdiet eros odio vitae nunc.

The module uses Wordpress's shortcode regex as base for handling the masked


  • Filter


  1. Enable the module.
  2. Go to admin > configuration > content authoring > text formats.
  3. Click on a text format you would like to have content_mask support.


Default Node Gallery

Add-on for the Node Gallery module that creates and maintains default gallery for every user.
The main goal of the module is to make image sorting easy, optional task, and to streamline the uploading process.


Brain Forum Moderation


With Brain Forum Moderation you can add "Moderation" field to your
Brain Forum posts.
It creates an ajax link that opens a popup with variety of moderation options when clicked.

Development has just started so it will take some time before even the basic features are ready for production.
You can help by opening feature requests so i can figure out which features are actually needed.
These are some planned features:


Field Access

Field Access API provide an wrapper to let other modules easily implement any access criteria for fields, both for view and edit mode.
It let developers define any custom rule for granting or not access to a specific field.

It is an API module, so doesn't provide any end-user feature on its own, and is intended for developers. Install it only if another module requires it or you want to make your own implementation.


Taxonomy simple access

Taxonomy simple access provides a simple way to grant access to a term or its children (other terms, nodes) by roles.


Private comment

This module allows you to restrict access to a comment by changing the theme of the comment if there is private.

Installation and configuration

Normally install the module in sites/all/modules, and enable it,
then go to admin/structure/types/manage/YOUR_CONTENT_TYPE/comment/fields and add a boolean field with the machine name field_private_comment.
Set it with
On value : Private comment
Off value : Public comment

Configure permission in admin/people/permissions#module-private_comment


Field Paywall

Field Paywall allows developers to replace fields on entities with a message depending on user permissions. It's useful for giving visitors teasers to content before advising them to sign up to see more.

Walkthrough video

A walkthrough video is available at http://youtu.be/a-Y8tiHuvaQ with a full demonstration of how to use field_paywall and how to override field_paywall templates.


Domain Profile

This module allows the Domain module to be used with Drupal core's profile fields.

It notably does:


Lesser Forms

Configuration screen for Lesser Forms.

The goal of Lesser Forms is to hide configuration options from your content creators / content managers. They probably don't need to modify this.

You wouldn't want to bother them with the pathauto-alias, do you?


Domain Override

Allows overriding page nodes on a domain-specific basis.


  • Provides an "Override" tab on node pages that removes the current domain from the node's domain access, clones the node, and publishes the clone to only the current domain.
  • Copies translations of the node being overridden (if any), too, so they're considered translations of the newly created node.
  • Sidesteps need to use multiple url_alias tables (with Domain Prefix). Makes Drupal interpret the URL alias for a node that's been overridden as a path to this domain's version of the node. Example: node 1 (the node at node/1) is published to all domains with the URL alias contact-us. You visit the node from the subdomain "cats" and select the "Override" tab. Now a new node has been created (node 2), that's published only to the "cats" subdomain, and node 1 is no longer published to the "cats" subdomain. When you visit http://site/contact-us you'll see the content of node 1. However, when you visit http://cats.site/contact-us, you'll see the content of node 2 -- node 1's override.


URL alias restriction

Drupal is quite talkative in terms of showing off it's content. Often it makes content accessible which we actually don't want to show. That happens for instance very easily, if you're using nodes as content containers only - never really wanting to show the actual node pages of these containers.

Thanks to taxonomy node and similiar listings + some SEO javascript "callling home" often these unstyled content containers land on public search indexes as soon as an Administrator has an accidental look at these listing or node pages.


Access Private

This module allow accessing private nodes with a direct link.


Ctools Compare ID

Settings form

The module provides a ctools plugins to provide access control by checking for equality ID.

Supported entities for check access:

  • Node
  • User

An example of using the module:

  • Deny the display of the page to a particular user, if you know its identifier.
  • Overriding a specific page.


Restrict Page IP

Provides administrator to restrict/allow access to pages based on user IPs.

* IPs can be an individual IP or range of Ips.
* Page url can have wild cards like 'blog/*'
* Restricted user IPs will be denied showing
custom error message (can be modified on module's configuration page)

Note : User 1 has been skipped from these restrictions.


Le Gate- A generalized age gate solution

Le Gate is a simple module that restricts user access to pages on a site, and then provides two mechanisms
by which users can then gain access. It was first developed as an "age gate" module to allow access to a site
only when an appropriate age is selected (>15yo for COPPA). But then we decided to make it more generic.

When a user tries to access a restricted page they are redirected to a configurable and themable page
(the "le-gate" page) that presents one of two ways to gain access. When access is gained a javascript cookie is set.


Panelizer Variants

Panelizer Variants

This module adds the functionality to have Panelizer Variants based off of List Defaults in Panelizer Full Page Override. What this does is allows you to have multiple layouts for one content type based off a field selection. The functionality doesn't seem to really exist yet. WELL, now it does!


OG Node Access

When you update the privacy settings of an Organic Group, you may need to rebuild the node access settings of the nodes assigned as posts to that group. Unfortunately the node access rebuild system focuses on rebuilding all nodes, instead of just those affected.

This module has forked the node rebuild system to allow developers to target one or more Organic Group's for node rebuild. It has the following features:

  • Automatically detect when group privacy changes as the result of the node edit form and directs users automatically to the batch edit screen.
  • Integration with Spaces allowing group administrators to rebuild node access for their group at need.
  • Developer API in the form of a og_node_access_needs_rebuild() function to add new groups for rebuild.
  • Plays nicely with general node access rebuild flag, allowing general node access to trump og-specific rebuild.

This is in response to #1101738: Repairing node access permissions without rebuilding all, thanks to @btopro for getting the ball rolling.


This module is set for maintenance and bug fixes only and is unlikely to get much in the way of new features. Good, minimal feature patches are welcome. As we currently have no use for a D7 version of this module, we are open to requests to create and co-maintain a D7 branch.


Disable Field


* Disable Field module help(s) you to disable the field of any content type and
commerce product too based on Role selected By Admin.

* Install as you would normally install a contributed drupal module. See:
for further information.


Restrict Abusive Words

Restrict Abusive Words

The Restrict Abusive Words module restrict to use words or phrases in forms all over the site content. The Restriction can be applied on content form, comment form, user profile form, user registration form and webform.Restriction can also be applied based on user roles.


GeoIP Role

GeoIP Role allows to attach countries to roles.

GeoIP Role allows to dynamically grant roles to the current user according to his IP address location.
It depends on the GeoIP API module.

Currently, GeoIP Role allows to attach countries to roles, thus defining geographical zones.
When a user visits your site, he dynamically gain the role(s) attached to the country reported by his IP address.

GeoIP Role may be used with any other module like Nodeaccess that controls access based on user roles.


OG Announce

Extends the Organic Groups module to allow creation of announcement only groups, into which only group administrators may post.


Pirobox Limit

Example of use Pirobox Limit

The Pirobox Limit module extends the Pirobox module with limiting and access functionalities.


  • Limiting the display of image groups.
  • Define a user role can see full image groups.
  • Configure a bypass to allow content owners to see full image groups.
  • Limits are configurable per content type and per Pirobox image field. In other words: per image group or respectively per gallery.
  • The limiting works also with multiple galleries for example on teaser pages.

The limiting-action is possible in 2 ways:

  1. Quietly
  2. Busily


  • Image groups are limited and no other actions.

It is possible to inform the visitor.

  • Display one, two or three limited images.
  • Use different image styles for the limited images in the content and the Pirobox.
    It is recommended to use the ImageCache Actions module.
  • Use an different Pirobox caption text for the limited images.
    The different caption text is configurable.

The quietly and busily settings are generally configurable for all limited galleries.

Required modules