2,549 Modules match your search

Extend and customize Drupal functionality with contributed modules. If a module doesn't quite do what you want it to do, if you find a bug or have a suggestion, then join forces and help the module maintainer. Or, share your own by starting a new module.

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.


Administration menu

Administration menu (back-end) for Drupal

Provides a theme-independent administration interface (aka. navigation, back-end). It's a helper for novice users coming from other CMS, a time-saver for site administrators, and useful for developers and site builders.

Administrative links are displayed in a CSS/JS-based menu at the top on all pages of your site. It not only contains regular menu items — tasks and actions are also included, enabling fast access to any administrative resource your Drupal site provides.


Backup and Migrate

Drupal 8 Note: A ground up rewrite is currently underway. Follow the progress at https://www.drupal.org/node/2607038#comment-10638286

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.



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.

Features provides a UI and API for taking different site building components from modules with exportables and bundling them together in a single feature module. A feature module is like any other Drupal module except that it contains additional information in its info file so that configuration can be checked, updated, or reverted programmatically.



For Drupal 8, the query log has been moved to the webprofiler module which is now its own module within this project.

A suite of modules containing fun for module developers and themers ...


Job Scheduler

Simple API for scheduling tasks once at a predetermined time or periodically at a fixed interval.

If you plan to use this API in your module in 6.x, make sure to review upcoming API changes.



The Masquerade module allows site administrators (or anyone with enough permissions) to switch users and surf the site as that user (no password required). That person can switch back to their own user account at any time.

This is helpful for site developers when trying to determine what a client, logged in as themselves, might see when logged into the site.



A standardized solution for building API's so that external clients can communicate with Drupal. Out of the box it aims to support anything Drupal Core supports and provides a code level API for other modules to expose their features and functionality via HTTP. It provide Drupal plugins that allow others to create their own authentication mechanisms, request formats, and response formats.

Currently all development is happening on github for the useful help of PR's. https://github.com/kylebrowning/services


Checklist API

Example checklist

Checklist API Provides a simple interface for modules to create fillable, persistent checklists that track progress with completion times and users. You don't need this unless you're a module developer or you want to use a module that calls for it.


simplehtmldom API

The module is a bridge between simplehtmldom PHP library and Drupal.
It provides powerful API for HTML parsing. Also, it works fine with broken markup.



The ACL module, short for Access Control Lists, is an API for other modules to create lists of users and give them access to nodes. It has no UI of its own and will not do anything by itself; install this module only if some other module tells you to.

We're aware of the following modules using ACL (let us know if you know of others):


Less CSS Preprocessor


This is a preprocessor for LESS files.

This module will automatically process any LESS files that are added using drupal_add_css(), or added through your module/theme's .info file.

Add your files just like any other css file, just with ".css.less" as the extension, and they will be automatically processed.

RTL support will work as long as your file extension is ".css.less".

7.x-4.0 Features (PHP 5.3+ required)

7.x-3.0 Features

There are several new features:

The included less_demo module should provide API demonstration for new features.


  • Libraries API
  • less.php and unpack it so that 'lessc.inc.php' is located at 'sites/all/libraries/lessphp/lessc.inc.php'.


Fully compatible with CSS aggregation:

Drupal 6 "Optimize CSS files" setting under "Administer→Site configuration→Performance" (admin/settings/performance).

Drupal 7 "Aggregate and compress CSS files" setting under "Administration→Configuration→Development→Performance" (admin/config/development/performance)



Widget set edit admin

Widgets enables you to centrally manage and configure code snippets on your site such as share and follow buttons or Twitter updates and Facebook like boxes. It implements a user interface that allows you to easily organize and configure various widget elements. Using a UI similar to core’s image styles, elements can be assembled into widget sets which can be reused throughout the site via blocks and other render displays.

The Widgets module is primarily a user interface API and as such includes only generic markup widgets. You can add new custom widgets using the widget definition admin or enable modules that provide widgets. There are several dozen widgets available through the Social media and Service links modules.


  1. Installation. Use standard methods to install the Widgets archive files into your Drupal site. Then go to admin > modules and enable the Widgets module. You will want to install the Social media and/or Service links modules also to provide widget sources.
  2. To display widget sets on your site use the blocks admin at admin > structure > blocks or other method for managing blocks such as Context or Panels. Look for blocks that start with the label "Widgets:" Several pre-built widget sets are provided by the Social media module.


UUID Features Integration

UUID Features 7.x-1.0-alpha3 fixes some HTML code that made the module completely unusable. Please update ASAP. If you're experiencing WSOD simply remove the module files completely then upload the latest version. The latest version now works with UUID 7.x-1.0-alpha3. Please report any bug you encounter in the issue queue.

