32,567 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.



Insert is a utility that makes inserting images and links to files into text areas or WYSIWYGs much easier. It adds a simple JavaScript-based button to FileField and ImageField widgets. When used with ImageField and ImageCache, images may be inserted into text areas with a specific ImageCache preset.

This module was previously known as FileField Insert.


  • Support for all major WYSIWYG editors, including tinyMCE, CKeditor, the WYSIWYG project (the recommended approach), and plain text areas.
  • Insert images using ImageCache presets
  • Maximum width setting for inserted images (for combined use with the Image Resize Filter module)
  • Per-field insert configuration

See this module in action in the excellent FileField Insert / Image Resize Filter screencast by MustardSeed Media.


  • CCK (2.5 or higher! D6 only.)

Recommended projects


Views PHP

This module allows the admin account (user 1) to add fields, filters and sorts to views which use PHP code. It also supports additional accounts when the core PHP Filter module is enabled.


Plupload integration


Provides integration between for the Plupload widget to upload multiple files and Drupal. Plupload is a GPL licensed multiple file uploading tool that can present widgets in Flash, Gears, HTML 5, Silverlight, BrowserPlus, and HTML4 depending on the capabilities of the client computer.

#D8CX: I pledge that Plupload integration will have a full Drupal 8 release on the day that Drupal 8 is released.

Security warning

In order to protect your site you should ALWAYS delete examples subfolder from Plupload library. There is a patch, that can help you to do that in one simple step or to include it in a distribution.

Compatibility warning

Library version v2.0.0 and later are currently unsupported. Latest supported version of library is v1.5.8, which can be downloaded from https://github.com/moxiecode/plupload/archive/v1.5.8.zip.


Universally Unique IDentifier

This module provides an API for adding universally unique identifiers (UUID) to Drupal objects, most notably entities.

Features in Drupal 7 version

Automatic UUID generation

UUIDs will be generated for all core entities. An API is provided for other modules to enable support for custom entities.

UUID API for entities, properties and fields

With this unified API you can load entities with entity_uuid_load() so that all supported properties and fields are made with UUID references. You can also save entities formatted this way with entity_uuid_save() (depends on Entity API).

Export entities to use as default/demo content

The integration with Features module provides the ability to export UUID enabled entities with intact dependencies and references to other entities. This functionality depends on Deploy module 7.x-2.0-alpha1 (soon to be released) and is probably the most robust way for installation profiles and distributions to provide demo content!

Services integration


Content Access

Content Access tab in a content type

What is Content Access?

Yet another content access module.

This module allows you to manage permissions for content types by role and author. It allows you to specifiy custom view, edit and delete permissions for each content type. Optionally you can enable per content access settings, so you can customize the access for each content node.


  • It comes with sensible defaults, so you need not configure anything and everything stays working
  • It is as flexible as you want. It can work with per content type settings, per content node settings as well as with flexible Access Control Lists.
  • It tries to reuse existing functionality instead of reimplementing it. So one can install the ACL module and set per user access control settings per content node.
    Furthermore the module provides conditions and actions for workflow-ng / rules, which allows one to configure even rule-based access permissions.
  • It optimizes the written content node grants, so that only the really necessary grants are written. This is important for the performance of your site.
  • It takes access control as important as it is. E.g. the module has a bunch of simpletests to ensure everything is working right.


Automatic Nodetitles

"auto_nodetitle" is a small and efficient module that allows hiding of the content title field in the form. To prevent empty content title fields one can configure it to generate the title by a given pattern.


FileField Sources


FileField Sources is an extension to the FileField module. The FileField module lets you upload files from your computer through a CCK field. The FileField Sources module expands on this ability by allowing you to select new or existing files through additional means, including:

  • Re-use files by an auto-complete textfield
  • Attach server-side files uploaded via FTP
  • Transfer files from a remote server (cURL required)
  • Paste a file directly from the clipboard (Drupal 7 only)
  • Select existing files through the IMCE file browser

Although FileField Sources provides several built-in sources, it can be extended by any module through an API for creating new sources. Users can toggle between any of the available methods for selecting a file.

Drupal 6 Requirements:

  • CCK 2.6 or higher
  • FileField 3.5 or higher

Drupal 7 Requirements:

  • None (all modules are included in core)

Additional Sources
There are a number of modules that add additional sources to FileField Sources:



reCAPTCHA 2.x widget (with JavaScript)

