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

51,554 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.

Tamper

Tamper is a generic plugin system for transforming data.

Computed Field

Computed Field is a very powerful field module that lets you add a custom "computed fields" to your content types. These computed fields are populated with values that you define in PHP code. You may draw on anything available to Drupal, including other fields, the current user, database tables, you name it. (Feeling the power yet? :) ) This field is literally the Swiss Army knife of fields. So start cooking up your PHP based values!

Client-side Hierarchical Select

CSHS widget

The main feature of the project is to provide a field widget for selecting taxonomy terms in a hierarchical fashion.

Clientside Validation

Drupal 8

This module adds clientside validation (aka "Ajax form validation") for all forms and webforms using jquery.validate.

Image Optimize

imageapi_optimize.png

Drupal 8+

A Drupal 8+ version of this module is in active development, a relatively stable beta version is available.
The Drupal 8+ version has been completely re-written and no longer provides an image toolkit. Optimizations are now defined as 'pipelines' that can be applied to images in various ways.
The module has built in support for core Image styles and a service allowing use in third party modules.

The module has been split into several other projects for easier maintainability and more modular installing. At least one or more processor module needs to be installed for the optimization to work.

Open Drupal 8 issues | All issues from all subprojects

Drupal 7

This is a toolkit for ImageAPI. It requires imageapi_gd or imageapi_imagemagick or any ImageAPI toolkit to work.

ImageAPI Optimize allows you to use your preferred toolkit and optimize (losslessly) the image when it is saved. Practice for web performance suggests that images should be optimized for better loading time. With this module enabled, Google's Page Speed will always give you an A in image optimize.

Image Resize Filter

The easiest end-user solution for resizing inline images.

This filter makes it easy to resize images, especially when combined with a WYSIWYG editor such as tinyMCE, CKeditor etc. Users never have to worry about scaling image sizes again, just insert an image and set it's height and width properties in HTML (this is done automatically by WYSIWYG editors) and the image is resized on output to match the HTML.

Features:

  • Automatically resizes both local and (optionally) remote images.
  • Optionally create a link to full size images from the resized inline versions.
  • Prevents inline "hot linking" of images from other sites by storing them locally.
  • Adds height and width attributes to inline images when your users are too lazy to add them.

Demos:
Image Resize Filter demo and configuration options by Lullabot.
Demo combining FileField Insert with Image Resize Filter by MustardSeed Media.

Webkit/Chrome/Safari Users:
The "resize handles" typically shown in WYSIWYGs do NOT work in Webkit-based browsers (which includes Safari and Chrome) due to a shortcoming in the implementation of these browsers. See https://bugs.webkit.org/show_bug.cgi?id=12250 and this issue for discussion: #1102294: Webkit-based browsers (Safari/Chrome) do not support resize handles.

Fullcalendar View

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

Username Enumeration Prevention

What Is Username Enumeration Prevention

By default Drupal is very secure (especially Drupal 7). However, there is a way to exploit the system by using a technique called username enumeration. Both Drupal 6 and 7 have this issue, but it is much worse for people using Drupal 6. This is because Drupal 6 does not have any built in brute force prevention. When an attacker knows a username they can start a brute force attack to gain access with that user. To help prevent this, it is best if usernames on the system are not easy to find out.

Attackers can easily find usernames that exist by using the forgot password form and a technique called “username enumeration”. The attacker can enter a username that does not exist and they will get a response from Drupal saying so. All the attacker needs to do is keep trying usernames on this form until they find a valid user.

This module will stop this from happening. When the module is enabled, the error message will be replaced for the same message as a valid user and they will be redirected back to the login form. If the user does not exist, no password reset email will be sent, but the attacker will not know this is the case.

Options Element

Options Element Screenshot

Options Element is a module that provides a better mechanism to specify select list, checkbox, and radio button options.

Protected Pages

Module description

Protected Pages modules allows the administrator to secure any page by password.

Language Icons

Language Icons

