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

Custom Breadcrumbs

Custom Breadcrumbs 2 (6.x-2.x and 7.x-2.x)

Many new features have been added including support for Views, Panels, Taxonomy vocabularies and terms, paths, and a simple API that allows contributed modules to enable custom breadcrumbs for module pages and theme templates. These are implemented using optional, independent submodules that depend on the main Custom Breadcrumbs module.

In addition to breadcrumb visibility, this version provides an option permitting PHP code snippets to be used in forming the breadcrumb titles and paths. Multiple languages are also supported.

Any changes must go in the 7.x version first.

Custom Breadcrumbs 1 (6.x-1.x and 7.x-1.x)

Allows administrators to set up parametrized breadcrumb trails for any node type. This allows CCK-style node types to have "Home > User Blog > 2005 > January" style breadcrumbs on the node view page itself, synchronizing cleanly with custom views or pathauto aliases. Breadcrumb visibility can be customized via a php snippet.

There are no maintainers doing any work on these branches, so please switch to version 2! :) If, for some reason, you'd like these branches maintained, please offer to become a co-maintainer to work on them.

Similar Modules



Ordering a subqueue

The Nodequeue module allows users to collect nodes in an arbitrarily ordered list. The order in the list can be used for a any purpose, such as:

  • A block listing teasers for the five top news stories on a site
  • A user’s favorite music albums
  • A group of favorite from which one is randomly displayed

Nodequeue provides a simple drag-and-drop interface to manually order any queue. Additionally, it allows nodes to be added and removed from queues without needing edit permissions to the node. Nodes can be added to queues either from a queue management tab or by links on the node teaser.

Smartqueue API

Nodequeue provides a robust API that allows other modules to define smartqueues, which are associated with external data. For example, the included taxonomy smartqueue creates subqueues for a given queue for every term in the chosen vocabulary. Nodes are then only eligible for subqueues whose term matches the nodes terms. This makes it very easy to have queues for each category without cluttering the management page.

Modules that Extend Nodequeue:


Exclude Node Title

A checkbox to exclude title


This module handles a very simple functionality, decide whatever to exclude a node title from full node page or node teasers.
It provides a checkbox on node-edit pages for easier exclusion, or you can use the admin page to manually enter a list of node id's to exclude title.
Also provides the option to hide all titles of a certain Content type. From the administrative interface you can select a content type to hide title for.
Use case: Let's say you create a content type called: Lightbox content, and in your layout lightbox content will have titles set on title attribute of the link, rather than inline on your page, so you would like to exclude title from displaying inline for all your nodes of type Lightbox content, simple, just check the option and voila.

How it works?

This project has some other, very simple approaches, like hiding the title from CSS using display: none or applying the template_preprocess_page hook in your theme to make the title variable null.
Actually Exclude Node Title does the same thing, only that you don't have to manually make different hacks, hard to track from the administration interface.

