Add functionality and customize your Drupal application with thousands of projects contributed by our amazing community.
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.
Raven module provides integration with Sentry, an application monitoring and error tracking platform, allowing your Drupal site to send log events an
Fast Token Browser extends the Token module with a faster and more usable interface for browsing and inserting Tokens.
Respond to your user’s browser features.
Modernizr tells you what HTML, CSS and JavaScript features the user’s browser has to offer. It makes the results available to you in two ways: as properties on a global Modernizr object, and as optional classes on the <html>
element. This information allows you to progressively enhance your pages with a granular level of control over the experience.
This Drupal module provides deep integration with the Modernizr JS library, allowing other modules or themes to register tests, load additional assets as needed, and even create new copies of the Modernizr library when a website's requirements change. Read more below.
This module lets you craft and expose a GraphQL schema for Drupal 9 and 10.
This is a small helper module which will automatically lazyload all images for sites with multiple images, which will make the site load faster.
All images will only load when it's visible to the browser window.
Available Settings:
1) Enable/Disable
2) Distance - image distance from the viewable browser window before the actual image loads
3) Placeholder Image - stand-in image
4) Loader Icon - animating icon (shamelessly borrowed from ajaxblocks module)
5) Excluded Pages - page paths to be excluded from image lazyload
For other images:
You can also manually lazyload your other images not processed by Drupal image module by formatting your img markup to this:
Attributes:
1) src = path to placeholder image
2) data-src = path to actual image
3) width = add width for best result
4) height = add height for best result
5) Add a container block
Example:
<div class="image-container"><img src"/sites/default/files/image_placeholder.gif" data-src="/sites/default/files/actual_image.jpg" alt="Image" /></div>
This is a library module. It provides no out of the box functionality other then providing an API that other modules/code can use. Other projects might require/recommend this module. Install HTTPRL only if other modules recommend or require it.
What does httprl do?
Using stream_select() it will send http requests out in parallel. These requests can be made in a blocking or non-blocking way. Blocking will wait for the http response; Non-Blocking will close the connection not waiting for the response back. The API for httprl is similar to the Drupal 7 version of drupal_http_request().
As a bonus, a simple threading library is built on top of the parallel http requests functionality. This allows you to split a job and have multiple http "workers" running this split job in parallel. Anything that takes a long time to do can greatly benefit from using threads.
Benchmarks
The Minify JS module allows a site administrator to minify all javascript files that exist in the site's code base and use those minified files on the front end of the website.
Minify is designed to improve the website performance.
Accelerates Page Cache misses using the BigPipe technique.
Install it and it works. There's no configuration, no UI.
This module provides easy Content Delivery Network integration for Drupal sites.
CloudFlare is a FREE reverse proxy, firewall, and global content delivery network and can be implemented without installing any server software or hardware.
On average, CloudFlare-powered websites load 30% faster, use 60% less bandwidth, and process 65% fewer requests. CloudFlare-powered websites are protected from many forms of malicious activity including: comment spam, email harvesting, SQL injection, cross-site scripting, and DDoS (denial of service) attacks.
8.x Features
- Cache clearing by Tag (Recommended) and Path.
- Restore client's original IP address.
7.x Features
- Corrects
$_SERVER["REMOTE_ADDR"]
so it contains the IP address of your visitor, not CloudFlare's reverse proxy server.
- Integrates with CloudFlare's Threat API so you can ban and whitelist IP addresses from the Drupal Comment administration screen.
- Integrates with CloudFlare's Spam API.
- Integrates with CloudFlare's Client Interface API (planned).
How do I get started with CloudFlare?
- Visit http://www.cloudflare.com to sign up for a free account.
- Follow their 5-minute configuration wizard.
HTTP Cache Control module helps fine grain control of Drupal's Cache Control headers.
This module provides an implementation of Google Chrome Lab's Quicklink library for Drupal.
Progressive Web Apps provide a native-like experience using web technology. They are reliable, fast, and engaging, resulting in a robust offline experience that can be saved to homescreen.
This module provides integration between your Drupal site and Varnish cache, an advanced and very fast reverse-proxy system.
Cache actions provides rules actions for clearing drupal caches.
It currently provides actions for:
- Clearing Drupal cache bins
- Clearing CSS/JS cache
- Clearing The cache of specific views
- Clearing The cache of specific panel pages
- Clearing The cache of specific mini panels
Dependencies
Cache actions only depends on the rules module. If you don't have views or panels, you only get the option of clearing the drupal cache bins and the CSS/JS cache. When views or panels are present, you get actions for clearing the cache of specific views and panels as well.
Compatibility
This module is compatible with:
- Panels 3
- Views 2 and 3. The views 2 support is the best tested currently, but everything seems fine
with views 3 as well.
Version 2
The new version of cache actions offers a lot of new features:
- Clearing The cache of more than one view at a time
- Clearing The cache of specific panel page variants
- Clearing The cache of specific panel page panes
- Clearing The cache of specific mini panel variants
- Clearing The cache of specific mini panel panes
- Unit tests
Queues email sending from your site so that instead of being sent immediately it is sent on cron or via some other queue processor.
Useful for high traffic sites that can send a lot of emails on individual page requests.
Drupal 7
The Drupal 7 version supports sending with any email framework, i.e. it works perfectly with Mime Mail module or any other of framework that handles the actual sending of emails. It also uses a standard Drupal queue to do the queuing of emails. It requires at least Drupal 7.12.
The Drupal 7 version is actively maintained.
Drupal 8
The Drupal 8 version is based on the Drupal 7 one and has all the same features/benefits.
The Drupal 8 version is actively maintained.
Drupal 6
Queues any email sent from your Drupal site and then uses the Job queue module to send them via cron. Emailing only supports the PHP mail function.
The Drupal 6 version is in feature freeze, and only serious bug fixes and security issues will be fixed.
The Image Style Warmer module provides options to create image styles during upload or
via queue worker. So configured image derivates already exists when they are requested.
Advanced control of your cache-control header
Advanced Page Expiration addresses the use cases of needing certain pages on the site to expire faster than other pages when cached in an edge cache like Varnish or Fastly. For example, all pages on the site could be cached for 24 hours except for the homepage which could be cached for five minutes.
The Akamai modules provides integration with the Akamai Content Control Utility (CCU) Web Service.
The Simple Cron is a light-weight module for cron job management.
An API for browsing next/previous nodes without overloading your database server.
Description
This module allows you to know the previous or next nodes for any given node. This is very useful for providing navigational links to the user without the expensive queries required to dynamically deduce such information on the fly.
The use case is two fold:
Usability/Navigation
For example, on a site with a gallery of images, you want to show a next/previous link with a thumbnail under each image. Your site's visitor click on the link to show new content or browse it.
Scalability
Although the previous and next nodes can be deduced with some SQL work, the queries to do so are very heavy on the database, and can bring a site to its knees. This module solves this problem by storing the previous/next node in a table so lookups are fast. Once the module is installed, it will build this index backwards via cron until all nodes have been indexed. See the "More Info" section below for a detailed post on the positive scalability impacts of implementing this module.
Configuration
The module can be restricted to certain content types to be included in the previous/next indexing. For example, you want the site's visitors to browse through video and image nodes only, but not blogs and regular pages.
Provides some handy extra cache tags, so you can for example tag a block that deals with a certain node type, with the cache tag of that node type.
Pages