Uses the reCAPTCHA web service to improve the CAPTCHA system and protect email addresses.


Voting API

VotingAPI helps developers who want to use a standardized API and schema for storing, retrieving, and tabulating votes for Drupal content.



jCarousel screenshot

This module allows developers and themers to make use of the jCarousel jQuery plugin. It includes a developer API that other modules can use, as well as Views integration in the 2.0 version so that you can turn any list of content or images into a carousel.


Printer, email and PDF versions

print icons

This module allows you to generate the following printer-friendly versions of any node:

  • Printer-friendly version (webpage format) (at www.example.com/print/nid)
  • PDF version (at www.example.com/printpdf/nid)
  • EPUB version (at www.example.com/printepub/nid)
  • Send by email (at www.example.com/printmail/nid)

where nid is the node id of content to render.

Important: The current versions of the module require at least Drupal 6.11 or 7.0. They will not work in older versions.




This module implements the OAuth 1.0 standard for use with Drupal and acts as a support module for other modules that wish to use OAuth.

For OAuth 2, use OAuth Connector module.



@font-your-face logo


@font-your-face provides an administrative interface for browsing and applying web fonts (using CSS @font-face, supported in all popular browsers) from a variety of sources. Try it out on simplytest.me.


  • A font browsing interface allows selection of fonts from from several providers:
  • Fonts are automatically loaded on site simply by clicking "Enable"; no need to create font files, write CSS, add JS, nor figure out different methods for every font provider.
  • Clear indication of license restrictions on provided fonts.
  • Fonts can be applied to specific text on the site either by using the provided font-family identifier in theme CSS, or by typing a CSS selector directly in the @font-your-face interface.
  • The @font-your-face code is designed for re-use, so other modules can both supply and read active and available font information.
  • Fonts can be exported/imported using Features (7.x-2.x only)
  • You can also import your own local fonts in all web formats: EOT, TTF, WOFF and SVG.



Honey Pot

#D8CX: I pledge that Honeypot will have a full Drupal 8 release on the day that Drupal 8 is released.

Honeypot uses both the honeypot and timestamp methods of deterring spam bots from completing forms on your Drupal site (read more here). These methods are effective against many spam bots, and are not as intrusive as CAPTCHAs or other methods which punish the user [YouTube].

The module currently supports enabling for all forms on the site, or particular forms like user registration or password reset forms, webforms, contact forms, node forms, and comment forms.


Views data export

This module is designed to provide a way to export large amounts of data from views. It provides a display plugin that can rendered progressively in a batch. Style plugins are included that support exporting in the following types:

  • CSV
  • Microsoft XLS
  • Microsoft DOC
  • Basic TXT
  • XML.

Advanced usage

This module also exposes a drush command that can execute the view and save its results to a file.

drush views-data-export [view-name] [display-id] [output-file]


The batched export functionality of this module requires a MySQL database.
This module also requires version 2.7 or higher of views.

Similar modules

  • Views Bonus Pack includes an export submodule that allows exports, but is not scalable for large data sets.
  • Views Datasource allows exporting to XML/JSON among many others, but is geared towards small exports.
  • Services Views provides ways of exporting views results as XML, JSON and CSV using Services.


Multiupload Filefield Widget

This module is the correctly namespaced version of http://drupal.org/project/1115362. Please use this instead of that one.

The File module of Drupal 7 enables you to select only one file at a time which can be very time consuming in case of many files. This module uses the 'multiple' attribute of html5 to overcome this problem and presents a widget called 'Multiple' that can be used with fields of type File.


Facet API

Facet displays


The Facet API module allows site builders to easily create and manage faceted search interfaces. In addition to the UI components that come out of the box, themers and module developers can build their own widgets that can optionally be contributed back to Drupal.org. Facet API works with the core Search, Search API, and Apache Solr Search Integration modules (including Acquia Search) meaning that code and configuration can be reused as-is with the most popular search solutions available to Drupal. Refer to the documentation for more details.

How to Contribute


Field Permissions


The Field Permissions module allows site administrators to set field-level permissions to edit, view and create fields on any entity.


  • Enable field permissions on any entity, not just nodes.
  • Role-based field permissions allowing different viewing patterned based on what access the user has.
  • Author-level permissions allow viewing and editing of fields based on who the entity owner is.
  • Permissions for each field are not enabled by default. Instead, administrators can enable these permissions explicitly for the fields where this feature is needed.
  • Field permissions overview