New features 7.x-1.5


    Media: Vimeo


    Media: Vimeo adds Vimeo as a supported media provider.

    Most popular web services, including Vimeo, support oEmbed. It is generally recommended to use Media: oEmbed instead of specific provider modules.


    Media: Vimeo has one dependency.

    Contributed modules



    The Masquerade module allows site administrators (or anyone with enough permissions) to switch users and surf the site as that user (no password required). That person can switch back to their own user account at any time.

    This is helpful for site developers when trying to determine what a client, logged in as themselves, might see when logged into the site.




    DraggableViews makes rows of a view "draggable" which means that they can be rearranged by Drag'n'Drop.

    Have you ever rearranged Blocks?, sorted Taxonomy terms? or reordered Menu items at the Drupal administration pages? All these pages use the tabledrag.js javascript that enables Drag'n Drop on HTML-tables.

    With DraggableViews you can apply this tabledrag.js to any Views-generated table.

    Current Development

    The goal is to put out 7.x-2.1 & 7.x-2.2 then focus on D8. I (iStryker) had a talk with Yuriy (ygerasimov) at DrupalCon Portland and we both agreed that the focus of this module should be D8, and be backported to D7.

    If you would like to help us, with migrating to Drupal 8, or improving this module or are interested in paid services, please Contact Me.

    7.x-2.x branch


    Taxonomy Manager

    Taxonomy Manager Interface (7.x)

    This module provides a powerful interface for managing taxonomies. A vocabulary gets displayed in a dynamic tree view, where parent terms can be expanded to list their nested child terms or can be collapsed.

    The Taxonomy Manager has following operations and key features:

    • dynamic treeview
    • mass deleting
    • mass adding of new terms
    • moving of terms in hierarchies
    • merging of terms (using the Term merge module in 7.x)
    • fast weight changing with up and down arrows (and AJAX saving)
    • AJAX powered term editing form
    • simple search interface
    • CSV Export of terms
    • i18n support for multilingual vocabularies (per language terms)
    • Double Tree interface for moving terms in hierarchies, adding new translations and switching terms between different vocabularies

    For using the Taxonomy Manager you should have JavaScript and automatically load of images enabled in your browser.

    This is a Google Summer of Code 2007 project. Read my proposal and my status reports for more information.

    Drupal 7
    The Taxonomy Manager is incompatible with the Devel Themer (#874488: Clicking Add button does nothing - incompatibility with Devel module and Tao based themes (like Rubik))


    GMap Module

    Module maintainer @podarok

    We are in CodeFreeze stage for 7.x-2.x as preparing and refactoring for #2139223: Drupal 8 gmap version
    Only bug and security fixes can be commited
    All feature requests should be filled against latest 7.x-2.x branch

    The GMap module provides an interface to the Google Maps API within Drupal. It integrates with the Location module to provide users a clickable map for entering latitude and longitude, as well as to display maps of Drupal nodes and users. GMap can be used to create interactive maps with various map markers and content in map bubbles, taking advantage of Drupal's other content management features. The module also provides a Views display plugin which allows users to display the results of a view on a Google map.

    Drupal 8 battleplan #2139223: Drupal 8 gmap version
    Supported by Druler



    Picture 5.png

    Integration with the ShareThis social bookmarking utility on selected node types.

    The code for this project was based on the original share project for Drupal 5.x. The code for this project has been trimmed down to only work with the ShareThis system, and not require any additional modules to work properly.


    Nodewords: D6 Meta Tags

    This project allows you to add meta tags to Drupal pages, both manually and automatically based on various settings. Paying attention to meta tags, such as keywords, description and canonical URL, may help obtain better search engine positioning. The module aims to support the most useful meta tags, others may be created using the module's custom hooks.

    Note: My current focus is on getting the D7 Metatag module to a stable point, at which point work will continue again on Nodewords.

    The 6.x-2.x branch is currently unsupported

    While forthcoming 6.x-1.14 release will probably be the final 6.x-1.x release, I've decided that the current 6.x-2.x branch (i.e. 6.x-2.0-alpha1) is no longer supported while I work out the module's future.

    Version notes

    Drupal 7 versions
    Use the new Metatag module which is a ground-up rewrite of Nodewords with an upgrade path being worked on.
    Drupal 6 versions
    • The 6.x-1.x branch is under active development.



    Linkit 7.x-3.x UI.

    Linkit provides an easy interface for internal and external linking with editors and fields by using an autocomplete field. Linkit links to nodes, users, managed files, terms and have basic support for all entities by default.
    Linkit has three major advantages over traditional linking

    1. The user does not have to copy or remember a URL.
    2. It is a sustainable solution for internal linking.
    3. It has a user friendy UI.


    • Basic support for all entities.
    • Token support (for better descriptions on search results in Linkit).
    • Provides a link button, similar to the ordinary link button in most editors.
    • Can be attached to fields.
    • The button opens a dialog with an autocomplete field for searching content.
    • Support for IMCE.
    • Settings are handled by profiles, similar to the profiles of the WYSIWYG module. Thus, it is possible to customize the behavior of Linkit in detail.
    • Works with and without Pathologic.
    • Internal absolute URL:s converts automatically into Drupal paths, very simple for users who are used to copy-pasting.


    Conditional Fields

    Conditional Fields node form example

    Define dependencies between fields based on their states and values.

    Conditional Fields for Drupal 7 is an user interface to the new States API, plus the ability to modify fields appearance and behavior on certain conditions when viewing content.


    Conditional Fields allows you to manage sets of dependencies between fields. When a field is “dependent”, it will only be available for editing and displayed if the state of the “dependee” field matches the right condition.
    When editing a node (or any other entity type that supports fields, like users and categories), the dependent fields are dynamically modified with the States API.
    You can, for example, define a custom “Article teaser" field that is shown only if a "Has teaser" checkbox is checked.


    EVA: Entity Views Attachment


    "Eva" is short for "Entity Views Attachment;" it provides a Views display plugin that allows the output of a View to be attached to the content of any Drupal entity. The body of a node or comment, the profile of a user account, or the listing page for a Taxonomy term are all examples of entity content.

    The placement of the view in the entity's content can be reordered on the "Field Display" administration page for that entity, like other fields added using the Field UI 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.


    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.


    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.


    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.



    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



    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.



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


    File Entity (fieldable files)

    File entity provides interfaces for managing files. It also extends the core file entity, allowing files to be fieldable, grouped into types, viewed (using display modes) and formatted using field formatters. File entity integrates with a number of modules, exposing files to Views, Entity API, Token and more.

    File Entity is required by the 7.x-2.x branch of the Media module.

    The File entity project is not compatible with Media 7.x-1.x. You must use the File entity module bundled with Media 7.x-1.x.



    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)


    Meta tags quick

    Meta tags support based on Fields API.


    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 :