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

Entity API

This module extends the entity API of Drupal core in order to provide a unified way to deal with entities and their properties. Additionally, it provides an entity CRUD controller, which helps simplifying the creation of new entity types.


  • Drupal 7.2 or later; suggested Drupal >= 7.15


You can find documentation in the handbooks. Also check the README and the provided API docs in entity.api.php.


For site-builders

This is an API module, so it doesn't provide any end-user features. However, it provides some entity generic functionality to other modules that site-builders may leverage:

  • A Views display plugin and field to render or link to any entity (by view-mode)
  • A CTools content plugin to render any entity (by view-mode)



A model of how token works

Tokens are small bits of text that can be placed into larger documents via simple placeholders, like %site-name or [user]. The Token module provides a central API for modules to use these tokens, and expose their own token values.

Note that Token module doesn't provide any visible functions to the user on its own, it just provides token handling services for other modules.


Google Analytics

Google Analytics for Drupal configuration page

Adds the Google Analytics web statistics tracking system to your website.

The module allows you to add the following statistics features to your site:

  • Single/multi/cross domain tracking
  • Selectively track/exclude certain users, roles and pages
  • Monitor what type of links are tracked (downloads, outgoing and mailto)
  • Monitor what files are downloaded from your pages
  • Custom dimensions and metrics support with tokens
  • Custom code snippets
  • Site Search support
  • AdSense support
  • Demographics and Interests support (formerly known as DoubleClick remarketing support)
  • Anonymize visitors IP address
  • DoNotTrack support (non-cached content only)
  • Drupal messages tracking
  • Modal dialog tracking (Colorbox)
  • Access denied (403) and Page not found (404) tracking
  • Cache the Google Analytics code on your local server for improved page loading times
  • Enhanced Link Attribution support
  • User ID tracking across devices
  • Changing URL fragments can be tracked as pageviews
  • Debug mode with analytics_debug.js




The Pathauto module automatically generates URL/path aliases for various kinds of content (nodes, taxonomy terms, users) without requiring the user to manually specify the path alias. This allows you to have URL aliases like /category/my-node-title instead of /node/123. The aliases are based upon a "pattern" system that uses tokens which the administrator can change.




Date Popup module

This package contains both a flexible date/time field type Date field and a Date API that other modules can use.

The D5 and D6 versions of the Date field require the Content Construction Kit (CCK) module. The D7 version works with the core Field functionality.
D8 includes Date in core.

The Drupal Handbook pages are at Date/Calendar Documentation.

Be sure to read Debugging Information before reporting a problem. Going through those steps may resolve your problems and will help provide enough information to tell if this is a bug.



IMCE Screenshot

IMCE is an image/file uploader and browser that supports personal directories and quota.



Variable module provides a registry for meta-data about Drupal variables and some extended Variable API and administration interface.

This is an API module so it must be installed only when other modules require it.

Module Developers: Please declare your variables.

Add-ons for module developers here: Variable Extra

This is a nice introduction to the module by Lullabot, Module Monday: Variable.


  • So other modules can know about your module's variables and they can be translated, exported, used in views, etc.
  • You'll get automatic variable edit forms, tokens, access control and uninstall for free
  • Your module's variables will be allowed for Variable Realms being able to get values for each language (Internationalization) or Domain (Variable Domain)



Module description

The link module can be count to the top 50 modules in Drupal installations and provides a standard custom content field for links. With this module links can be added easily to any content types and profiles and include advanced validating and different ways of storing internal or external links and URLs. It also supports additional link text title, site wide tokens for titles and title attributes, target attributes, css class attribution, static repeating values, input conversion, and many more.

Requirements / Dependencies

  1. Drupal 6: Custom content module (CCK)
  2. Drupal 7: Fields API is provided already by core [no dependencies].
  3. Drupal 8: Link module is in core now. No module installation needed. Yay! Don't forget to activate it. It's deactivated by default.

INFO Since some misleading user reports we need to clarify here - Link module is NOT about to add links to any menus or the navigation nor primary/secondary menu. This can be done with default menu module (part of Drupal core). The Link module provides an additional custom field for storing and validating links to be added with any content type, which means another input block additional to your text-body, title, image and any other input you can make on new content creation.


Email Field

This module provides a field type for email addresses.


  • validation of emails
  • turns addresses into mailto links
  • encryption of email addresses with
  • contact form (see Display settings)
  • provides Tokens (for D 7.x: use Entity tokens from the Entity API)
  • exposes fields to Views
  • can be used with Rules
  • Panels Integration

