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

789 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.

Mail Tester

This is a simple module that uses the simplicity of www.mail-tester.com to help you improve the quality of your email system.

Node Revision Restrict

Node revision restrict screenshot

The Node Revision Restrict module allows you to restrict revisions of node for each content type.

Cache Utility

Cache Utility module provides an ability to view status and flush various caches in three ways:

Javascript Aggregator

Javascript Aggregator

The aim of the JavaScript Aggregator module is to improve performance of your site with less server requests and bandwidth per page. In Drupal 5, all the JavaScript files will be aggregated into one file and optionally minified. JavaScript aggregation was brought into core with Drupal 6, so the Drupal 6 version of this module goes one step further to minify that file.

It basically does the following:

  • Takes the $scripts variable and removes .js files using a regular expression
  • Generates a unique filename for any set of .js files
  • Creates and caches one file containing all .js files in files/js
  • Optionally minifies the JavaScript using JSMin
  • Returns a modified $scripts variable with link to cached file

XHProf

This module allows you to profile your Drupal application using the XHProf profiler, Tideways and uprofiler (PHP 5 only)

Use community documentation to install/enable required PHP extension

XHProf is a hierarchical profiler for PHP. It reports function-level call counts and inclusive and exclusive metrics such as wall (elapsed) time, CPU time and memory usage. A function's profile can be broken down by callers or callees. The raw data collection component is implemented in C as a PHP Zend extension called xhprof. XHProf has a simple HTML based user interface (written in PHP). The browser based UI for viewing profiler results makes it easy to view results or to share results with peers. A callgraph image view is also supported.

It also provides a native Drupal UI (as opposed to facebook's original php front end) to view the profiling data. Having this in Drupal provides several advantages:

  • Simpler setup
  • No need to setup extra vhosts
  • Limit access via roles and permissions
  • Use alternative storage backends such as MongoDb

D8+ version also supports:

  • Profilers: XHProf, Tideways and uprofiler (PHP 5 only).
  • Append --xh-link and Drush 8 will save a profile to the same directory that this module uses. Browse Drush 8 profile data with this module.

Revisions Cleanup

Deletes old revisions that you likely no longer need, keep newer revisions you likely need, and allows administrators to keep historic revisions, one/x per month, in order to keep your database fro

LightningCSS

This module allows to use LightningCSS to compile styles from themes and modules.
To use it simply put:

Scheduler Request Cron

This module runs the Scheduler cron job automatically after requests. The interval between executions can be set.

Compressed Database Cache Backend

This module provides a cache backend which leverages gzip compression for the
stored data.

Purge Invalidation Form

INTRODUCTION

This module directly invalidate an item without going through the Purge queue.

AVIF fallback

Creates a fallback jpg image from AVIF images for browsers which do not
support AVIF format.

Enviromage

Welcome to Enviromage, a powerful Drupal module designed to unleash the full potential of your website's performance and configuration management.

Boost Captcha

The module allows boost caching of Drupal pages with forms with CAPTCHA for long durations without running into the "Session reuse attack detected" error. The module allows forms with CAPTCHA to be cached even after the CAPTCHA session expires by allowing the CAPTCHA to be re-loaded using AJAX when a user starts filling in the form.

Acquia Purge Varnish - API V2

Acquia Varnish

Clear varnish on Acquia from Drupal site. Utilizes Guzzle HTTP client as opposed to

CSS Embedded Images

How does it work?

According to Wikipedia, "the data URI scheme is a URI scheme that provides a way to include data in line in web pages as if they were external resources." That means that rather than having a URL telling the browser where to find the image you actually have the image data right there on the page so the browser does not have to make an extra request to get it. This particular module is only concerned with images referenced in CSS, so for an example let's look at a declaration in Garland's CSS:

ul li.expanded {
  background: transparent url(images/menu-expanded.gif) no-repeat 1px .35em;
}

When we embed the image into the CSS, it becomes:

ul li.expanded {
  background: transparent url(data:image/gif;base64,
  R0lGODlhCgAKAMQUAM/Q0vT09Ojr7s7Q0dLU1f7+/u/z9+Dj5tfX1+Dg4MrKyu
  fq7tfZ27m5uba2tsLCwvv7+7W1tbS0tP////P3+wAAAAAAAAAAAAAAAAAAAAAA
  AAAAAAAAAAAAAAAAAAAAACH5BAEAABQALAAAAAAKAAoAAAU0ICWOZGkCkaRKEU
  AtTzHNU/Es1JDQUzKIggZkBmkIRgTEDEEgGRyBgMNQYigUDBPlcCCFAAA7) no-repeat 1px .35em;
}

The actual process is a bit more involved than that, but this is the general concept. By default, embedded images are placed in a separate CSS file to allow for parallel rendering of other site styles while the relatively large image data is being downloaded.

Boost Expire

[NOTE: This module has been deprecated as of June 2013 in favor of Cache Expiration. If you're currently using Boost Expire, please follow these directions to switch from Boost Expire to Cache Expiration on your site!]

A cache expiration module to go with Boost for Drupal 7.

Currently, Boost for Drupal 7 doesn't do any active cache expiration (see #1069438: How to Flush Boost Cache in Drupal 7.x), and this means that when you update a node, post a comment, etc., Boost will continue serving stale content from its static HTML cache until the file is finally cleaned up on a cron run.

For many sites, especially smaller sites where content is updated infrequently and cron may be run hourly or even less frequently, this means stale content will be served for quite some time, unless someone visits the Performance page and clears all the site's caches manually.

This module alleviates that problem by simply flushing Boost's static HTML cache every time a node or comment is posted or updated. You can set the module to respect your site's Minimum cache lifetime so it doesn't flush the cache until the minimum lifetime has passed.

This module may become deprecated in favor of a more universal solution (like Boost integration with the Cache Expiration module).

Partytown

A module to integrate partytown to drupal sites.

Cache tag expire

This module will allow Drupal to set a timestamp for a cache tag to expire / invalidate.

Inline All CSS

Do you host a very simple site? Is your entire CSS package relatively small? Does your usual site traffic involve folks landing on a page, performing an action, and never seeing them again?

Views custom cache

Views custom cache: View's all argument enabled

This module provides two new simple caches for views which takes view's arguments into account:

New Relic Transactions

New Relic Logo

New Relic Transactions

Drupal module for naming transactions in New Relic according to route, bundle, and role.

Simple aggregation

A simple aggregation module for Drupal 7 that reduces the number of aggregated files by:

Pages