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

50,467 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)

CTools is a developer toolkit that provides APIs, etc. to improve the developer experience. Most often you don't install this directly; it's a dependency of some other module you want.

Token

Provides placeholder variables (tokens) and an interface for browsing available tokens. As records are displayed, contextual values are replaced, such as [node:title] or [user:name].

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

Build forms to collect data from site visitors. Create everything from a simple contact form to a multi-page form with many fields, conditional logic, and email notifications.

Metatag

Metatag config interface on Drupal 8.

Allows generating meta tags for site content, from simpler tags like "description" and "image_src", to more advanced tags like OpenGraph (for Facebook, LinkedIn, etc), Twitter Cards and Dublin Core.

Admin Toolbar

Improves the default administration toolbar menu by turning it into a drop-down, for fast access to all administration pages. Can also provide access to additional tools from the admin menu.

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.

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.

CAPTCHA

Drupal CAPTCHA module

Add challenge-response tests to user-facing forms on your site to protect against spambot submissions. Other CAPTCHA types are supported via additional modules.

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 officially reaching its end-of-life soon

At the end of Q2 2023 CKSource (the maintainer of CKEditor 4) is ending security coverage for CKEditor 4, after more than a decade.

CKEditor 4 support in Drupal extended until the end of 2023

Due to the long-term strong relations between CKEditor and Drupal, the support for CKEditor 4 in Drupal is going to be provided by the end of 2023 by CKSource. We recommend however migrating to CKEditor 5 in the nearest future, to avoid last-minute upgrades at the end of the year.

Support for official CKEditor 4 plugins provided by contributed modules

Some CKEditor 4 plugins developed by CKSource are available in Drupal thanks to contributed modules. CKSource will be supporting module maintainers and provide updated versions of CKEditor 4 plugins whenever there is a security update concerning plugins they are depending on until the end of 2023.

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

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.

Google Analytics

Google Analytics for Drupal configuration page

Users must upgrade to Google Analytics 4.0.2 (Drupal 9.3+), 4.0.1 (Drupal 8+), or 7.x-2.8+ before the legacy GA service shuts down July 1st 2023. Google suggests users install the new 2.x version of Google Tag for future Google Analytics support.

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

Entity Reference Revisions

Adds an Entity Reference field type with revision support, allowing specific entity revisions to be references. This is useful for modules like Paragraphs and Inline Entity Form.

jQuery Update

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

IMCE

IMCE Logo

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

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)

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.

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.

XML sitemap

The XML sitemap module creates a sitemap that conforms to the sitemaps.org specification. This helps search engines to more intelligently crawl a website and keep their results up to date. The sitemap created by the module can be automatically submitted to Ask, Google, Bing (formerly Windows Live Search), and Yahoo! search engines. The module also comes with several submodules that can add sitemap links for content, menu items, taxonomy terms, and user profiles.

Mail System

Admin UI

Provides an Administrative UI and Developers API for managing the used mail backend/plugin.

The module is ready to be used in Drupal 8, there are no known issues.

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.

Features

The features module enables the capture and management of features in Drupal. A feature is a collection of Drupal entities which taken together satisfy a certain use-case.

Inline Entity Form

🇺🇦

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

Provides a widget for inline management (creation, modification, removal) of referenced entities.
The primary use case is the parent -> children one (product display -> products, order -> line items, etc.), where the child entities are never managed outside the parent form.
Existing entities can also be referenced.

Supports commerce_product_reference, commerce_line_item_reference and entityreference fields.
Requires integration code to be provided for each entity type that can be referenced.
Supports the commerce_product (including Commerce AutoSKU integration) and commerce_line_item, node, taxonomy_term entity types out of the box.
Integration for other entity types has not yet been written, patches welcome.

See the README for information about getting started and integrating other entity types.

This module was covered on Lullabot Module Monday and Commerce Module Tuesday.

Requires the Entity API module.
Requires Drupal 7.15 or newer.

Pages