17,718 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.

Language Icons

Language Icons

This module provides icons for language links, both for the Language switcher block and (optionally) for node links. It is a spin-off from Internationalization (i18n) package.

As basic multilingual support is now built into Drupal 6 core, it doesn't depend anymore on any other contributed module. This module will work as simple add-in for Drupal 6.

However, for a fully enabled multilingual site, the Internationalization package is recommended.


Multiple forms

This is an API module which lets you put several forms into one <form>.

The usage is very simple: there is one API function to call: multiform_get_form() and you can pass the form names in the attribute list.


Search API Database Search

This module provides a backend for the Search API that uses a normal database to index data. It is therefore a cheap and simple alternative to backends like Solr, but can also be a great option for larger sites if you know what you're doing.
The prime example of a large site using this module is this site itself – all issue queue listings are generated by the Search API using this module as the backend.


Video Embed Field

Video Embed Field - Detail and Listing Displays

Video Embed field creates a simple field type called Video Embed that allows you to embed videos from YouTube and Vimeo or show their thumbnail previews simply by entering the video's url.


There are multiple options to configure the way that the embedded video will act, based on the provider of the video. This is configured by setting up Video Styles which can then be applied as a formatter setting. You can access these settings in your site at admin/config/media/vef_video_styles.

The module also provides support for retrieving and displaying thumbnails for each video via a field formatter. This way you can configure your detail page to show the video, while any listings simply show the thumbnail. This is setup via field formatter, so it will work through display modes and views equally well. The thumbnail is retrieved automatically based on the video's url.

For Developers

This module provides a hook system should you need to add other providers. See the video_embed_field.api.php file for more information. Video Embed Styles are ctools exportables for your convenience.


Image Resize Filter

The easiest end-user solution for resizing inline images.

This filter makes it easy to resize images, especially when combined with a WYSIWYG editor such as tinyMCE, CKeditor etc. Users never have to worry about scaling image sizes again, just insert an image and set it's height and width properties in HTML (this is done automatically by WYSIWYG editors) and the image is resized on output to match the HTML.


  • Automatically resizes both local and (optionally) remote images.
  • Optionally create a link to full size images from the resized inline versions.
  • Prevents inline "hot linking" of images from other sites by storing them locally.
  • Adds height and width attributes to inline images when your users are too lazy to add them.

Image Resize Filter demo and configuration options by Lullabot.
Demo combining FileField Insert with Image Resize Filter by MustardSeed Media.

Webkit/Chrome/Safari Users:
The "resize handles" typically shown in WYSIWYGs do NOT work in Webkit-based browsers (which includes Safari and Chrome) due to a shortcoming in the implementation of these browsers. See https://bugs.webkit.org/show_bug.cgi?id=12250 and this issue for discussion: #1102294: Webkit-based browsers (Safari/Chrome) do not support resize handles.



Provides integration with the geoPHP library: https://geoPHP.net

This module does not provide any direct functionality to end-users or site-administrators. Install it only if another module requires it.

GeoPHP is a open-source native PHP library for doing geometry operations. It is written entirely in PHP and can therefore run on shared hosts. It can read and write a wide variety of formats (WKT, WKB, GeoJSON, KML, GPX, GeoRSS). It works with all Simple-Feature geometries (Point, LineString, Polygon, GeometryCollection etc.) and can be used to get centroids, bounding-boxes, area, and a wide variety of other useful information.

geoPHP also helpfully wraps the GEOS php extension so that applications can get a transparent performance increase when GEOS is installed on the server. When GEOS is installed, geoPHP also becomes fully compliant with the OpenGIS® Implementation Standard for Geographic information. With GEOS you get the full-set of openGIS functions in PHP like Union, IsWithin, Touches etc. This means that applications get a useful "core-set" of geometry operations that work in all environments, and an "extended-set"of operations for environments that have GEOS installed.

Read the API Reference at: https://geoPHP.net/api.html
Learn about GEOS integration at: https://geoPHP.net/geos.html



Login Destination

Login Destination

The Login Destination module allows you to customize the destination that a user is redirected to after logging in, registering to the site (7.x), using a one-time login link or logging out (7.x). The destination can be an internal page or an external URL. It is possible to specify certain conditions like referring pages or user roles and make the destination depend upon them. You may use PHP snippets to provide custom conditions and destinations. It is also possible to keep users on the currently visited page after logging in or out.


Webform Validation

Webform Validation module

This module adds an extra tab to each Webform node, allowing you to specify validation rules for your Webform components. You can create one or more of the predefined validation rules, and select which Webform component(s) should be validated against those. By using the hooks provided by this module, you can also define your own validation rules in your own modules.



Ubercart is the most popular Drupal E-Commerce platform.

Ubercart is the most popular Drupal E-Commerce platform for your website. It implements everything you need to start selling products online. Web Developers from all skill ranges can use it to support a variety of E-Commerce industries-- including physical goods, digital downloads, or even subscription based billing services. Ubercart can do it all!

