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

2,208 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.

Domain Access Date Timezone

This lightweight module integrates Domain Access with Date Timezone for easy timezone selection. Requires Domain Access and Date modules to work.

Views Date Range Filters

Adds filter options for date range fields. Install and rebuild cache to see the options.

Conditional Fields

Conditional Fields node form example

Conditional Fields is an admin user interface with the ability to modify fields appearance and behavior on certain conditions when viewing content defined by dependencies between fields based on their states and values.

Details

Conditional Fields allows you to manage sets of dependencies between fields. When a field is “dependent”, it will only be available for editing and displayed if the state of the “dependee” field matches the right condition. When editing a node (or any other entity type that supports fields, like users and categories and custom entities like build by ECK), the dependent fields are dynamically modified with the States API. A simple use case would be defining a custom “Article teaser" field that is shown only if a "Has teaser" checkbox is checked. Or a boolean field, which if checked, makes another field invisible. But much more options are available.

Weight

Drupal 10 version

Provides a weight field that can be added to any fieldable entity. The weight field can be used to provide customized sorting.

Version 8.x-3.x is currently the recommended and supported release for Drupal 8/9/10.

Drupal 7 version

Adds a weight option to enabled node types. Nodes with lower weight will float to the top of lists, while heavier items will sink.

You might be interested in reading Comparison of Node/Entity Ordering Modules.

Version 7.x-3.x is currently the recommended and supported release for Drupal 7. It is a complete rewrite to take advantage of new features available in Drupal 7.
The 7.x-1.x version is no longer supported.

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.

Entity Clone

Entity clone

What is this module?

This module add a new entity operation which allows to clone many of the entities (config & content) provided by the Drupal core.

Memcache API and Integration

Memcached logo

7.x-1.7 regression

If you're using the 7.x branch of Memcache, please be aware that 7.x-1.7 (released 16 July 2020) introduced an unintentional dependency on PHP 7. This is fixed in 7.x-1.8.

Features

This module provides integration between Drupal and Memcached with the following features:

  • An API for using Memcached and the PECL Memcache or Memcached libraries with Drupal.
  • Memcache backends for the following systems (all drop-in):
    • Caching (memcache.inc)
    • Locking (memcache-lock.inc)
    • Sessions (memcache-session.inc) (D6 only)
  • A module that provides a comprehensive administrative overview of Drupal's interaction with Memcached and stats.
  • A set of tests that can be run to test your memcache setup.

File (Field) Paths

The File (Field) Paths module extends the default functionality of Drupal's core File module, Image module and many other File upload modules, by adding the ability to use entity based tokens in destination paths and file names.

In simple terms, File (Field) Paths allows you to automatically sort and rename your uploaded files using token based replacement patterns to maintain a nice clean filesystem.

 

Features:

  • Configurable file paths now use entity tokens in addition to user tokens.
  • Configurable file names.
  • Support for file based fields, including but not limited to:
    • Drupal core File module
    • Drupal core Image module
    • Video module.
  • File path and filename cleanup options:
    • Remove slashes from tokens.
    • Filter out words and punctuation by taking advantage of the Pathauto module.
    • Convert unicode characters into US-ASCII with the Transliteration module.
  • [D7] Automatically updates unprocessed file paths in any Text fields on the entity.
  • Retroactive updates - rename and/or move previously uploaded files.
  • Active updating - actively rename and/or move previously uploaded files.
  • Automatically create an redirect when moving uploaded files using the Redirect module.

Date Timepicker

Jonthornton jQuery Timepicker

The Date Timepicker module — a new project wearing the OPTASY team's signature — adds one of the 3 most popular jQuery plugins to any DateTime field in the Widget settings.

Providing custom options for each plugin and being conveniently extensible, as well, it makes a “tool” that easily adapts to all date/time field customization scenarios.

For other “samples” of our work so far, as a Drupal team, pay us a visit on Twitter or LinkedIn.

Features:

  • Supports the most popular Timepicker jQuery plugins
  • Provides custom options for each plugin support
  • Its functionality can be extended (adding your own custom jQuery plugins) via a custom-built module with the hook_timepicker_libraries()

Avaliable Timepicker jQuery plugins

Compact date/time range formatter

Admin interface for date and time range formats

The compact date/time range formatter module provides the ability to display date/time range fields in a more compact form, by omitting the month or year where it would be duplicated.

Shortcode

Shortcodes are actually macros to be used in the text of contents. These macros change the text of the content and format the given part through the theme engine. This module defines few basic shortcodes only. (New ones will come.)

Shortcode is an API that handles the shortcode macros for text formats. You can add your own shortcode tags via this API. All tags are themeable and new tags can be provided by other modules.

