Add functionality and customize your Drupal application with thousands of projects contributed by our amazing community.

51,465 modules match your search

A module is code that extends Drupal's by altering existing functionality or adding new features. You can use modules contributed by others or create your own. Learn more about creating and using Drupal modules.

Rabbit Hole

What is this?

Rabbit Hole is a module that adds the ability to control what should happen when an entity is being viewed at its own page.

Perhaps you have a content type that never should be displayed on its own page, like an image content type that's displayed in a carousel. Rabbit Hole can prevent this node from being accessible on its own page, through node/xxx.

Options

This works by providing multiple options to control what should happen when the entity is being viewed at its own page. You have the ability to

  • Deliver an access denied page.
  • Deliver a page not found page.
  • Issue a page redirect to any path or external url.
  • Or simply display the entity (regular behavior).

This is configurable per bundle and per entity. There is also a permission that lets certain roles override Rabbit Hole completely.

It's possible to evaluate PHP for the redirect path. This makes it possible to execute different redirects based on whatever logics you need. Perhaps you want a user to be able to view nodes that he has created, but no one else's. The PHP evaluation is limited to users with the appropriate permission, so there's no unnecessary security breach.

Supported entities

Node clone

The clone module allows users to make a copy of an existing item of site content (a node) and then edit that copy. The authorship is set to the current user, the menu and url aliases are reset, and the words "Clone of" are inserted into the title to remind you that you are not editing the original content.

Menu Admin per Menu

By default, Drupal allows only users with the Administer menus and menu items permission to add, modify or delete menu items.

Menu Admin per Menu allows to give roles per menu admin permissions without giving them full admin permission.

For instance, you may let certain users manage the items of the Main or Navigation menus but not those of the Management menu.

Try out a demonstration
Watch a screencast

Link Attributes widget

Screenshots of the link attributes UI

Overview

Link attributes widget provides an additional widget for the link field found in Drupal core.

The widget allows users to set attributes on their link.

Security Kit

Screenshot

SecKit provides Drupal with various security-hardening options. This lets your mitigate the risks of exploitation of different web application vulnerabilities.

SecKit facilitates certain mitigations for Cross-site Scripting, Cross-site Request Forgery, and Clickjacking, among other issues.

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.

FileField Sources

filefield-sources.png

FileField Sources is an extension to the FileField module. The FileField module lets you upload files from your computer through a CCK field. The FileField Sources module expands on this ability by allowing you to select new or existing files through additional means, including:

  • Re-use files by an auto-complete textfield
  • Attach server-side files uploaded via FTP
  • Transfer files from a remote server (cURL required)
  • Paste a file directly from the clipboard (Drupal 7 only)
  • Select existing files through the IMCE file browser

Although FileField Sources provides several built-in sources, it can be extended by any module through an API for creating new sources. Users can toggle between any of the available methods for selecting a file.

Drupal 6 Requirements:

  • CCK 2.6 or higher
  • FileField 3.5 or higher

Drupal 7 Requirements:

  • None (all modules are included in core)

Additional Sources
There are a number of modules that add additional sources to FileField Sources:

Variable

Variable module provides a registry for meta-data about Drupal variables and some extended Variable API and administration interface.

This is an API module so it must be installed only when other modules require it.

Module Developers: Please declare your variables.

Add-ons for module developers here: Variable Extra

This is a nice introduction to the module by Lullabot, Module Monday: Variable.

¿Drupal 8? #2146779: Port Variable to Drupal 8

Why?

  • So other modules can know about your module's variables and they can be translated, exported, used in views, etc.
  • You'll get automatic variable edit forms, tokens, access control and uninstall for free
  • Your module's variables will be allowed for Variable Realms being able to get values for each language (Internationalization) or Domain (Variable Domain)

Menu Breadcrumb

This module allows you to use the menu the current page belongs to for the breadcrumb, generating breadcrumbs from the titles of parent menus.

You may also:

AddToAny Share Buttons

AddToAny Logo

Share buttons for Drupal including AddToAny's universal sharing button, Facebook, Mastodon, Pinterest, WhatsApp, Reddit, SMS, email, and many more.

Large vector share buttons use AddToAny SVG sharing icons. AddToAny vector icons load efficiently, are mathematically precise, scalable to any size, and stunning on High-PPI screens such as Retina displays.

Share buttons

  • Universal sharing button
  • Modern SVG sharing buttons
  • Automatic dark mode
  • Elegant Drupal integration
  • AJAX support
  • Display on articles
  • Display on article teasers
  • Display on pages
  • Display in blocks
  • Display in views

More…

Color backport

Overview

Color is the module that was in Drupal core until Drupal 10.0.
It was deprecated in Drupal core 9.4 and moved to contrib.