For more details, be sure to visit the What is Ubercart? page for more info.

Current Features:

  • Configurable product catalog includes catalog pages and a block to display product categories.
  • Flexible product creation system with product classes.
  • Multiple product image support out of the box.
  • Flexible product attributes system.
  • Basic product stock level tracking and notification.
  • Product features to add file downloads, role promotions, and more to products.
  • Single page checkout.
  • Automatic account generation (anonymous checkout).
  • Customer and administrator checkout notifications.
  • Simple order processing (with workflow for automated order processing).
  • Simple order creation and editing.



The migrate module provides a flexible framework for migrating content into Drupal from other sources (e.g., when converting a web site from another CMS to Drupal). Out-of-the-box, support for creating core Drupal objects such as nodes, users, files, terms, and comments are included - it can easily be extended for migrating other kinds of content. Content is imported and rolled back using a bundled web interface (Migrate UI module) or included Drush commands (strongly recommended).


Gallery formatter


Gallery formatter provides a CCK formatter for image fields, which will turn any image field into a jQuery Gallery.

(Drupal 6) Watch the screencast for a demo of how to set it up REMOVED BY BLIP.TV!, or visit the demo page for seeing it in action.


  • Two imagecache presets which will work out of the box beautifully.
  • The thumbnails run under an infinite carousel.
  • Degrades gracefully without JS enabled, the gallery still works.
  • Integrated out of the box with thickbox, colorbox (recommended as the thickbox upgrade path), shadowbox and lightbox2 for the view full links.
  • Works with the swfupload, image_fupload, and imagefield_crop widgets.
  • A hook for modules to provide styles for the galleries.
  • Two options for styles, no style and a green arrows style. No style should be used for developing your own styles.



Geofield is a module for storing geographic data in Drupal 7. It supports all geo-types (points, lines, polygons, multitypes etc.)

Widgets (Data Input)