Comparison with other modules with similar functionalities: #1311428: Comparison with Node export (and possibly other modules with similar functionalities)?

We need patches and reviews! Please contribute here!

Co-maintainer(s) wanted! Please contact us.

The UUID Features Integration module provides a mechanism for exporting content (nodes, taxonomy, fields) into a features module. What's that you say? You thought features was only for configuration? This module is meant to be used in the cases where certain pieces of content straddle the line between pure content and configuration.


  • There are relatively static pages (like an About Us page) that have links from your primary navigation. If these were to go missing, your client would certainly say the site is broken.
  • You maintain page nodes for items like Terms of Service or Privacy Policy. These nodes appear on several sites and should always be the same.


Elysia Cron

Elysia cron

!NEW Release 2.0 is finally out, with D7 support, code & performance improvements and a lot of new features!

Elysia Cron extends Drupal standard cron, allowing a fine grain control over each task and several ways to add custom cron jobs to your site.

  • [NEW IN 2.0] Set the timings and frequencies of each cron task (you can run some jobs every day at a specified hour, other only monthly and so on...). For each task you can simply choose between some frequently used options ("once a day", "once a month" ...), or use a powerful "linux crontab"-like syntax to set the accurate timings. You can even define your frequently used options to speed up site configuration.
  • Parallel execution of cron task: you can group jobs in channels and execute then simultaneously: so a task that takes a lot of time to execute won't block other tasks that need to be executed every 5 minutes...
  • You can disable all tasks, an entire channel or a single task.
  • Change the priority/order of task execution.
  • Manual force the execution of a cron tasks.
  • Detailed overview of cron status with time statistics for single tasks and channels.
  • [NEW IN 2.0] powerful API for module developers: you can define extra cron tasks for your modules, each one with own default timings (site administrators can override them by configuration, other modules via hook_alter). Elysia Cron 2.0 gives a brand new API support (compatible with 1.0 version) with a lot of features.
  • Administrators can define custom jobs (call to functions with parameters), via the "script" option.
  • Several optimization for frequent cron calls and error handling.
  • Protection from external cron calling by cron_key or allowed host list.

Elysia has no dependencies with contributed modules, and doesn't need to patch the core: it can be used in minimal Drupal installation with only core modules.
It also can be used in a Drupal install profile.

3rd party integration:

  • [NEW IN 2.0] Ping feature, for external tracking services like host-tracker to tell whether cron is functioning properly on your site.
  • [NEW IN 2.0] Drush support: you can call "drush elysia-cron" to manually run extended cron.
  • [NEW IN 2.0] CTools support for exports/backup of task settings.
  • [NEW IN 2.0] Features support.


HTTP Parallel Request & Threading Library

Blocking vs Non Blocking

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.



X Autoload

xautoload is a comprehensive and yet highly efficient PHP class loading suite.

Most importantly, it provides Drupal-8-style PSR-0 and PSR-4 autoloading for Drupal 7. But it is also a great tool for 3rd party autoloading.

Since 7.x-5.4, it can also completely replace the Drupal core class loader, which allows to use the xautoload cache options for traditional core and contrib classes.



Introduced in Drupal 6, the Schema API allows modules to declare their database tables in a structured array (similar to the Form API) and provides API functions for creating, dropping, and changing tables, columns, keys, and indexes.

The Schema module provides additional Schema-related functionality not provided by the core Schema API that is useful for module developers. Currently, this includes:


Fast Permissions Administration

Drupal 8

This module is here to alleviate frustration when trying to manage permissions in Drupal. By providing a better permissions interface hopefully a few innocent keyboards and mice can be saved.

For Drupal 8 (7.x-2.x)


Flood control

Screenshot in Drupal 7

This project is intended to add an administration interface for hidden flood control variables in Drupal 7, like the login attempt limiters and any future hidden variables.



Modernizr - Frontend development done right

Modernizr tests which native CSS3 and HTML5 features are available in each browser and makes the results available to you in two ways: as properties on a global Modernizr object, and as 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.


Custom Formatters