Entity Usage

Media entity usage tab

This module provides a tool to track entity relationships in Drupal.

Currently the following tracking methods are supported:

Commerce Core

Commerce Core is maintained by Centarro.

Drupal Commerce powers eCommerce innovation through every stage of growth. At its core it is lean and mean, enforcing strict development standards and leveraging the greatest features of Drupal for maximum flexibility.

eCommerce platforms are often developed with an application mindset, highlighting what you can do with them out of the box. Drupal Commerce was developed with a framework first mindset, focusing on what you can build with it. The Commerce Core project was designed to enable teams to adapt to change and scale with ease.

Sponsored and maintained by Centarro.

Image URL Formatter

This module add a url formatter for image field. Then you can output image url directly.

Most of the code, maybe more than 90%, is just copy from the drupal core. I think it is stable enough.

I have created a content type, and add an image field instance to it, later i use views to export the data of this content type.And i want to output the data,then i could import it into another drupal 7 site with feeds module. What i need is the url of the image field, but i could not export the image url directly. That is why i create this small module.

Usage

(1)After install this module,then you add an image field,then you can goto this bundle's manage display page,here at format column,you can choose "Image URL" instead of "Image".

(2)When you add an image field in your views,then you config the Formatter for this field, here you can choose "Image URL" instead of "Image".

Then you can output image's URL instead of Image itself.

Compare with the method shipping with views

(1) timofey give another method that do not using this module:
Based on Drupal 7, Views 3
Add a "File Usage: File" relationship (Advanced->Relationsips)
Add a "File: Path" field, NOT "Content: Image" (Block details->Fields)
You will have limitless options on image path output. Click to Display download path instead of URI.

Plupload integration

screenshot_115.png

Provides integration for the Plupload widget into Drupal. Plupload is a GPL licensed multiple file uploading tool that can present widgets in Flash, Gears, HTML 5, Silverlight, BrowserPlus, and HTML4 depending on the capabilities of the client computer.

Security warning

In order to protect your site you should ALWAYS delete examples subfolder from Plupload library. There is a patch, that can help you to do that in one simple step or to include it in a distribution.

Compatibility warning

Library version v2.0.0 and later are currently unsupported. Latest supported version of library is v1.5.8, which can be downloaded from https://github.com/moxiecode/plupload/archive/v1.5.8.zip.

Geolocation Field

Google Maps widget

Geolocation Field defines a new field type to store geographical locations as pairs of latitude and longitude (lan,lng). The Geolocation Field can be used with all fieldable entities like nodes, users, comments, taxonomy terms, etc.

MaxLength

MaxLength allows a soft or hard character limit to be set on titles, text fields and link fields.

Configuration Update Manager

The Configuration Update Manager project contains a base module and a reporting module.

Use the base module if another project has it as a dependency (example: Features).

The report module supplements the core Configuration Manager module, by providing a report that allows you to see the differences between the configuration items provided by the current versions of your installed modules, themes, and install profile, and the configuration on your site. The report is available from the administration UI, or via Drush commands.

Job Scheduler

Simple API for scheduling tasks once at a predetermined time or periodically at a fixed interval.

Views Field View

There are a lot of cases in views where you want to embed a list inside each row. One example could be, you have a list of groups,

Chosen

chosen.png

Chosen uses the Chosen jQuery plugin to make your <select> elements more user-friendly.

Usage

By default the module will automatically apply itself to any select elements that have more than 20 options, which is a reasonable default for which having Chosen will be useful. To change or disable this automatic enhancement, you can change the selectors (or remove all selectors) from the Apply Chosen to the following elements field on the Chosen administration page.

Installation via Composer for Drupal 8-9

If you are using Composer to manage your site's dependencies, then read the README file for more information on how to set it up.
This video walks through the installation process.

Manual Installation

  1. Download the Chosen jQuery plugin.
  2. [Drupal 7] Extract the plugin under sites/all/libraries
  3. [Drupal 8-9] Extract the plugin under libraries/chosen. Use version 1.5 or higher.
  4. Download and enable the module.
  5. Configure at Administer > Configuration > User interface > Chosen (requires administer site configuration permission)

Installation via Drush

A Drush command is provided in the latest versions for easy installation of the Chosen plugin.

drush chosenplugin

The command will download the plugin and unpack it in "sites/all/libraries".
It is possible to add another path as an option to the command, but not
recommended unless you know what you are doing.

Dependencies

The 7.x-2.0-alpha2 and 7.x-2.0-alpha4 releases added a dependency on the jQuery Update module. As of 7.x-2.0-beta1 this dependency has been removed.

The Drupal 8-9 version has no dependencies.

Gin Toolbar

Helper module to bring the Gin Toolbar into the Frontend of your site.

Pages