Latitude and Longitude
Supports entering data as both Decimal Degrees (122.340932) and Degrees-Minutes-Seconds (-123° 49' 55.2" W). The Degrees-Minutes-Seconds input is very tolerant of inconsistent input.

Bouding Box
Four textfields where lat / lon can be entered

Well Known Text (WKT)
A textarea for direct WKT input

Draw on an OpenLayers Map
Allows drawing of Points, Lines, Polygons and Bouding Boxes

HTML5 Geolocation
Transparently asks the browser for the user's current location. Works great on Chrome and smartphones with GPS.

Geocode from another field
There is good Integrations with the Drupal 7 version of the Geocoder module (http://drupal.org/project/geocoder). This allows you to use data from one field to populate your geofield automatically. Supported geocoders include:

  • Google Geocoder: Addressfield, textfield
  • Yahoo Geocoder: Addressfield, textfield
  • KML: filefield, textfield
  • GPX: filefield, textfield
  • GeoJSON: filefield, textfield
  • Geotagged Image: filefield, imagefield

Formatters (Data Output)



While working on the new content translation system for Drupal 7, we (the Drupal core i18n team) faced the need to convert node titles to the Field API in order to make nodes fully translatable.

We were not able to make this happen in Drupal 7 core (#557292: TF #3: Convert node title to fields and #571654: Revert node titles as fields), so we decided to find a solution for this in contrib: the idea is replacing node titles with fields à la Automatic Nodetitles.

This will be exploited by the related Entity Translation project.


Title requires core version at least 7.15.


After enabling the module as usual, visit the Manage fields page of the content type, taxonomy vocabulary or "comment type" which you wish to replace fields of and click the replace link. That's all.

Bug fixing policy

This project is maintained mainly through voluntary and sponsored work, this means our resources are limited. Bug reports will be taken into consideration only if they allow to reproduce the reported issue:


    Meta tags quick

    Meta tags support based on Fields API.


    Profile 2

    Designed to be the successor of the core profile module, which is deprecated for Drupal 7. In contrast to the deprecated module this module provides a new, fieldable 'profile' entity - leverage the power of fields!


    Comparison to user account fields

    As described in the documentation Drupal 7 allows adding fields to user account pages - what serves as simple way for building user profiles. The main differences between that and profile2 are:

    • With profile2 user account settings and user profiles are conceptually different things, e.g. with the "Profile pages" module enabled users get two separate menu links "My account" and "My profile".
    • Profile2 allows for creating multiple profile types, which may be assigned to roles via permissions (e.g. a general profile + a customer profile)
    • Profile2 supports private profile fields, which are only shown to the user owning the profile and to administrators.

    Relationship to content profile


    Menu Breadcrumb

    menu breadcrumb settings screen

    By default, Drupal 6+ use the Navigation menu for the breadcrumb. This module allows you to use the menu the current page belongs to for the breadcrumb.

    As an added bonus, it also allows you to :


    Node export

    This module allows users to export nodes and then import it into another Drupal installation, or on the same site.

    Using this module you can save yourself a lot of time setting up new websites that have similar nodes to websites you've already made, migrating nodes to new Drupal versions, or between development/staging/production sites.

    You will need the same content types for the imports to work (unless using Feeds to import), and ideally relevant compatibility with fields, and modules.


    Embedded Media Field

    Maintainers: aaron (Aaron Winborn) and Alex UA (Alex Urevick-Ackelsberg)

    This extensible module will create fields for content types that can be used to display video, image, and audio files from various third party providers. When entering the content, the user will simply paste the URL or embed code from the third party, and the module will automatically determine which content provider is being used. When displaying the content, the proper embedding format will be used.

    The module is only an engine, and requires a supported module to function. These include 'Embedded Image Field', 'Embedded Video Field' and 'Embedded Audio Field'. These modules are included in the contrib folder of the module, so they can be easily activated from the module administration page.

    Please note: As of emfield 2.x, provider files for these modules are no longer included with the main emfield module, and must be downloaded separately- please see the list of projects providing provider files below.

    Modules extending Embedded Media Field

    The following modules work in conjunction with this project, largely to expose media providers (you'll need at least one of these to make the module useful):

    Media: 8Tracks
    Media: Archive


    Options Element

    Options Element Screenshot

    Options Element is a module that provides a better mechanism to specify select list, checkbox, and radio button options. Rather than requiring the user to use strange syntax like "key|value" in a textarea, Options Element provides a clean interface for specifying options. Developers may use $element['#type'] = 'options' in their own modules. If JavaScript is disabled, any 'options_element' will degrade to the standard textarea for specifying options.


    Custom Search

    This module alters the default search box in many ways. If you need to have options available like in advanced search, but directly in the search box, this module is for you.

    The module adds options to select: which content type(s) to search, which specific module search to use (node, help, user or any module that implements search), which taxonomy term to search in the results (by vocabulary), which input type to use.

    There are also options to: change the default search box label, add a default text in the search box, add advanced search criteria, change the default submit button text, use an image instead of the submit button, change the order of all the elements, include some elements in a popup block, and a filter can be added to the results page.



    This module allows users with proper permissions to upload images into Drupal. Thumbnails and additional sizes are created automatically.

    Images could be posted individually to the front page, included in stories or grouped in galleries.


    Image module ships with several add-on modules:

    • Image Gallery: Using taxonomy terms, organize and display your uploaded pictures in galleries (include Views support if you have Views 6.x-2.6 or later).
    • Image Attach: Allows you to easily attach image nodes to other node types.
    • Image Import: Simplify adding multiple images by importing images from a directory on the server.
    • ImageMagick Advanced: Adds advanced ImageMagick options such as image sharpening to the ImageMagick image toolkit. This component is unsupported.



    This module adds a weight option to enabled node types. Nodes with lower weight will float to the top of lists, while heavier items will sink.

    You might be interested in reading Comparison of Node Ordering Modules.


    File (Field) Paths

    The File (Field) Paths module extends the default functionality of Drupal's core File module, Image module and many other File upload modules, by adding the ability to use entity based tokens in destination paths and file names.

    In simple terms, File (Field) Paths allows you to automatically sort and rename your uploaded files using token based replacement patterns to maintain a nice clean filesystem.



    • Configurable file paths now use entity tokens in addition to user tokens.
    • Configurable file names.
    • Support for file based fields, including but not limited to:
      • Drupal core File module
      • Drupal core Image module
      • Video module.
    • File path and filename cleanup options:
      • Remove slashes from tokens.
      • Filter out words and punctuation by taking advantage of the Pathauto module.
      • Convert unicode characters into US-ASCII with the Transliteration module.
    • Automatically updates unprocessed file paths in any Text fields on the entity.
    • Retroactive updates - rename and/or move previously uploaded files.
    • Active updating - actively rename and/or move previously uploaded files.
    • Automatically create an redirect when moving uploaded files using the Redirect module.



    This module intends to become a repository for advanced form elements, that can be used by other developers. Feel free to add your special elements to the issue queue!

    Supported elements

    Element Module version(s) Included in Drupal core?
    HTML5 elements (url, email, search, tel, number, range) 6.x, 7.x 8.x+
    HTML5 attributes (placeholder, pattern) 7.x 8.x+
    Table Select 5.x, 6.x 7.x+
    Image Button 5.x 6.x+
    Table element 7.x 8.x


    Search 404

    Instead of showing a standard "404 Page not found", this module performs a search on the keywords in the URL, e.g. if a user goes to http://example.com/does/not/exist, this module will do a search for "does not exist" and shows the result of the search instead of the 404 page. This should help retain visitors coming in from old URLs linked from other sites or from search indices.

    It also includes search engine keywords detections as well as regular expression based term filtering from the URL.