The Custom Formatters module allows users to easily create custom Field Formatters without the need to write a custom module. Custom Formatters can then be exported as CTools Exportables, Features or Drupal API Field Formatters.



  • Pluggable editor/renderer engines:
    • Formatter preset
      Create simple formatters from existing formatters with preset formatter settings.
    • HTML + Tokens
      A HTML based editor with Token support.
    • PHP
      A PHP based editor with support for multiple fields and multiple values.
    • Twig
      A Twig based editor provided by the Twig filter module.
  • Supports for all fieldable entities, including but not limited to:
    • Drupal core - Comment, Node, Taxonomy term and User entities.
    • Field collection module - Field-collection item entity.
    • Media module - Media entity.
  • Exportable as:
    • Drupal API formatter via:
      • Custom Formatters export interface.
    • CTools exportable via:
      • Custom Formatters export interface.
      • CTools Bulk Export module.
      • Features module.
  • Live preview using real entities or Devel Generate.
  • Integrates with:
    • Coder Review
      Review your Custom Formatter code for Drupal coding standards and more.
    • Contextual links (Drupal core)
      Adds a hover link for quick editing of Custom Formatters.
    • Display Suite
      Format Display Suite fields.
    • Features
      Adds dependent Custom Formatters (from Views or Content types) to Feature.
    • Form Builder
      Drag'n'Drop interface for builder Formatter Settings forms.
    • Insert
      Exposes Custom Formatters to the Insert module.
    • Libraries API and the EditArea javascript library
      Adds real-time syntax highlighting.
    • Token
      Adds the Token tree browser to the HTML + Tokens engine.





This module does not and will not prevent your site from being 'hacked'.

This module scans the currently installed Drupal, contributed modules and themes, re-downloads them and determines if they have been changed. Changes are marked clearly and if the diff module is installed then Hacked! will allow you to see the exact lines that have changed.

Hacked! also provides drush integration so that you can see what files have changed from the command line.

This is primarily a developer tool and should never ever (don't even think it) be installed on a production site.

Similar modules

There are a number of other 'integrity' modules, such as 'md5check', 'File integrity check' and 'Sentry'. These modules have features to protect a live site from code changes or to only check Drupal core.

Windows support

Windows is not currently supported by this module, if you want to write a patch to get it fully working, then please post it in the issue queue.

About the Developers



Browscap provides an improved version of PHP's get_browser() function.

The get_browser() function can be used to tell what a visitor's browser is capable of. Unfortunately, the version provided by PHP has a number of limitations, namely:

  • It can be difficult or impossible to configure for shared hosting environments.
  • The data used to identify browsers and determine their capabilities requires consistent maintenance to keep up-to-date.

Browscap automates maintenance by storing browser data in a database and automatically retrieving the latest data on a configurable schedule.


Ultimate Cron

Cron list

The Ultimate Cron handling for Drupal.
Runs cron jobs individually in parallel using configurable rules, pool management and load balancing.

2.0 READY!

Ultimate Cron 7.x-2.0 is out now.
Ultimate Cron 1.x documentation can be found at https://drupal.org/node/1666944

The old project page for Ultimate Cron 1.x can be found at https://drupal.org/node/2195381


  • No more dependecy to Background Process. Ultimate Cron now works without Background Process. However, Background Process is still supported for true parallelism
  • Refactored to use cTools plugins, making it easier to extend Ultimate Cron.
  • Now includes the daemonizer and queue throttling features, previously found in the modules Ultimate Cron Daemonizer and Ultimate Cron Queue Scaler
  • Hopefully a more robust lock and logging mechanism.
  • Integration with nodejs for live update on cron page
  • Nagios support has not been re-implemented

Upgrade path

  • Disable cron while upgrading.
  • Existing db-stored settings will be upgraded.
  • Existing features containing Ultimate Cron settings will be stored in db, for easier re-export.
  • Existing log table will be modified. Beware, that if the table contains many entries, the upgrade may take some time.


Ultimate Cron is built upon 4 plugin types.

  • Settings: - plugins that provide custom settings for jobs (bundled: general, queue).
  • Schedulers: - plugins that provide a mechanism for whether or not a job should run at a certain time (bundled: simple, crontab).
  • Launchers: - plugins that provide a way of launching jobs (bundled: serial, background_process).
  • Loggers: - plugins that provide a logging backing for job status (bundled: database, cache).

Ultimate Cron 7.x-2.x documentation can be found at https://drupal.org/node/2195383


  • Works out-of-the box in most cases (or aims to)
  • Parallel exection of cron jobs
  • Configuration per job (enable/disable, rules, etc.)
  • Multiple rules per cron job
  • Pool management and load balancing using Background process
  • Support for Drupal Queues
  • Overview of cron jobs
  • Log history of cron jobs
  • Status/error messages per cron job, providing easy debugging of troublesome cron jobs
  • Uses hook_cronapi() (Elysia Cron compatible, NOT 2.x, please use hook_cron_alter() for similar functionality)
  • hook_cron_alter() for easy adding/manipulating cron jobs
  • Poormans cron with keepalive a granularity of 1 minute
  • Drush support (list, start, enable/disable jobs from the command line)