4,620 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.

Image Caption

Image Caption


This module uses JQuery to dynamically add captions to images.
The image title attribute is used to create the caption.
It basically wraps the image in an html container div, takes the image title text and appends that in a child div underneath the image.
Technically, it works by implementing Drupal's hook_nodeapi to add one small snippet of captioner jquery to the head section of the page when a node of the configured type is viewed.


<img src="/files/example.jpg" title="example caption" class="caption" />

This will result in an image with the caption of 'example caption'


  1. Copy the image_caption folder to your Drupal modules folder
  2. Add the empty css definition:

    to the stylesheet used by your WYSIWYG editor (to enable it to appear in the style select box on the editor toolbar, or class select box).
    You might be able to add it to your theme's style.css to get it to appear in the class dropdown box in your WYSIWYG editor.

  3. Enable the Image Caption module in Drupal module administration.
  4. IMPORTANT: After install, select the node types to include in image caption processing under Site Configuration > Image Caption


Language Switcher


Language Switcher for Drupal 7 is an enhancement for core language switcher block in local module. It's very useful for websites with multi-languages where you want to display content in different languages side-by-side. Watch this video to better understand the concept.


Divide your website page to a number of sections where each sections contains nodes in one language (see the screenshot).


  • When #1164926: Nodes need to have languages specified separately for accessibility lands into D7 core, the code base for this module will be much simpler, and cleaner.
  • Currently with core locale module, there is two language switcher blocks, one for interface, and the other for the content. This module should only alter the content one, not the interface one. Currently, it alters the interface block!

How to?

  1. Enable Locale and Content Translation modules.
  2. Add other languages, e.g. Arabic, French (admin/config/regional/language).
  3. Go to Language Switcher config page (admin/config/regional/language/language_switcher), select what mode you want to use.
  4. Go the content type you want the translation to be enabled on, select `Enable, with node translation` (e.g. admin/structure/types/manage/article).
  5. Add nodes, add translations.


AntiSpam statistics page

AntiSpam module is the successor of the Akismet module, and it provides spam protection to your drupal site using external antispam service like Akismet.

AntiSpam module is fully compatible with Drupal 6.x (Akismet module for Drupal 6.x release had many compatibility issues and was not usable as it was), and it expanded the support of the external antispam service with TypePad AntiSpam and Defensio service as well as Akismet service. Now you can choose one of the antispam service you wish to use.

Supported Anti-spam Services

In case of Defensio, the AntiSpam module take advantage of spam rating (spaminess) information provided by Defensio and you can sort the moderation queue list using spaminess (see the screenshot).

AntiSpam Helper Module

Add To Head

This project allows you to inject content into the $head, $scripts and $styles elements in the page.tpl.php. This is defined in profiles which can target URLS's.

Note: Only users with the administer add to head permission can use this and, as they can inject whatever they want, this permission should only be granted to VERY trusted users and site administrators as it could be used for evil.

Media: oEmbed

Media: oEmbed adds oEmbed as a supported media provider.

The focus of Media: oEmbed is to provide users with the ability to add internet media from any oEmbed provider.

oEmbed Providers

Media: oEmbed supports the following providers out of the box:


An unhelpful shot from the movie "Fifth Element" of Leeloo saying "Multifield"

This project seeks to provide a true compound field solution for Drupal 7. As much as I love Field collection, it still has to save actual entities, and can cause performance problems due to having to load all the referenced field collection entities on node, or parent entity load.

View the demo preview on YouTube


  • The sub-fields inside the multifield are limited to one value. You can have a multiple value multifield, but the individual fields in in the multifield can only have one value.
  • You cannot have a multifield inside another multifield.
  • I've tried to test this with all the core field types, but more advanced fields may cause issues. I haven't run into any yet, but just be aware and test what you want to use.
  • I will be the first to admit, this solution is doing all kinds of unholy things to Drupal's field and entity APIs, so there may be unexpected dragons laying around that I haven't discovered.

Known issues

