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

49,185 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.

Chaos Tool Suite (ctools)

This suite is primarily a set of APIs and tools to improve the developer experience. It also contains a module called the Page Manager whose job is to manage pages. In particular it manages panel pages, but as it grows it will be able to manage far more than just Panels.

For the moment, it includes the following tools:

  • Plugins -- tools to make it easy for modules to let other modules implement plugins from .inc files.
  • Exportables -- tools to make it easier for modules to have objects that live in database or live in code, such as 'default views'.
  • AJAX responder -- tools to make it easier for the server to handle AJAX requests and tell the client what to do with them.
  • Form tools -- tools to make it easier for forms to deal with AJAX.
  • Object caching -- tool to make it easier to edit an object across multiple page requests and cache the editing work.
  • Contexts -- the notion of wrapping objects in a unified wrapper and providing an API to create and accept these contexts as input.
  • Modal dialog -- tool to make it simple to put a form in a modal dialog.
  • Dependent -- a simple form widget to make form items appear and disappear based upon the selections in another item.
  • Content -- pluggable content types used as panes in Panels and other modules like Dashboard.

Token

Provides additional tokens not supported by core (most notably fields), as well as a UI for browsing tokens.

See full list of modules that use or provide tokens or the list of open issues tagged with 'token'.

Pathauto

Pathauto logo

The Pathauto module automatically generates URL/path aliases for various kinds of content (nodes, taxonomy terms, users) without requiring the user to manually specify the path alias. This allows you to have URL aliases like /category/my-node-title instead of /node/123. The aliases are based upon a "pattern" system that uses tokens which the administrator can change.

Webform

Webform logo

The Webform module allows you to build any type of form to collect any type of data, which can be submitted to any application or system. Every single behavior and aspect of your forms and their inputs are customizable. Whether you need a multi-page form containing a multi-column input layout with conditional logic or a simple contact form that pushes data to a SalesForce/CRM, it is all possible using the Webform module for Drupal 8/9.

Views (for Drupal 7)

You need Views if

  • You like the default front page view, but you find you want to sort it differently.
  • You like the default taxonomy/term view, but you find you want to sort it differently; for example, alphabetically.
  • You use /tracker, but you want to restrict it to posts of a certain type.
  • You like the idea of the 'article' module, but it doesn't display articles the way you like.
  • You want a way to display a block with the 5 most recent posts of some particular type.
  • You want to provide 'unread forum posts'.
  • You want a monthly archive similar to the typical Movable Type/Wordpress archives that displays a link to the in the form of "Month, YYYY (X)" where X is the number of posts that month, and displays them in a block. The links lead to a simple list of posts for that month.

Views can do a lot more than that, but those are some of the obvious uses of Views.

Views for Drupal 8

Views is in Drupal 8 core! Please open all Views-related issues for your D8 sites in the Drupal core issue queue.

Views for Drupal 6

Views on Drupal 6 is supported by the D6 LTS vendors and not directly supported by the module's maintainers.

Libraries API

🇺🇦

This module is maintained by Ukrainian developers.
Please consider supporting Ukraine in a fight for their freedom and safety of Europe.

The common denominator for all Drupal modules/profiles/themes that integrate with external libraries.

This module introduces a common repository for libraries in sites/all/libraries resp. sites/<domain>/libraries for contributed modules.

External libraries
Denotes libraries ("plugins") that are neither shipped nor packaged with a project on drupal.org. We do not want to host third-party libraries on drupal.org for a multitude of reasons, starting with licensing, proceeding to different release cycles, and not necessarily ending with fatal errors due to conflicts of having the same library installed in multiple versions.

Drupal 7 only has built-in support for non-external libraries via hook_library(). But it is only suitable for drupal.org projects that bundle their own library; i.e., the module author is the creator and vendor of the library. Libraries API should be used for externally developed and distributed libraries. A simple example would be a third-party jQuery plugin.

Metatag

Metatag config interface on Drupal 8.

The Metatag module allows you to automatically provide structured metadata, aka "meta tags", about a website. In the context of search engine optimization, when people refer to meta tags they are usually referring to the meta description tag and the meta keywords tag that may help improve the rankings and display of a site in search engine results. In addition, the module provides support for meta tags (Open Graph Protocol from Facebook, Twitter Cards from Twitter) that allow control of how content appears when shared on social networks.

jQuery Update

Upgrades the version of jQuery in Drupal core to a newer version of jQuery.

The current stable release of jQuery Update - the only one with official Security Coverage - is 7.x-2.7 from 2015.