This module provides icons for language links, both for the Language switcher block and (optionally) for node links.

Shield

HTPasswd window with Shield module

Summary

PHP Authentication shield. It creates a simple shield for the site with Apache authentication. It hides the sites, if the user does not know a simple username/password. It handles Drupal as a "walled garden".
This module helps you to protect your (dev) site with HTTP authentication.

Configuration

If you don't need the authentication just leave the user field blank.

  1. enable the module
  2. go to the admin interface (admin/config/system/shield) and fill the form
  3. nothing else :)

On plain old CGI

Since Drupal 7.23 you don't need any .htaccess modification for CGI (#670454: Support HTTP Authorization in CGI environment) but if you use plain old CGI you still need a modification:
Modify .htaccess, inside <IfModule mod_rewrite.c>. Add the following line at the beginning of the section:

  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]

Media Library Form API Element

This module provides a Form API element to select a Media entity from the Media Library. This element can be used in all standalone forms.

Background Images Formatter

This module provides an image formatter that allows you to set an image in background of a tag.

SendGrid Integration

Sendgrid Logo

SendGrid Integration provides Drupal support to send emails throught SendGrid email delivery service using Web API.

Block Content Permissions

As of Drupal 10.1.x-dev, this module is no longer needed and the "Block Content" core module's permissions can be used instead. See migration notes below.

Better Formats

Better formats is a module to add more flexibility to Drupal's core input format system.

A similar module is available:
Allowed Formats

Features of Better Formats

8.x & 7.x

  • Set allowed text formats per field.
  • Set default order of text formats per field.
  • Hide format tips per role.
  • Hide more format tips link per role.
  • Hide format selection per role per entity.
  • Currently only works on Field API fields on fieldable entities implementing core style text processing. The good thing is that is most things in core and contrib.

Rename Admin Paths

Rename Admin Paths (administration)

The purpose of this module is to secure drupal backend by overriding admin path.

Overview

This module allows you to:

  • rename path like '/admin/...' to '/something/...'
  • rename path like '/user/..' to '/something else/..'

It can be effective against registration spam bots or malicious people.

Simple hierarchical select

Simple hierarchical select defines a new form widget for taxonomy fields to select a term by "browsing" through the vocabularies hierarchy.
The widget is available in node forms and as Views exposed filter.

Menu Position

Screenshot of content placed with Menu position module

Often times site builders want certain types of content to appear in a specific position in the navigational menu. The simplest solution, adding all of that content individually to the menu system, has performance and usability issues. (Imagine hundreds of menu items added to one spot in the menu.)

This module allows for the creation of rules that will dynamically add the current page into the menu system at the requested spots.

This includes affecting:

  • The main links of the theme
  • The secondary links of the theme
  • The breadcrumb trail
  • Menu blocks provided by core's Menu module
  • Menu blocks provided by the Menu Block module

Custom Breadcrumbs

Custom breadcrumbs 10.x

What works:

  • ability to add custom breadcrumb for all content entity or paths like page manager, views etc
  • store settings using config entity so everything is exportable
  • setup homepage link
  • setup current page last crumb
  • multilanguage support
  • token support
  • extra cache contexts
  • extra vars like nolink and hierarchical breadcrumbs from taxonomy term tree
  • added ability to attach breadcrumb to every entity display mode, for example on teaser with search results
  • trim breadcrumb length
  • ...

Custom Breadcrumbs (7.x-2.x)

Many new features have been added including support for Views, Panels, Taxonomy vocabularies and terms, paths, and a simple API that allows contributed modules to enable custom breadcrumbs for module pages and theme templates. These are implemented using optional, independent submodules that depend on the main Custom Breadcrumbs module.

In addition to breadcrumb visibility, this version provides an option permitting PHP code snippets to be used in forming the breadcrumb titles and paths. Multiple languages are also supported.

Any changes must go in the 7.x version first.

Rebuild Cache Access

Rebuild cache toolbar button screenshot

drupal_flush_all_caches() permission and toolbar button

Pages