Recommended Modules

  • Multiple Value Widget: Improves the UI for managing complex multiple-value field widgets by using jQuery UI tabs.

Comparison to similar modules

  • Composed Field: Stores field values as serialized data. Hard to expose sub-fields in Views, Search API, etc.
  • Field Collection or ECK + Inline Entity Form: Stores field values as a reference to a sub-entity which contains the actual sub-field values. Adds additional layers of entities and fields.

Nodes In Block

Nodes in block

Nodes in block makes it possible to add nodes into a block. A number of configurable blocks are generated which you can assign to a region. Visibility settings of this block are automatically set to 'Show on only the listed pages'. On the node content form, you define the weight and visibility per node thus making it easier for content administration as all your content is now in the same place. With this module, you don't have to explain your customers how blocks work but is still able to decide on which pages content must be rendered.


This module integrates the Fontello service via the Icon API module and allows you combine icon webfonts for your own project.


Acquia Purge

Graph showing Varnish'es missrate on a typical high performance site.

Top-notch cache invalidation on Acquia Cloud!

The acquia_purge module invalidates your Varnish caches on your Acquia Cloud site. When this is combined by setting Drupal's time to live (TTL) extremely high, your stack requires less servers, becomes much more resilient against DDOS attacks and performance dramatically improves!

Content locking (anti-concurrent editing)


  • Block concurrent editing: When a user is editing a node, any other user that attempts to edit the same node will be blocked from doing so, and notified that the content is already being edited.
  • By node type: This module can be configured to only lock certain content types against concurrent editing.
  • By format: This module can be configured to only lock specific input formats against concurrent editing.

Token Insert

Token insert

This module allows you to insert tokens into a textarea. It supports both plain text and wysiwyg textareas. The format used for the insert is compatible with Token Filter.

This module contains three modules:

  • Token Insert UI: Allows you to select which tokens are available for the insert, by default all tokens are shown. This module doesn't have to be enabled to use the others.
  • Token Insert (text): Add a fieldset under each textarea, works for both plain text fields and wysiwyg fields.
  • Token Insert (wysiwyg): Adds an extra button to wysiwyg editors and opens a popup to select the token to insert.

Dependencies for Drupal 6:

Dependencies for Drupal 7:

  • Token


Thanks to Jelle


CKEditor SWF - Enhanced Flash embedding plugin

CKEditor SWF version 6.x-2.0 introduces FLV and MP3 media files easy embedding.

This module is an extension to the CKEditor module.

It also supports CKEditor installed through the Wysiwyg module.

It seriously enhances CKEditor's outdated Flash plugin:
with CKEditor SWF, inserting a SWF animation, a FLV video or a MP3 audio file becomes as easy as inserting an image file: just pick up a SWF, FLV or MP3 file from IMCE (or CKFinder) and that's it!

It is composed of 2 parts:

  1. A client-side CKEditor plugin that adds many features and fixes to CKEditor's default Flash plugin:
    • Allows SWF animation, FLV video and MP3 audio files easy embedding
    • Retrieves width and height from the SWF or the FLV file
    • Adds a lock/unlock button to maintain aspect ratio while changing width or height
    • Adds a button to reset width/height to the SWF file's default dimensions
    • Allows width/height percentage values
    • Adds a textfield in Properties tab to edit the base parameter
    • Adds a Flashvars tab to edit the flashvars parameter
    • Displays a real preview
    • Fixes various bugs of the default plugin
    • New (experimental, in dev)! Allows to directly paste a YouTube video URL into CKEditor SWF to embed it!
  2. A server-side input format filter that converts the Flash embedding markup generated by CKEditor into a standards compliant one:
    By default, CKEditor generates a <object><embed></embed></object> markup, which is not standards compliant.
    CKEditor SWF Filter converts it into the correct <object><object></object></object> markup.

    If you prefer, CKEditor SWF Filter can also use the SWFObject JavaScript library to embed the Flash content.


A Bootstrap Carousel image with text


Bootstrap Carousel module provides a very easy way to make carousels, based on bootstrap-carousel.js.