In 2022 a new stable release will be made from the 7.x-4.x branch, and all other branches and releases will be deprecated.

Field Group

fieldgroup_03.png

Fieldgroup will, as the name implies, group fields together. All fieldable entities will have the possibility to add groups to wrap their fields together. Fieldgroup comes with default HTML wrappers like vertical tabs, horizontal tabs, accordions, fieldsets or div wrappers.

The field group project is a follow-up on the field group module in CCK.

CAPTCHA

Image CAPTCHA example

A CAPTCHA is a challenge-response test most often placed within web forms to determine whether the user is human. The purpose of CAPTCHA is to block form submissions by spambots, which are automated scripts that post spam content everywhere they can. The CAPTCHA module provides this feature to virtually any user facing web form on a Drupal site.

IMCE

IMCE Logo

IMCE is an image/file uploader and browser that supports personal directories and quota.

Date

Date Popup module

🇺🇦

This module is maintained by Ukrainian developers.
Please consider supporting Ukraine in a fight for their freedom and safety of Europe.

This package contains both a flexible date/time field type Date field and a Date API that other modules can use.

The Drupal Handbook pages are at Date/Calendar Documentation.

Be sure to read Debugging Information before reporting a problem. Going through those steps may resolve your problems and will help provide enough information to tell if this is a bug.

Google Analytics

Google Analytics for Drupal configuration page

Adds the Google Analytics web statistics tracking system to your website.

The module allows you to add the following statistics features to your site:

  • Single/multi/cross domain tracking
  • Selectively track/exclude certain users, roles and pages
  • Monitor what type of links are tracked (downloads, outgoing and mailto)
  • Monitor what files are downloaded from your pages
  • Custom dimensions and metrics support with tokens
  • Custom code snippets
  • Site Search support
  • AdSense support
  • Demographics and Interests support (formerly known as DoubleClick remarketing support)
  • Anonymize visitors IP address
  • DoNotTrack support (non-cached content only)
  • Drupal messages tracking
  • Modal dialog tracking (Colorbox)
  • Access denied (403) and Page not found (404) tracking
  • Cache the Google Analytics code on your local server for improved page loading times
  • Enhanced Link Attribution support
  • User ID tracking across devices
  • Changing URL fragments can be tracked as pageviews
  • Debug mode with analytics_debug.js

Admin Toolbar

Admin Toolbar

What is the Admin Toolbar module?

The Admin Toolbar module intends to improve the default Toolbar (the administration menu at the top of your site) to transform it into a drop-down menu, providing a fast access to all administration pages.
The module works on the top of the default toolbar core module and is therefore a light module and keeps all the toolbar functionalities (shortcut / media responsive).

CKEditor 4 - WYSIWYG HTML editor

This module will allow Drupal to replace textarea fields with the CKEditor 4 - a visual HTML editor, usually called a WYSIWYG editor. This HTML text editor brings many of the powerful WYSIWYG editing functions of known desktop editors like Word to the web. It's very fast and doesn't require any kind of installation on the client computer.

CKEditor 4 is reaching its end-of-life in 2023! CKSource (the maintainer of CKEditor 4) is ending security coverage at the end of 2023, after more than a decade.

To ease the transition to CKEditor 5 (in Drupal 9.5 and Drupal 10.0), it is possible to use the 1.0.x branch of this project until contributed and custom modules are ready. Once Drupal 9 is end-of-life or once CKEditor 4 no longer receives security updates (whichever is earlier), the Drupal core maintainers will no longer provide security coverage for the 1.0.x branch of this module. This project will be marked unsupported at that time.

What is CKEditor?

CKEditor is the far superior successor of FCKeditor. The editor has been rebranded and completely rewritten. It is now much faster (the code has been optimized), loads faster (the number of files has been reduced, so the browser will perform less HTTP requests) and developer-friendly.

Useful links

Redirect

Provides the ability to create manual redirects and maintain a canonical URL for all content, redirecting all other requests to that path.

Features

  • Common API for loading, saving, and deleting redirects.
  • Case-insensitive redirect matching with a hook to allow other modules to narrow-down the candidate redirects.
  • Redirect counter and last used timestamp, with automatic cleanup of inactive redirects. (Provided by Redirect Metrics in D8)
  • Integration with Drupal's page cache to optimize redirects and performance.
  • Complete individual redirect access API.
  • Views API integration.
  • D8: Maintaining a canonical path and redirecting alternative URL's like non-aliased path, path without language prefixes and so on (Previously provided by Global redirect)
  • D8: Separate Redirect 404 module that logs aggregated 404 request (can suppress them in the default log) and allows to create redirects from them
  • D8: Separate Redirect Domain module allows wildcard and domain redirects

