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

Commerce Repair

This module is designed to repair missing fields from various commerce entities. After installing, visit the menu item that does the repair, admin->store->config->Repair Commerce Fields (admin/commerce/config/repair). Once you've done that you can uninstall the module.

If you're using a Commerce dev release after 3 November 2011, you don't have to patch Commerce at all. Earlier versions of Commerce require this patch to Commerce, which is now incorporated in the code.


Content Injector (formerly AdSense Injector)

AdSense Content Injector screen shot

Insert advertisements(or any text/HTML/JavaScript content) into nodes without editing individual nodes or tweaking theme templates. Insert ads or other content in node body or teasers automatically.

*Content Injector was formerly known as AdSense Injector.

Major new features

Reliable in-content insertion using HTML DOM and XPath manipulation

Want to insert ads or other content inside node bodies?

The 6.x-3.x and 7.x-3.x versions for Drupal 6 and 7 now provide reliable in-line insertion into a node's body.

This version provides three body insertion points: top, in-line, and bottom.

The in-line insertion template uses the PHP DomDocument's XPath query feature to select an insertion point. This is powerful, allowing for any valid XPath expression to select the insertion point -- but this also requires that you know what you're doing with XPath if you want to override the default insertion point.

Per-node insertion blocking

There are undocumented features in the 6.x-3.x and 7.x-3.x branches. You can prevent insertion on a per-node basis by adding ai:noinject to the start of a node's body text. See issue #1333800: Document ai:noinject feature: prevent automatic injection in node body of selected nodes. for more info.

In addition, if the node contains any AdSense module [adsense:xxx] manual insertion tags, this module will not inject any ad templates -- so in effect, if you place any AdSense ads using the AdSense module's [adsense] tags, this module's features are disabled for the node in question.

Upgrading from a previous release

The 6.x-3.x and 7.x-3.x branches are fully functional but lack ability to migrate settings from previous versions, so you'll have to reset all your current settings (save copies of your ad templates first!) and re-configure the module.

Call for testers

I need help testing the 6.x-3.x and 7.x-3.x branches new features. Please test and create bug reports if you find any problems.

Module Overview

You can control the node types and word count that will trigger insertion. For example, you can insert content only on "Story" or "Book" (or both) node types, and only if they have more than 300 words. You can use CSS styles to control placement on the page to some extent.

This module allows you to inject content at the top, bottom, or inline in a node's body field when a node is rendered on a full-page view. You can inject content before or after the node's teaser in teaser views. You can inject any arbitrary content you like: text, HTML, JavaScript, whatever.

The AdSense module is required only for [adsense] tag support; if you aren't using [adsense] tags, there is no dependency on the AdSense module as of the 6.x-3.x and 7.x-3.x branches.


Ad Views

Adds Views2 support to the Ad module for Drupal 6.x and Views 2.


Ubercart Terms of Service

This module includes an Terms of Service text (aka terms and conditions) and a [x] I agree with the Terms of Service checkbox for the cart or the checkout page of the purchase using Ubercart.

Just enable the module, cart module and checkout module of ubercart are required.
The configuration of this module is merged into the Ubercart pane settings.
You can configure the options for checkout in panes' checkout configuration page (admin/store/settings/checkout/edit/panes) and for cart in panes' cart configuration page (admin/store/settings/cart/edit/panes).

Options available for configuration:

  • Whether the ToS is displayed or not in cart and/or checkout pages.
  • The weight of the pane.
  • The node you want for ToS page.
  • In case of checkout, if the ToS is required or not.
  • If ModalFrame API is present, you can also select if the ToS is displayed in a popup window and its height & width.
  • Using conditional actions you can decide in which product classes the Tos is displayed.

ToS in js popup
You can enable the ModalFrame API module in order to have the Terms of Service opened in a js popup window, you can accept the ToS from this window.


Customer Profile Type UI

New widget's checkboxes appear at the top of the order edit page.

The big idea

This module provides a dynamic way to add new customer profile types for the Commerce module using a UI. So if you want another customer profile type other then the default billing pane that comes with Commerce, you can now easily add new ones using this module. Just as the billing profile type is fieldable and you control how fields are displayed, the same is true for any profile types you create using this module.


Commerce Views Display

Provides a views style plugin to render a Commerce add to cart form with a product display for a view of Drupal Commerce Products.

Sponsored by Commerce Guys

Why use Commerce Views Display?

  • You want to free yourself from node displays for Commerce Products.
  • You want to group Commerce Products into an add to cart form and do not need any description for that grouping.
  • You want to display all Commerce Products of type X on a single add to cart form
  • You want to create dynamic Commerce Product displays, ie All products under $10
  • You want to create multiple dynamic Commerce Product displays in a single view.
    • All products under $10 grouped by category
    • All products for a single base model field



