1,069 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.

Downloads

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.

Downloads

Devel

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

Downloads

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.

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 declares its components (e.g. views, contexts, CCK fields, etc.) in its .info file so that it can be checked, updated, or reverted programmatically.

Downloads

Masquerade

The masquerade module is designed as a tool for site designers and site administrators. It allows a user with the right permissions to switch users. While masquerading, a field is set on the $user object, and a menu item appears allowing the user to switch back. Watchdog entries are made any time a user masquerades or stops masquerading.

Downloads

ACL

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):

Downloads

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.

Downloads

getID3()

#D7CX: I pledge that GetID3 will have a full Drupal 7 release on the day that Drupal 7 is released.

The getID3() Drupal module facilitates the installation and management of the getID3() PHP library, used to extract useful information from MP3s and other multimedia file formats.

Downloads

Autoload

The autoload module is a utility module. It allows other modules to leverage PHP 5's class autoloading capabilities in a unified fashion. It does, naturally, require PHP 5.1.2 or later.

You do not need this module unless you are developing a module that makes use of classes or you are installing a module that depends on this one.

The 1.x branch uses a manual info-hook. The 2.x branch includes a backport of the Drupal 7 self-learning registry as well as the info hook for backward compatibility.

Downloads

Widgets

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.

Usage

  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.

Downloads

Boxes

Boxes module is a reimplementation of the custom blocks (boxes) that the core block module provides. It is a proof of concept for what a re-worked block module could do.

The module assumes that custom blocks are configuration, and not content. This means that it is a reasonable action to ask for all blocks at one time, this is in fact exactly what the core block module does.

Boxes provides an inline interface for editing blocks, allowing you to change the contents of blocks without going to an admin page.

Boxes provides exportables for its blocks via the (required) Chaos tools module. This allows modules to provide blocks in code that can be overwritten in the UI.

Chaos tools is required to use Boxes.

Boxes Integration

The following modules provide Boxes plugins. Let us know if your plugin is not listed here.

Spaces support

Downloads

Backup and Migrate Files

This module is a plugin for Backup and Migrate and does nothing on its own. You must download and install Backup and Migrate 2.x (Aug 24 dev or later) to use this module. This module is not compatible with version 1 of Backup and Migrate.

This module requires the PEAR Archive_Tar library. Please see the README.txt file for information on how to install that library.

Downloads

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.

Downloads

Browscap

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.

Browscap also provides statistics on visiting browsers.

Downloads

Schema

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:

Downloads

Form Builder

Form Builder Image

This project allows users to build entire Form API structures through a graphical, AJAX-like interface. It has the ability to read and export FAPI arrays, and users are permitted to change any properties exposed by modules that expose forms to the Form Builder.

Downloads

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

Downloads

Content Analysis

Screenshot of Content Analysis

The Content Analysis module is an API designed to help modules that need to analyze content. The module enables a suite of content analyzers to provide multiple views into the content on your Drupal site or on any website. The current list of available analyzers are:

  • Quick SEO: Provides a quick and easy analysis of content to help your site rank better in the search engines for a specific keyword.
  • Scribe SEO: Provides advanced analysis of content to help your site rank better in the search engines. Also provides keyword extraction and guidance.
  • Readability: Grades content based on five popular automated readability tests for content
  • W3C Analyzer: Test content for W3C validation
  • Keyword Research: Provides an array of tools for analyzing and discovering keyword phrases. Also helps with tagging nodes with keywords.

Downloads

Custom Formatters

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

Custom Formatters was written and is maintained by Stuart Clark (deciphered).
- http://stuar.tc/lark
- http://twitter.com/Decipher

 

Important note

Changes have been made to the PHP formatters Render Array integration to correctly support multi-field values, this changes the HTML wrappers of the formatter and may affect the theming of your site. This change will be made in 7.x-2.2 and the upcoming development releases.

 

Features:

  • Two different editor modes:
    • Basic/HTML + Tokens: A HTML based editor with Token support.
    • Advanced/PHP: A PHP based editor with support for multiple fields and multiple values.
  • Support for:
  • Exportable as:
    • Drupal API formatter
    • CTools exportable/Features
  • Live preview ([D6] requires Devel generate module).
  • Integrates with:
    • [D7] Coder Review module - Review your Custom Formatter code for Drupal coding standards and more
    • [D7] Drupal Contextual links module - Adds a hover link for quick editing of Custom Formatters.
    • Features module - Adds dependent Custom Formatters (from Views or Content types) to Feature.
    • [D7] Form Builder - Drag'n'Drop interface for builder Formatter Settings forms.
    • Insert module - Exposes Custom Formatters to the Insert module.
    • Libraries API module and the EditArea javascript library - Adds real-time syntax highlighting.