Entity API

This module extends the entity API of Drupal core in order to provide a unified way to deal with entities and their properties. Additionally, it provides an entity CRUD controller, which helps simplifying the creation of new entity types.

Requirements

  • Drupal 7.2 or later; suggested Drupal >= 7.15

Documentation

You can find documentation in the handbooks. Also check the README and the provided API docs in entity.api.php.

Overview

For site-builders

This is an API module, so it doesn't provide any end-user features. However, it provides some entity generic functionality to other modules that site-builders may leverage:

  • A Views display plugin and field to render or link to any entity (by view-mode)
  • A CTools content plugin to render any entity (by view-mode)

Views Bulk Operations (VBO)

Views Bulk Operations (VBO)

This module provides a bulk operations functionality integrated with Views, with many additional features like clean API for developers, batching and persistent selection comparing to the Drupal 8+ core bulk form. For Drupal 7 it is the only tool providing such features.

Paragraphs

Overview

Paragraphs is the new way of content creation!
It allows you — Site Builders — to make things cleaner so that you can give more editing power to your end-users.

Instead of putting all their content in one WYSIWYG body field including images and videos, end-users can now choose on-the-fly between pre-defined Paragraph Types independent from one another. Paragraph Types can be anything you want from a simple text block or image to a complex and configurable slideshow.

Devel

August 2022

  • A new Devel 5 is available. It is the recommended release for Drupal 9 and 10. The webprofiler submodule was moved from Devel to WebProfiler project
  • Devel 4 (and prior branches) are now minimally supported.

Development and Issue tracking for this project is at
https://gitlab.com/drupalspoons/devel

Colorbox

Logo

Colorbox is a light-weight customizable lightbox plugin for jQuery. This module allows for integration of Colorbox into Drupal.

Images, iframed or inline content etc. can be displayed in a overlay above the current page.

Features

The Colorbox module:

Better Exposed Filters

BEF Basic Settings

The Better Exposed Filters module replaces the Views' default single- or multi-select boxes with radio buttons or checkboxes, respectively. Description fields and Select All/None links can be added to exposed filters to make for a better user experience.

Views Filters is a powerful tool to refine the results returned by a given view. When you expose a filter, you allow the user to interact with the view making it easy to build a customized, advanced search. For example, exposing the node type field as a filter lets your site visitor limit their search queries to just blog entries. Better Exposed Filters gives you greater control over the rendering of exposed filters.

Why use this module? Because it provides a better user experience than the default option. Try telling a client that they should click on an option, then scroll to the next option and ctrl+click on it. Don't just click 'cause you'll lose your first selection. Oh, and ctrl+click again to unselect an option... Yeah, not user friendly.

People understand checkboxes and radio buttons.

What else can I do with BEF?

The BEF handbook page provides some basic recipes making exposed filters a much better user experience.

  • Add help text for each exposed filter

Entity Reference Revisions

Overview

Adds a Entity Reference field type with revision support.
It's based on the core Entity Reference module but allows you to reference a specific entity revision. This is useful for modules like Paragraphs and Inline Entity Form.

Backup and Migrate

Back up and restore your Drupal MySQL database, code, and files or migrate a site between environments. Backup and Migrate supports gzip, bzip and zip compression as well as automatic scheduled backups.

With Backup and Migrate you can dump some or all of your database tables to a file download or save to a file on the server or offsite, and to restore from an uploaded or previously saved database dump. You can choose which tables and what data to backup and cache data is excluded by default.

Link

Module description

The link module provides a standard custom content field for links. With this module, links can be easily added to any content types and profiles and include advanced validating and different ways of storing internal or external links and URLs. It also supports additional link text title, site-wide tokens for titles and title attributes, target attributes, CSS class attribution, static repeating values, input conversion, and many more.

Requirements / Dependencies

  1. Drupal 6: Custom content module (CCK)
  2. Drupal 7: Fields API is provided already by core [no dependencies].
  3. Drupal 8: Link module is in core now. No module installation needed. Yay! Don't forget to activate it. It's deactivated by default.

INFO Since some misleading user reports we need to clarify here - Link module is NOT about to add links to any menus or the navigation nor primary/secondary menu. This can be done with default menu module (part of Drupal core). The Link module provides an additional custom field for storing and validating links to be added with any content type, which means another input block additional to your text-body, title, image and any other input you can make on new content creation.

Pages