Initial work is based on the Wordpress Shortcode API but was reworked for Drupal. You can nest tags (within same tags too), no need for special recursion handling.

Macros come with this module

Shortcode basic tags module

  • [quote] Replace the given text formatted like as a quote.
  • [img] Show an image.
  • [highlight] Insert a span with highlight css class around the text.
  • [button] Insert a link formatted like as a button.
  • [dropcap] Replace the given text formatted like as a dropcap.
  • [item] Insert div or span around the text with some css classes.'
  • [clear] Insert a float-clearing div for a proper layout.
  • [link] Makes an aliased link to the given path.

Field Validation

Field validation

Custom validation rules for your field instances. Multiple validators are available: regular expression, unique value, min or max length, banned words, numeric value range, must be empty and many more. In Drupal 8 validators are plugins, create your own validator or extend some of the existing.

Date Reminder

View of pending reminders

Overview

Date Reminder allows a registered user to request an email reminder to be sent at a specified time before an event. Generally these would be calendar events, but any node type that has a CCK datetime can support reminders.

Features

  • When reminders are enabled for a node, registered users (with the appropriate privilege) can request reminders to be sent before each occurrence of the date/time. The user specifies how long before the date/time to send the reminder.
  • When reminders are enabled for a node type, anyone who can edit the node can enable or disable reminders for that node.
  • Reminders are sent using the Messaging system. The usual reminder method is email, but other messaging transports should work. (Well, not Drupal 7. The Drupal 7 version just uses straight email.)
  • System administrator can control:
    • Which node types allow reminders, and which date field (if there are several) in a type to use as the basis of reminders.
    • Which (registered) users can request reminders.
    • Which users can request reminders to arbitrary email addresses instead of their own.
    • Which users can see or administer other users' reminders.
    • Content of reminder messages.
    • If and how long reminders should be kept after last date occurrence.
    • The list of allowed lead times for reminders from which users can select.

An effort is under way to move much of the documentation here to the Date Reminder section of the Site Builders Guide. Currently that document is very incomplete, but watch there. Information on this module page will gradually be moving there.

Office Hours

An example of the office_hours formatter with all_day, midnight, exceptions, season

Defines a 'weekly office hours' field type, allowing you add a field to any Content type, in order to display when a location is open or closed on a weekly basis.

Purge

The modular external cache invalidation framework.

Fullcalendar View

This is a View plugin module that provides a calendar view format powered by FullCalendar JavaScript library

JSON:API Extras

The JSON:API module in code provides zero configuration out of the box. Use JSON:API Extras to customize your API.

Views Bulk Edit

Allows bulk updating of entity values via views bulk actions. By default it is configured for nodes but can be configured for other entity types.

Content-Security-Policy

Content Security Policy Module Configuration Form - Directives

Configure a Content-Security-Policy header for your Drupal site to detect and mitigate the risk of Cross Site Scripting (XSS) and other vulnerabilities.

Recurring Dates Computed Occurrences

Computed field listing Recurring Date field occurrences. Can be used to add dates to an entity in a search. As a light, single entity, alternative to Date Occur.

Facet API

Facet displays

Overview

The Facet API module allows site builders to easily create and manage faceted search interfaces. In addition to the UI components that come out of the box, themers and module developers can build their own widgets that can optionally be contributed back to Drupal.org. Facet API works with the core Search, Search API, and Apache Solr Search Integration modules (including Acquia Search) meaning that code and configuration can be reused as-is with the most popular search solutions available to Drupal. Refer to the documentation for more details.

How to Contribute

Datepicker

Datepicker block example

This module extends the date_popup module (from the date project) to provide a JQuery UI inline datepicker, rather than a popup out of a

Features Extra

Features Extra provides faux exportables (via Features) of several site-building components.

Taxonomy

Drupal 6: Supports exporting taxonomy vocabularies. To export a vocabulary, install FE taxonomy, go to vocabulary edit page, assign it a "machine name," then export it with Features as usual. As a bonus, this allows you to edit the "module" property of a vocabulary. Views support (by machine name) is also provided.

Drupal 7: Exporting vocabularies is supported natively by Features in Drupal 7 so it has been removed from this module. If you need to export taxonomy terms in addition to the vocabularies, you can do this with the UUID Features Integration module.

Nodequeue

Only nodequeue definitions are supported. To export a queue, install FE Nodequeue, edit your nodequeue, assign it a "machine name," then export it with Features.

Block

To export a block, install FE Block, edit your block, give it a "machine name," export it with Features. You can export block settings (region settings, visibility settings, ...) of any block, and the content of blocks created with the Block module from Drupal core.

Pages