Search API

This module provides a framework for easily creating searches on any entity known to Drupal, using any kind of search engine. For site administrators, it is a great alternative to other search solutions, since it already incorporates facetting support and the ability to use the Views module for displaying search results, filters, etc. Also, with the Apache Solr integration, a high-performance search engine is available for this module.
Developers, on the other hand, will be impressed by the large flexibility and numerous ways of extension the module provides. Hence, the growing number of additional contrib modules, providing additional functionality or helping users customize some aspects of the search process.

The prime example of a site using this module is drupal.org itself – the Search API, along with the database backend and Views, is used to generate the issue queue listings.



The LoginToboggan module offers several modifications of the Drupal login system in an external module by offering the following features and usability improvements:


IMCE Mkdir

IMCE Mkdir Screenshot

IMCE Mkdir allows users to create and delete sub-directories under directories assigned by IMCE.

1. Go to admin/settings/imce Assuming you have already created a IMCE profile. Under section 'Configuration profiles' click on approprate 'Edit' link.

2. On the next page find section 'Directories'. Set appropriate permission using the check boxes 'Add subdirectories' and 'Remove subdirectories'.

3. Click on 'Save configuration' button.


External Links

External Link Icon

External Links is a small module used to differentiate between internal and external links. Using jQuery, it will find all external links on a page and add an external icon indicating it will take you offsite or a mail icon for mailto: links.

Configuration options:


Inline Entity Form

Provides a widget for inline management (creation, modification, removal) of referenced entities.
The primary use case is the parent -> children one (product display -> products, order -> line items, etc.), where the child entities are never managed outside the parent form.
Existing entities can also be referenced.

Supports commerce_product_reference, commerce_line_item_reference and entityreference fields.
Requires integration code to be provided for each entity type that can be referenced.
Supports the commerce_product (including Commerce AutoSKU integration) and commerce_line_item, node, taxonomy_term entity types out of the box.
Integration for other entity types has not yet been written, patches welcome.

See the README for information about getting started and integrating other entity types.

This module was covered on Lullabot Module Monday and Commerce Module Tuesday.

Requires the Entity API module.
Requires Drupal 7.15 or newer.



Module maintainer @podarok

The Location module allows real-world geographic locations to be associated with Drupal nodes, including people, places, and other content. The Location module allows admins to collect addresses, geocode them (translate addresses to lattitude/longitude), and associate locations with Drupal nodes and users. Location data is automatically used to generate GeoRSS within your existing RSS feeds.

We need help from developers with #1931088: [META] Fixing tests

#1940818: [META] Location 7.x-3.6 release roadmap
#2127933: [META][SPRINT][Location] Documentation sprint

At present, it is the only module that provides the views integration necessary for implementing location-based searches and is designed for the purpose of finding points on a map within a vicinity of a user-supplied location.  If you are interested in the presentation and manipulation of geographic data beyond points (e.g., lines, polygons, etc) I would recommend using the geofield and open layers modules.

Important location search change: For those using the location search sub-module, as of location 6.x-3.2 and 7.x-3.0-alpha1 users must have the "access content" permission and any relevant node access rights to see node based location search results and the "view user profiles" and "view all user locations" permissions to see user based location search results.

If updating from earlier versions and using location search, make sure to check these permissions.


Better Formats

Global format defaults by role form.

Better formats is a module to add more flexibility to Drupal's core input format system.



  • Set the default format per role.
  • Set the default format per content type.
  • Control allowed formats per content type.
  • Hide format tips.
  • Hide more format tips link.
  • Hide format selection for nodes, comments, and blocks seperately, forcing the default to be used.
  • Expand the selection fieldset by default.
  • Disable the expand/collapse of the selection fieldset.
  • Set selection fieldset title.
  • Set more format tips link text.
  • Set default formats for nodes and comments separately.
  • Sensible defaults and fail overs for ease of use.
  • Works with CCK textareas.
  • Works with Panels comment form.
  • i18n module support for user defined strings.

7.x (needs more testing for a stable release)

  • Set allowed text formats per field.
  • Set default order of text formats per field.
  • Hide format tips per role.
  • Hide more format tips link per role.
  • Hide format selection per role per entity.
  • Currently only works on Field API fields on fieldable entities implementing core style text processing. The good thing is that is most things in core and contrib.