Downloads

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.

Benchmarks

Downloads

Demonstration site (Sandbox / Snapshot)

Demonstration site's snapshot management page

This module allows you to take snapshots of your site. It turns a Drupal installation into a sandbox that you can use to:

  • Try out and test new modules, configuration, etc.
  • Set up a public demonstration site for a contributed module or theme.
  • Develop and test update and upgrade paths.

Whenever you need to reset your site to the state of a saved snapshot a click of your mouse will do so.

With cron enabled, a site can be automatically reset to a chosen snapshot in a definable interval.

Downloads

Modal Frame API

This module provides an API to render an iframe within a modal dialog based on the jQuery UI Dialog plugin. You should not install this module unless another module requires you to, or you wish to use it for your own custom modules.

It is an alternative to Popups API (Ajax Dialogs) which implements its own library and API to manage popup dialogs. On the other hand, the Modal Frame API is based on the jQuery UI Dialog plugin and it is specially built to deal with iframe elements with very little effort (and no particular AJAX requirements).

For themers, this module provides a default template for rendering child pages within modal frames (modalframe-page.tpl.php) that can be copied to the theme directory and customized to suit the particular needs of the site. It is also pretty easy to adapt the provided stylesheets to match the look of the site.

Requirements related to jQuery UI: jQuery UI version 1.7.x (1.8.x. not yet supported) Note that you also need jQuery 1.3.x, currently provided by jQuery Update 6.x-2.x.

Highly recommended: onBeforeUnload API (enhances synchronization of parent/child windows). See reference: #669436: In search for alternatives to the unload event.

Builtin support for: Dirty Forms.

Modules using Modal Frame API: Modal Frame Contrib Package (includes mini-modules that implement the Modal Frame API to enhance the usability of a few day to day tasks in every Drupal site), Node Relationships, Modal Frame CCK Editor, Modal Frames from Menu Items, Subnodes by Taxonomy.

Modal Frame API is pretty simple, but powerful at the same time.

Downloads

IE CSS Optimizer

Screenshot of IE CSS Optimizer form

Internet Explorer will refuse to load more than 31 linked stylesheets. Unfortunately, the alternative to load styles using @import statements (which Drupal 5 used), has bad performance implications.

The fix for this on production sites is to simply enable the “Optimize CSS files” option on admin/settings/performance. Unfortunately, that option makes developing CSS for themes or modules a true PITA. This module adds a developer-friendly solution to the “Optimize CSS files” feature; it aggregates all stylesheets except for those in the theme or in the selected module.

Downloads

Translation template extractor

The Translation template extractor provides a web based and a command line Gettext translation template extractor interface for Drupal as well as a reusable API to look for translatable strings and translatability errors. This tool is used under the hood at http://localize.drupal.org/ as well to serve as a parsing machine for Drupal.org project releases.

Translation templates are used by teams to translate Drupal to their language of choice. There are basically three ways to use the contents of this project:

  • Web based extraction: If you are a translator, install the module on a Drupal site as you would with any other module. Once potx module is turned on, you can go to the "Extract strings" tab on the Locale administration interface, select the module or theme you want to have a translation template for, and submit the form. You will get one single template file generated.
  • Web based code review: If you are a module or theme developer, install this module and the coder review module. Pick the Interface text translatability review offered by potx and check your module for translatability problems.

Downloads

Menu Node API

The {menu_node} table

Manages relationships between node ids and menu items.

The Menu Node API project fills in one of the "missing tables" in Drupal. This module does nothing on its own. Instead, it creates and maintains a {menu_node} table. This table maps the relationship between a node and its menu item (if any).

The module requires the optional core Menu module to be enabled. It also requires Drupal 6.10 or higher. (See this issue for why).

By itself, this module has no end-user functionality. When nodes are assigned to a site menu, records are created to capture that relationship. If the node or menu item is deleted, the record is likewise deleted.

This process enables other modules (such as Views) to write JOINs against node items in the menu system.

Drupal 7 version

Patch #457450 made it into Drupal 7. The Drupal 7 version of this module can be radically simplified, thanks to the new hooks. See the upgrade documentation for details.

This module will still be necessary in Drupal 7, however, since it tracks the nodes stored in the {menu_links} table.

For Drupal 7, you might also investigate the following modules, which provide similar functionality:

Downloads

Pages