This module is maintained even though the latest official 7.x-1.x release was a while ago. Drupal 7 co-maintainer(s) wanted! I want to have tests before I make another release because I have broken the module before. See #1393056: [Meta] Write tests. The -dev versions are pretty stable, although 7.x-2.x-dev only works with FillPDF Service so far.

What does this module do?

Most PDF modules generate PDFs from scratch; FillPDF is not one of those modules. Instead, it lets you fill in existing editable PDFs with data from your Drupal site. Editable PDFs are those forms that let you type into them. Read more.



This module can be used by other modules to collect and track payments. Through this API, any module can provide a payment form and payments can be handled and tracked centrally.

Payment forms

A payment form is the result of any business rules that include a request or recommendation of payment. Examples include shopping cart checkout pages, donation forms, event registration pages, user registration forms, or tip jars.

A module using this payment API can be very simple or very complex, implementing any amount of business rules that result in a payment request. From there, Pay collects payment information and submits it through a configured payment backend. All payment activities, no matter what they're for, are stored in one place for tracking and reporting purposes.

Modules that implement payment forms include:

If you develop a new payment form module, please let us know so that we can add it to this list.

Payment backends

A payment form can support one or more payment methods, using the functionality of a payment method handler. Support for the following backends are available for Pay:


    Commerce UPS

    Provides UPS shipping estimates in conjunction with the Commerce Shipping and Commerce Physical modules.

    This module requires an active UPS.com account in order to obtain estimated shipping rates.

    Once installed, the merchant's UPS account settings (and other UPS shipping settings) must be configured at admin/commerce/config/shipping/methods/ups/edit. Please refer to the README.txt file for additional information about how this module works and how to get it up-and-running.

    This module was designed to provide functionality that serves the majority of simple use cases. Advanced functionality involving multiple package sizes and types, void fills, and other custom-ish stuff will be considered once the simplest case is complete.

    Installation and Configuration

    Full details are available in the README.txt - be sure to read it before posting a new issue.

    1. Install and enable the module and all dependencies (be sure to use the latest version of everything). Add dimensions and weight fields (new field types via the Commerce Physical module) to all shippable product types. Populate dimensions and weight fields for all products.
    2. You MUST be using the commerce_shipping 2.x branch.


    Click Thru Tracking

    This module provides the ability for site admins to track clicks on their site such as advertising campaigns and newsletter click throughs.

    The clicks are organized into groups, so ad campaigns can be tracked if they involve more than one node.

    It works by displaying a special link (such as click/123/2) on each node. This is only visible to the admin or other users who have special privileges.

    This contains the node id (e.g. 123) and the group id (e.g. 2).

    The admin then uses this link externally (e.g. for advertising or newsletters). When visitors click on that link, the database is updated with daily, weekly and total clicks.

    Each node will have an extra tab that displays detailed clicks. There is also an overall click report under admin/logs.


    Commerce price by components

    Commerce price components

    Extension to Drupal commerce that provides a price formatter to enable/disable price components such as discounts or taxes when displaying prices. This gives the admin absolute control over which components should be displayed and which shouldn't.
    It also provides two Views handlers to display/hide price components in cart totals and order totals.


    Popup On Load

    The module allows to display a popup once after a certain delay on a page load. This fills a gap in popup modules family (Popups, Popup), which are designed to show popups only after a click on an HTML element, or to implement a complex behavior like modal dialog forms.

    If you want to just display a popup after a page load, the Popup On Load module possibly fits your needs. Module's main features:

    • Display a Colorbox-based popup on page load.
    • Easily alter JavaScript popup settings using hook_popup_onload_js_settings_alter().
    • Specify popup width/height (or let Colorbox decide).
    • Specify whether the popup is fixed.
    • Common settings for all popups: pages where they are displayed, delay time, cookie lifetime (how much popup will NOT be displayed again to the user).
    • Create an action for popup display, which can be easily integrated into Rules system.
    • Create a default rules set for popup display.
    • Gather simple popup statistics, showing number of views and clicks, and Click-Through-Rate.

    The module depends on following modules:


    CRM Core

    CRM Core

    CRM Core is a set of modules for managing contacts, activities and relationships within your Drupal website. It is designed to provide a basic framework for managing these items and interacting with other components of Drupal.


    CRM Core allows you to manage contacts, activities and relationships in your Drupal website. It provides extensive support for these entities, and includes a number of tools to make them easier to support in your Drupal website.

    • User Sync allows contacts to be paired with user accounts.
    • Match provides support for deduplication.
    • Reports provides a central repository for reports.
    • CRM Core Settings allows administrators to control the UI for managing contacts.

    In addition to these basic features, CRM Core integrates with a number of other components within Drupal, including views, VBO, ctools, rules, solr, services, field api and search api.

    Why use CRM Core?

    An extensive discussion of why you would want to use CRM Core can be found in the handbook. This page details the design philosophy behind CRM Core and other things to consider when trying to make the case for why you would want (or not want) to use it.


    DFP Small Business (Google Ad Manager)

    This module enables you to easily configure DFP Small Business (formerly Google Ad Manager) Ad Slots for Drupal. Each defined Ad Slot becomes a block and can be added to a region. You may also use [google_ad:ad_slot] to display Google Ad Manager ads within your content.




    KeyCAPTCHA - CAPTCHA with social features. You may support charity funds by using KeyCAPTCHA. Unlike many other captchas, it does not require any text typing.


    Marquee Block

    An example of Marquee Block in action

    Provides a jQuery-based scrolling marquee block that can be customized with your own text or HTML. Configure speed, scroll direction and scroll behavior easily on the Block setup page.

    Requires the "jquery.marquee.js" script, available at https://gist.github.com/2484402


    Commerce coupon batch

    Mass generation of Commerce coupons that allows you to create automatically hundreds of coupons.

    Important notice: for Commerce Coupon 1.x, use the 1.x branch. For 2.x, use the 2.x branch.


    Commerce Cart View Override

    This module provides the ability to override the default cart page view for Drupal Commerce.

    Sponsored by Commerce Guys

    Reasons this module exists

    • The cart page view is not a view with a page display; therefore, you cannot just override the path.
    • The cart page uses a view (commerce_cart_form) that is hard coded in the menu callback for the path "cart"
    • The cart page view is not exportable since the default view is defined in Commerce Cart.

    The Commerce Cart View Override module solves all of the problems and provides a way to select the view to display on the cart page.




    Curlypage is a cross browser, html strict code implementation of the pagepeel effect, "magic corner" type banner. With this module you can add those ads to your website.


    • Show curlypages on any corner of your pages.
    • Include as many curlypages as you want on your website.
    • Include up to four curlypage groups on same page (one on each corner).
    • Group culypages in one corner to show them in slideshow flow. Configure times: delay, timeslot, repeat for each curlypage on group.
    • Use CSS position model absolute or fixed. Absolute is only available for top curlypages.
    • Custom peel sizes.
    • Custom styles (you can choose 3 different styles).
    • Configurable images to show when the ad is closed and opened. Supported formats (static GIF, JPG, PNG, SWF).
    • SWF files support. You can upload an SWF file to use on peel. Only on open ad interactive SWF files are supported. see examples
    • Show a wait icon while curlypage is loading.
    • Mirror images on peel.
    • Transition on load.
    • Open curlypage with mouseover or mouseclick.
    • Configurable peel colors.
    • Peel color style, flat or gradient.
    • Sound effects.
    • Configurable link for ad.
    • Configurable speeds.
    • Automatic open and close features.
    • Close button.
    • Control visibility of each curlypage in a block visibility style: by language, by role, by page and by content type.


    UC Add to Cart Tweaks

    Ubercart compatible module.

    The UC Add to Cart Tweaks product feature allows you to alter ways the add to cart form behaves for any product in your Ubercart store. The current tweaks provided allow you to empty the shopping cart when the add to cart form is submitted and to alter the add to cart redirect URL. Extra integration with Ubercart's product classes interface allows you to set default Add to Cart Tweaks on every product created of any given product class.




    Show ads from a OpenX (formerly OpenAds) server. OpenX is a open source online program that will allow you to catalog and display advertisers, just like Google, Yahoo or Microsoft. This module allows you to show some ads in your site.


    • Small and light
    • Works with OpenX Manager module
    • Drupal code standards




    User Referral

    This module provides users with the ability to refer other users to a site they are registered at. When the new users registers, the referral is recorded.


    UC Node Checkout

    Ubercart compatible module.

    This module allows you to bind a node type to an Ubercart product, as typically required in event registration sites and alike.

    Binding a node type to a product has two effects:

    • When a user creates a node of that type, the specified product is added to the shopping cart with a node reference to the newly created node.
    • When a user buys a product with a bound node, an extra step is inserted into the checkout process requiring creation of a node of the bound type.


    Commerce No Payment

    This payment module adds a "No payment required" payment method (for free stuff).

    This module has been replaced by the Basic payment method from Payment.


    Commerce Webform

    This module extends both commerce and webform. It allows the site owner to create webforms with a new product field. The productfield allows the listing of one or more products which the site user would then select from. When the form is submitted the products are added to the users shopping cart. The webform results page shows the submitted forms and intiially marks products as unpaid. Later, when the user has paid for the products in their basket, the webform submission is updated and all products that made it to the checkout are then marked as having been paid for.

    The main use cases is for creating complex product selection screens. Webform is very good at capturing choices and offering options. The products that get added to an order can then be based on the results of the submission. An example would be a single webform which would offer registration to an event. All user choices could be captured in the webform, and product choices add to the shopping basket. For example, the main delegate attendance product is marked as mandatory on the webform meaning it has to be added to the basket. The optional wifi product could then be added as a second product field to the webform but not made mandatory. Alongside this the webform submission could collect other data about the delegate such as meal choices, seminar preferences or special access requirements.