Drupal 8

The basic email field type is in core now: #1668332: Add an E-mail field type into core, making this contrib module obsolete. Specific formatters (like the contact form) can live in separate contrib modules.

D6 to D7 Upgrade

  1. Run Core upgrade path
  2. Install Content Migrate from CCK
  3. Go to "Structure" -> "Migrate Fields"
  4. Select Email fields you want to upgrade and submit the "Migrate selected fields" button



The Rules module allows site administrators to define conditionally executed actions based on occurring events (known as reactive or ECA rules). It's a replacement with more features for the trigger module in core and the successor of the Drupal 5 workflow-ng module.

Example use cases

  • Build flexible content publishing workflows changes
  • Send customized mails to notify your users about important
  • Create custom redirections, system messages, breadcrumbs, ...
  • Build an eCommerce store using Drupal Commerce

And many more...



Metatag | Drupal 7 test site.png

The Metatag module allows you to automatically provide structured metadata, aka "meta tags", about a website. In the context of search engine optimization, when people refer to meta tags they are usually referring to the meta description tag and the meta keywords tag that may help improve the rankings and display of a site in search engine results. In addition, the module provides support for meta tags (Open Graph Protocol from Facebook, Twitter Cards from Twitter) that allow control of how content appears when shared on social networks.


Page Title

Page Title

The word "title" is a bit overloaded. Every piece of content in Drupal has a title, and so does every page. The page title is the one found in the HTML head inside the <title> tag. It is also used on SERPs (Search Engine Result Pages) and can greatly enhance your websites SEO (Search Engine Optimization).

This module gives you granular control over the page title. You can specify patterns for how the title should be structured and, on content creation pages, specify the page title separately to the content's title.


Address Field

Address field widget form

Address Field defines a new field type to store international postal addresses, implementing a subset of the top-level address elements defined in the xNAL standard (see the glossary below).

The field configuration lets you determine which elements of an address should be present in the field widget form and which ones should be rendered for display.

This module was initially developed to support address storage in Drupal Commerce customer profiles, but it is now used by a wider variety of modules dealing with physical addresses and mapping.


  • Standardized storage of international postal addresses based on the xNAL standard (the same format used by Google Maps for geocoding)
  • Per-country edit form and formatting of addresses
  • Proper formatting of address forms and output on a country by country basis as they are added to the module; see the address formats issue queue for pending country support
  • Feeds integration for address importing


Content Construction Kit (CCK)

The Content Construction Kit allows you to add custom fields to nodes using a web browser.



FileField with Progress Bar

FileField provides a universal file upload field for CCK. It is a robust alternative to core's Upload module and an absolute must for users uploading a large number of files. Great for managing video and audio files for podcasts on your own site.


  • Configurable upload paths allow you to save files into per-field or per-user directories
  • Per-field and per-node file size limits
  • Extensive API for extending field widgets and managing files
  • Full revision/translation file management
  • Views support
  • Ajax Uploads (and progress bar support with the PECL uploadprogress extension)
  • Pretty Icons
  • All the goodness of CCK (multiple output formats, shared fields, multiple values, and much more)


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.


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.


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.


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.


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



Test message


Lets you theme your messages the same way you theme the rest of your website.


Views Field View

This module allows you to embed a view as a field in a view. A new field handler is made available, so this can also be used in area (header/footer/empty) handlers as well as rows.

This view handler can accept arguments from fields of the parent view using tokens and pass them into the child view for each row. Raw or rendered token values can be used, as well as static values.


Service links

Select and sort services

Service Links facilitates the adding of social networks links or javascript buttons within the content with a special focus on developers and themers interested to extend their number or customize their displaying. Built on Drupal for Drupal doesn't include commercial advertising or spying hidden code and doesn't require third part libraries.

The services included are various: del.icio.us, Digg, Facebook/Facebook Share/Facebook Like, Furl, Google Bookmark/Google Plus One, IceRocket, LinkedIn/Linkedin button counter, MySpace, Newsvine, Reddit, StumbleUpon, Technorati, Twitter/Twitter widget, Yahoo Bookmark, and many more, they are split for language in different packages: basque, dutch, farsi, german, hungarian, italian, polish, russian, spanish, swedish.

Other services are availables to be included within an extra module which can be built easily through a web interface.



This module provides a phone field type

You should probably consider using https://www.drupal.org/project/telephone instead. Eventually, the validation and formatting features of this module will be moved into a new module that extends the telephone module in both D7 and D8.