Shorten URLs

Shorten URLs

This module provides an API to shorten URLs via many services like bit.ly and TinyURL (over 15 services are available by default), as well as a block and a page that provide an interface for easily shortening URLs, and a block that displays a shortened URL for the current page for easy copying.

Similar Entries

Similar Entries is looking for a co-maintainer.

Similar Entries provides lists of links to site content related to the current node being viewed. Links can be displayed in standard blocks or in custom views. Similar content is located and rated using MySQL's FULLTEXT indexing for MyISAM tables. FULLTEXT is a special query that helps find relevant content in other nodes using a natural language search that interprets the search string as a phrase in natural human language. Views module is only required for version 2.x.

Field Collection Fieldset

Field collection fieldset widget settings


Provides a fieldset formatter for the Field Collection module.
After enabling the module, go to admin/structure/types/manage/CONTENT_TYPE/fields and switch the widget to "Fieldset".
Go to admin/structure/types/manage/CONTENT_TYPE/display and switch the formatter to "Fieldset of field collection items".


Check the README.

Workbench Media

File list screenshot of Workbench Media

Workbench Media provides integration between Media module and the Workbench suite. It simplifies the pages content administrators need to visit in order to add media.

Which version should I use?

The current branch of Media you are using should be the same branch of Workbench Media that you should use. For example, if you are using the Media 7.x-1.0 release, then you should use the latest Workbench Media 7.x-1.X release.

Custom Publishing Options

This module allows you to create custom publishing options for nodes. It allows you to add to the default options of Publish, Promote to Front Page, and Sticky. It also ingrates with views to allow you add as a field, sort and filter by, your custom options.

It now allows each of the different options to be shown only on selected node types, as well as integration with Rules, Actions, and Features. Custom Publishing Options also have granular permissions per role, per option.

Save & Edit

Save & Edit Settings Page

Save & Edit is a module that provides a very simple, yet welcome function to node editing pages.

The module simply adds a button titled "Save & Edit" on node types selected in the admin section. Using this extra button when saving a node will simply redirect back to the edit form rather than returning to the node page, or the /admin/content/node page.

Node View Permissions

Node view permissions module enables permissions "View own content" and "View any content" for each content type on permissions page as it was on Drupal 6.
It's as simple as that.

It's implemented in a non-conflict way, so you can use it with any other permissions related module.

Created by ADCI solutions team

Taxonomy Formatter

This is a small module written to provide a custom formatter for taxonomy items. The default formatters both output the terms wrapped in divs. This module adds a new formatter that allows you to specify the element type, the wrapper type, classes for both, the separator used, and if they link to the term pages or not. This gives much more customizable layout options.

This project was started in Drupal 7 and will not be back ported unless a good number of requests come in.

CKEditor Link File

CKEditor Link File provides integration between CKEditor Link and File entity, allowing editors to link to files from within CKEditor. CKEditor Link File gives editors three important tools:

  • A simple method of linking to existing files (promoting file reuse and helping to eliminate duplicate files).
  • The ability to link to files, file URLs or file downloads (configurable by an administrator).
  • The ability to restrict links to certain file types such as audio, video, images or documents (configurable by an administrator).


CKEditor Link File has two dependencies:

Contributed modules


To install CKEditor Link File:

  1. CKEditor Link File can be installed using the standard module installation process.

Related Modules

The focus of CKEditor Link File is to provide editors with a simple way of linking to existing files.

Imagecache External


Imagecache External is a utility module that allows you to store external images on your server and apply your own Image Styles (D7).


Important: to use the module you need to visit admin/config/media/imagecache_external and either:


jCaption Settings

This is a simple module for Drupal 7.x that uses jQuery to transform the TITLE or ALT attribute of a image to a image caption. There is a settings page with lot's of possible configuration. The image caption won't show in the WYSIWYG-editor, but will be visible when you view the node.

The module differs in several ways from similar modules.

jCaption changes this:

<img title="Image caption here" src="image.jpg" alt="Image description">