39,858 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.

URL field

Sample output of an url field

A lightweight URL field that is intended to be used as the basis for Drupal 8's URL field type in #501434: Move Link/URL field type into core. This can also easily be used to replace Drupal 6 profile URL fields.




  • External links only
  • Optional title support
  • Titles can be automatically fetched from the <title> value of the URL.
  • Widget with options to use title or URL as the link text, and trim length for long URLs or titles.
  • Token replacement of the title field on display.
  • API support for attributes for each URL field value (not exposed in the widget).

If you need more complex stuff like supporting internal links or targets, etc., then you can easily write more complex field widgets and formatters.

Recommended modules

  • Elements module if enabled, the default URL field widget will use the HTML5 'url' FAPI element.

Similar modules


    DISQUS is a comments platform that helps you build an active community from your website's audience. It has awesome features, powerful tools, and it's easy to install.

    Drupal Integration

    • Display recent comments, popular threads, and other widgets in blocks
    • Provide comments on any node type or user
    • Views 2/3 integration (number of comments)
    • Single Sign-On

    Disqus Features

    • Threaded comments and replies
    • Notifications and reply by email
    • Subscribe and RSS options
    • Aggregated comments and social mentions
    • Powerful moderation and admin tools
    • Full spam filtering, blacklists and whitelists
    • Support for Disqus community widgets
    • Connected with a large discussion community
    • Increased exposure and readership



    Scott from Level Up Tuts put together a great tutorial on how to install Disqus on Drupal 7. He walks you through these steps:

    1. Download and install the Disqus module into your respective sites directory (sites/all/modules).

    Features Override

    Features Override is used to change (override) existing Features. You may want to use it if:

    • You are installing a feature module that requires this module.
    • You have a site built on features - e.g., an Open Atrium or Commerce Kickstart site - and you want to make changes without losing them when you upgrade to a new version.
    • You are a feature developer looking to selectively override components (Views, content types, etc.) of existing features and export just the changes to code.

    Initial 1.x development sponsored by Chocolate Lily. The 7.x-1.x branch was unstable with several reported issues for views (and, likely, panels). That branch has been abandoned with new development occurring in the 7.x-2.x branch (sponsored by Phase2 Technology). Drupal 6 users should continue to use the 6.x-1.x version...no 2.x branch is planned.

    NOTE: Overrides exported with version 1.x are NOT COMPATIBLE with overrides exported with version 2.x. If upgrading you should disable the 1.x override, remove the 1.x Features Overrides module, install/enable the Features Overrides 2.x version, then re-export your changes as new overrides.

    Drupal 8

    For similar functionality in Drupal 8, please see the Config Actions module.




    Integration with the Leaflet JavaScript mapping library.

    Now compatible with Leaflet JS 1.0.3 !

    IMPORTANT: if you wish to use Leaflet JS 1.0.3 with Leaflet MarkerCluster, please read the note on its project page.

    A Modern, Lightweight Open-Source JavaScript Library for Interactive Maps by CloudMade.

    Menu Firstchild

    By default, Drupal requires that you enter a path for each menu link you add/edit from the Menu administration page.
    There are cases you may want to create a parent item, without any path, that simply links to its first viewable child item.
    Menu Firstchild provides this functionality.

    Feeds XPath Parser

    This project is in maintenance mode. No new features will be added. New installs should use Feeds extensible parsers instead.

    Feeds XPath Parser is a Feeds plugin for parsing XML and HTML documents. It enables site builders to leverage the power of Feeds to easily import data from complex, external data sources. Each element you wish to extract is setup using configurable mapping queries, saving time for developers who would otherwise have to code complex, specific-use modules. It also enables end-users to build web scrapers and other useful tools within Drupal.

    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.


    Commerce Addressbook

    Commerce Addressbook is a module that allows authenticated customers to reuse
    previously entered addresses during checkout.
    They can manage all entered addresses in their user panel (user/%user/addressbook).

    Note that for data consistency reasons editing a previously entered address
    won't change it on previously made orders.


    The 7.x-3.x version offers UX improvements and is currently the active development version for new features.

    Difference between 2.x and 3.x

    User's default customer profile will now be displayed below the address selection list in a "read-only" mode (we're no longer trying to refresh the field values after selecting a profile).
    If you need to make some changes to an existing customer profile, you'll be able to using an "Edit" button.
    A new option has been added to the select list ( "+ Enter a new address") that will let you explicitly specify a new address.

    Image Link Formatter

    Configuration page for the formatter: Image Link Formatter, select custom link.

    This module is the result of the discussions around a requested feature to allow an image field to be displayed with a link to a custom URL:

    It seems many attempts and implementations have already been proposed:

    1. Link Image Field
    2. Link Image Formatter
    3. Other solutions: Custom Formatters:
      #1397700: [SOLVED} Error in src in Image formatter for link field or through theming options.
    4. Indirect solution through the setup of Linked Field with Tokens [Requires: Field Formatter Settings].

    This module has no pretention of implementing any field, it's just a formatter (display) to combine the Image field (Drupal 7 Core) and Link field (contrib).


    Showing the difference between fixed and responsive videos.

    It uses the FitVids.js library for fluid width video embeds (e.g. flash video in <iframe>s). You don't need it for pure HTML5 videos.

    It supports YouTube, Vimeo, Blip.tv and Kickstarter by default, and can use it with other video providers like Facebook or Viddler.

    It's useful if you are using a responsive theme (such as AdaptiveTheme, Omega or Zen), and want the videos to scale.


    jQuery selectors

    You can usually use the defaults. It assumes that you'll want to apply it to all videos in a div with class="region". If your theme uses a different class or id, or you only want to target certain videos, you can specify that class/id in the video containers field. You can use any valid jQuery selector, e.g.,


    You can specify as many containers as you want.

    Video providers

    Not all players will work with FitVids, but you can try it out by adding the domain (in the Custom iframe URLs field).


    Twig tweak

    Twig Tweak module provides a Twig extension with some useful functions and filters that can improve development experience.


    Provides functionality for storing, validating and displaying international postal addresses.

    The Drupal 8 heir to the addressfield module, powered by the commerceguys/addressing library.

    Disable Messages

    Disable drupal messages

    Gives a site owner options to disable specific messages shown to end users. The core drupal message system as offered by drupal_set_message is an excellent way for modules to send out messages to the end users. However not all drupal site owners are keen to show all the messages sent out by drupal core and all modules to their users. This module gives site administrators a reasonably powerful way to filter out messages shown to the end users.



    This module enables users to subscribe to be notified of changes to nodes or taxonomies, such as new comments in specific forums, or additions to some category of blog. Once enabled, all nodes will have an additional link that allows the user to change their subscriptions. Users have tab on their user screen to manage their own subscriptions. Users can also set an auto-subscribe function which notifies the user if anyone comments on posts they have made. Admins can turn this on by default.

    Subscriptions has its roots in 2003 (node/4189!). At version 5.x-1.x it was in a crisis, due to too many people having pulled in too many directions. In Winter '07 and Spring '08 it was rewritten from the ground up by chx and salvis, and we are maintaining it to this day.

    Commerce Discount

    The discounts overview table.

    Commerce Discount provides a user interface for creating and managing various types of Product and Order discounts. It lets merchants more easily configure promotions without having to learn Rules, a core requirement for product pricing in Commerce 1.x.

    The module adds essential features to promotions through the use of a custom entity type, including fields to configure how a discount is displayed in the cart, usage counts, valid date ranges, and more. Refer to the project documentation to learn how these features work.

    Furthermore, since these custom entities are exportable, developers who prefer to can manage them in code for version control and testing / deployment purposes.

    Vocabulary Permissions Per Role

    Allows adding to/editing terms of/removing terms from vocabularies per role.

    You have set up some vocabularies (with some terms) like Color (Red, Green, Blue) and Shape (Toroid, Cube, Sphere). Maybe you even have a vocabulary that controls who can view a specific node (with terms) like Access control (Editors, Colleagues, World). Here comes trouble: your precious editors want to add more Colors, or reorder the terms of the Shape vocabulary (probably they want to see Sphere before Cube, who knows,) and you do NOT want to grant your editors the administer taxonomy permission, as it grants too much power (and that implies too much sharing of responsibility). Without this permission they were NOT able to do the mentioned tricks: adding terms to a vocabulary but not to another, reordering/editing terms of a vocabulary but not another's, etc.

    These problem of yours is the past--just download and install vppr.module, and set it up at Administration >> Site configuration >> Vocabulary permissions.

    Date iCal

    Date iCal is your one-stop shop for iCal support in Drupal. It provides a plugin for Views to enable exporting your site's calendar as an iCal feed, and a plugin for Feeds to enable importing external iCal feeds into your site's calendar.

    Administration theme

    Administration theme settings page

    Drupal allows you to define a different theme for administration pages (Administer -> Site configuration -> Administration theme). By default this only applies to pages with a path starting with 'admin' and content editing pages.

    The Administration theme module allows you to use this theme on more pages like :
    - batch processing pages
    - devel node load and render pages
    - coder code review pages
    - pages you define yourself in the provided textarea

    The Drupal 5 version adds the option "Use administration theme for content editing" available in Drupal 6 core.

    Some of these options will only be available to you if they apply to your installation, i.e. you have the module installed which generates these pages.

    Use default theme (not administration theme) for anonymous users on admin/*

    This is possible using this module. See issue http://drupal.org/node/372156 for more details.

    Module maintainers

    You can add extra pages by implementing hook_admin_theme_options in a module.
    For Drupal 7 the hooks are hook_admin_theme_info and hook_admin_theme_check

    How can you get involved?

    Google Analytics Tokenizer

    Google Analytics information appended to the bottom of a Contact Form email

    Haven't you always wanted immediate access to the Google Analytics information about your visitors? Now you can! This module will extract the information found in the __utmz and __utma cookies and neatly package them into tasty little tokens.

    Installation Instructions:
    1. Enable Google Analytics. (Duh!)
    2. Enable the Token module. (It is a token-izer, remember?)
    3. Enable this module. (Wow, could it be any simpler?)

    List of Tokens:

    Token ID Purpose
    D6: [ga-source]
    D7: [ga_tokenizer:ga-source]
    Search engine, domain name, newsletter name, or other source.
    D6: [ga-campaign]
    D7: [ga_tokenizer:ga-campaign]
    To identify a specific product promotion or strategic campaign.
    D6: [ga-medium]
    D7: [ga_tokenizer:ga-medium]
    A medium such as organic, referral, twitter, email, feed, or cost-per-click.
    D6: [ga-content]
    D7: [ga_tokenizer:ga-content]
    Used for A/B testing. To differentiate ads or links that point to the same URL

    Default config

    Default config is a way of using the Features exports for permissions and roles to provide default settings for installations profiles. This is necessary since using Features directly forces the user to work only with the specified users and roles. This is a good thing in many cases, when you for instance create sites, but when you create distributions this is not really a viable option, since you don't want to lock in your users to one configuration, but you do want to provide sane defaults that works for most of them.

    The future

    There are some issues in the features issue queue that might make this module obsolete. We will try to actively work in that direction in order to not have to have this functionality into another project.


    This module does not provide it's own UI for exporting configuration, instead it uses the export from Features. In order to get default config to manage your permissions and roles, export your configuration as you would normally do, and then go into your export file, for instance yourfeature.features.user_permission.inc and change the hook function defintion from:

    function yourfeature_user_default_permissions() {


    function yourfeature_defaultconfig_user_default_permissions() {


    Privatesg message list

    Privatemsg allows your site's visitors to send private messages to each other. Perfect for community oriented sites, such as forums and social networking sites. Many additional features are available as separate modules.

    Current features

    1. send and receive private messages on a site (between multiple recipients)
    2. threaded conversations (make it easier to keep track of messages and replies)
    3. search private messages
    4. tagging and filtering (helps organise conversations)
    5. user blocking
    6. e-mail notifications of new messages

    Which version of Privatemsg should I use?

    Comparison of feature differences between Privatemsg branches

    Stable branches: 7.x-1.x and 6.x-1.x

    If you are interested in a stable and tested version of Privatemsg, use the latest stable 1.x release. No new features will be added to these branches and the API and UI is stable and will not be changed (including strings for translation).

    Development branches: 7.x-2.x and 6.x-2.x

    New features are being added constantly to these branches, so use these if you want to test and help with development.

    Want to get involved?



    Shadowbox is a JavaScript modal media viewer application for viewing images, video, Flash and other content in a modal window.

    From the author of Shadowbox:

    Shadowbox is an online media viewer application that supports all of the web’s most popular media publishing formats. Shadowbox is written entirely in JavaScript and CSS and is highly customizable. Using Shadowbox, website authors can showcase a wide assortment of media in all major browsers without navigating users away from the linking page.

    Taxonomy CSV import/export


    This module allows you to import or export taxonomy from or to a CSV (comma-separated values) file or with a copy-and-paste text.

    It helps you to quick import a non-standardized vocabulary, for example an old thesaurus, a hierarchical taxonomy or a simple list of children, synonyms, descriptions, weights or related terms to terms. It can be used as a module or as an API with a plug-in mechanism. It can manage internationalized vocabularies with i18n_taxonomy, a submodule of i18n module [Drupal 7 only].

    Taxonomy CSV supports drush: you can import/export taxonomies from the command line interface with drush taxocsv-import and drush taxocsv-export.

    More informations on Taxonomy CSV import/export are available on the help page in English (7.x version), in English (6.x version) or in French (6.x version). A quick demo is available here, in Dutch.


    fancyBox 2 in Drupal

    The Fancybox module is the best way to incorporate the fancyBox jQuery plugin into Drupal. Display images, HTML, YouTube videos, Google maps in an elegant and aesthetic lightbox alternative.