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.
SEO Checklist
Drupal SEO Checklist - What is it?
The Drupal SEO Checklist uses Drupal SEO best practices to check your website for proper search engine optimization. It eliminates guesswork by creating a functional to-do list of modules and tasks that remain. Updated regularly with the latest techniques, it makes on-page Drupal search engine optimization hassle-free.
It breaks the tasks down into functional needs like Title Tags, Paths, Content and many more. Next to each task is a link to download the module from D.o and a link to the proper admin screen of your website so that you can configure the settings perfectly.
Drupal SEO Checklist also keeps track of what has already been done. It places a date and time stamp next to each item (when you click save). That provides a simple report that you can share with others showing what's been done.
You need Drupal SEO Checklist if
- You know SEO basics pretty well
- You work on a lot of different websites and need help keeping track of what you've done on each
- You know how to properly configure modules for SEO needs
- You are a list-maker! Or, you simply enjoy checking things off when they're done.
Drupal SEO Checklist does not:
- Provide good SEO strategy
Share Buttons (AddToAny) by Lockerz
The share widget (AddToAny) module by Lockerz helps readers share, bookmark, and email your pages and articles (aka stories) using any service, such as Facebook, Twitter, Google+, StumbleUpon, and over 100 more sharing and social bookmarking sites. Services are updated automatically.
The sharing module comes with a customizable Smart Menu, which places the services visitors use at the top of the menu, based on each visitor's sharing preferences.
Social media
The social media module helps integrate your website with social media sites such as Twitter, Facebook and Google+. It provides an centralized way of managing social media profile information and plug-in widgets such as follow and share buttons.
Socialize your site quick start
The fastest way to integrate with social media profiles and start sharing your sites content is to use the Social Media setup wizard. [Watch the video tutorial]
- Installation. You will need to install the Social Media and Widgets modules. You can do this three ways:
- Do a traditional install by downloading all the modules from Drupal.org and follow instructions
- One click install via the LevelTen Apps Server. You must install the apps connector modules first.
- Start your site with the Open Enterprise Drupal distribution. The apps server connectors are included - along with a lot of other great stuff.
AdSense
This module provides web content providers with the means to earn revenue from visitors by displaying ads from Google AdSense™ advertising service on their sites.
Why should you use it:
- AdSense for Search and Drupal are incompatible as both use the 'q' query for different purposes. Using this module, you can display the search results in your site.
- Protects you from displaying more ads in a page than the maximum allowed by Google
- The module provides easy-to-use ad blocks.
- You can easily disable the ads for certain roles.
- Provides simple controls for troubleshooting the ads before going live with the site.
- If Google changes some minor details in the script in , your script can be updated site-wide just by upgrading the module.
- If you want to do ad revenue sharing, there's really no other option
Why shouldn't you use it:
- Strictly speaking, this module is not in compliance with the AdSense TOS, since you're not exactly copy-pasting the script code in your site. No one has ever reported being banned because of using this module, and Google knows of its existence, and seem not to mind.
Commerce Shipping
Commerce Shipping provides a shipping rate calculation system for Drupal Commerce, integrating shipping service selection into both the checkout form and order edit form. This module is a framework that is meant to be used in conjunction with shipping method modules like Commerce Flat Rate, Commerce UPS, and others.
Shipping service availability and rate calculation is handled in the user interface through Rules and is backed up by an API that gives you a high level of flexibility to implement simple or complex shipping scenarios.
Developers and users of this module should use the new and improved Commerce Shipping 2.x version. Sites created using Commerce Shipping 1.x can find notes on what has changed and how to update in the release notes for the Commerce Shipping 2.0 release.
Development sponsored by Reveal IT and Commerce Guys.
Content Analysis
The Content Analysis module is an API designed to help modules that need to analyze content. The module enables a suite of content analyzers to provide multiple views into the content on your Drupal site or on any website. The current list of available analyzers are:
- Quick SEO: Provides a quick and easy analysis of content to help your site rank better in the search engines for a specific keyword.
- Scribe SEO: Provides advanced analysis of content to help your site rank better in the search engines. Also provides keyword extraction and guidance.
- Readability: Grades content based on five popular automated readability tests for content
- W3C Analyzer: Test content for W3C validation
- Keyword Research: Provides an array of tools for analyzing and discovering keyword phrases. Also helps with tagging nodes with keywords.
Content Optimizer
The Content Optimizer module helps to increase your site’s search engine (e.g. Google) rankings by improving on-page optimization factors and insuring your content conforms to Drupal SEO best practices. It enables a quick SEO analyzer that provides instant analysis of any site content as a quick and easy guide to assure SEO best practices are consistently followed. The analysis displays vital content statistics and recommendations for improving search engine rankings.
Watch the Content Optimizer screencast demo
Leveraging the Content Analysis API it provides multiple interfaces to quickly analyze any page on your Drupal site (or any page on any website for that mater):
- Node edit– enables you to optimize content while adding or editing nodes without having to leave the node edit form or saving the node. (node edit demo)
- Block – Provides a block to search optimize any page on your site including themed nodes, views, panels and coded pages. (block demo)
Advertisement
The ad module is a powerful advertising system for Drupal-powered websites. It supports the random display and tracking of graphical (banner) and text ads. Ads can easily be displayed in themes, blocks, or embedded in site content. The module records comprehensive statistics about when and how often ads are viewed and clicked, including a plug-in module for generating graphical time-based reports. Ads can be assigned to multiple owners, each of which can be assigned their own set of permissions. Installation is simple by design. An API is provided allowing the development of additional functionality and integration with other Drupal modules.
Commerce add to cart confirmation
Provides an "add to cart" confirmation dialog, shown after the customer has added a product his cart.
Adds an "add to cart confirmation" view mode to commerce_product entities, and uses it to show the newly added product in the confirmation dialog.
Used by Commerce Kickstart v2.
Rotor Banner
The Rotor Banner module allows you to create blocks with 'rotating' content. This can be very useful for advertising or highlighting information.
- Multiple rotor blocks (version 6.2)
- Per rotor block configuration (version 6.2)
- Ability to rotate through any content, not just Rotor Items
- Dedicated 'Rotor Item' content type for easy setup
- Clickable Rotor tabs
- Configurable tab position (version 6.x)
- 25 transition effects (fade, shuffle, zoom, scroll etc.)
- Pause on hover
- Random node selection
- imagecache support
- nodequeue support
Commerce Stock
Commerce Stock
Commerce Stock module, for Drupal Commerce.
This module provides stock management for Drupal Commerce stores.
Check out Randy Fay's Stock Screencast
What version of stock should you use?
Version 1
A simple and robust approach to stock control. Not as configurable and extensible as 2 but easy to configure and works, and most importantly is on full release will not significantly change and will receive priority for maintenance and support.
- Stores stock along side other product information
- Allows for Enabling of stock control for specific product bundles
- Allows for turning off stock control for specific products.
- Will do all in its power to prevent users from purchasing out of stock items.
Version 2
Designed to be more flexible and extensible and is likely to go through significant changes in the future. It does however provide a stable platform for stock management and if you need the extra flexibility it may be the one for you.
- Uses configurable rules for stock validation
- Uses a sub module system for stock storage – makes it easier to develop integration with external stock systems.
Ubercart Addresses
The Ubercart Addresses module adds an address book to the user's profile. When users register, you can require that they provide an address. Users can then add more addresses and edit or delete existing addresses. One address is always designated as the default address and cannot be deleted (but it can be edited). Users can optionally name each address (e.g. "work", "mary", "joe").
The Ubercart checkout process is altered so that users select delivery and billing addresses from their address book rather than from previous orders. You can ask the module to automatically fill in the billing and/or the delivery address with the user's default address. Any new addresses entered during the checkout process are automatically added to the user's address book.
Ubercart Product Power Tools
Details
Product "Power Tools" for Ubercart gives the store admin a number of options for altering the product creation form.
This is useful when you have product classes that do not require all of the possible product fields, especially if someone less computer savvy will be dealing with data entry for products listed on the site.
Unneeded fields can be disabled and hidden, or preset and hidden.
Tweakable options include:
- Auto Generate SKU
- List Position
- List Price, Sell Price, and Cost
- Default Quantity & Package Quantity
- Whether a product is shippable, other shipping fields can be preset and hidden, or hidden for non shippable products
- Set default stock levels (If stock module is installed)
Usage
Once installed, settings are available by product class at the url: admin/store/products/power-tools
As of version 1.10 the default product node type is supported.
Power tools settings are configured for each class by clicking the edit action next to the associated product class, and can be enabled or disabled for each class as well.
As of version 1.12 settings for other product classes can be cloned to any other product class, whether that class is new or pre-existing.
Maintenance & Development
SimpleAds
This module provides a way to feature advertisements on a Drupal website.
It displays graphical, text and flash ads in configurable blocks.
It records and reports useful statistics.
It is easy to configure and does not depend on other contrib modules.
If you are upgrading SimpleAds from 1.7 to 1.8 please use development version of the module. Version 1.7 has a problem in the upgrade path. I will release fixed version shortly.
Please see for the fix #1594798: Reinstall module does not create the fields for content type
Features:
- Customizable groups for different ad types
- Automatically generates ad blocks for different ad types
- Many configuration options for individual ad blocks including ad size and number of ads to display in a block
- Convenient dashboard for quick review of active ads
- User-friendly ad scheduler makes it easy to schedule ad activation and expiration. (Enter Activation or Expiration Date by typing Now, +1 week, +1 year, etc..)
- Capture useful statistics including ad impressions, clicks for 1 hours, one day, one week, one month, 3 months, 6 months, 1 year, and all time.
- Option to count clicks/impressions only for certain user roles
- Generates live ad statistics report
- Ad blocks can be themed
Rotating Banner
Make a cool rotating banner. This project is used on http://drupalgardens.com. Released so people can play with it. It may or may not be maintained in the future, but if you like it, c'mon in.
There are lots of other really good flexible solutions out there that may be more what you're looking for. This module is really focused on the usability and total control while creating banners. Here's a summary of why we built it
Great documentation by Tom Kehoe
Features
- Various transition effects (fade, wipe, etc)
- Rich Editor where you can pick a background image and add headlines and text areas. Supports inline editing and drag and drop
- Creates blocks, you can make a bunch of them
- Can be a static size, or will grow to the size of your largest / smallest image or the size of the region you put it in automatically!
If you want to play around, come to http://drupalgardens.com and get a site!
Currency
This module provides your website with currency conversion, currency information & metadata, and amount/price display functionality.
Google Analytics Tokenizer
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 |
Commerce Checkout Redirect
This module redirects anonymous users to a page where they can login or create a new account when they try to checkout. After the user logs in or registers, he is redirected to the checkout in order to finalize his order.
Development realized by Guillaume Viguier-Just
Amazon Module
This project is an implementation of the Amazon Product Advertising API. It's modular in design, with a central "Pure API" component that interacts with Amazon, and optional modules to handle expanded data for additional product types, features like wishlists and customer reviews, etc.
Seeking co-maintainer(s)! Are you using Amazon? I currently don't have it deployed anywhere, so it's not getting enough love from me. If you have interest, get involved in the issue queue, and ask if you think you need commit privileges.
News
- 4 Aug 2011: Both D6 and D7 now have devel_generate support, configurable using the variables amazon_devel_generate_search_index and amazon_devel_generate_keywords_array (but the defaults should work for you).
- 29 June 2011: The D7 version now has feeds import support. Oh, and views should be working OK now.
- 12 Apr 2011: We're struggling a bit with the new D7 Views 3 API changes, but it's mostly working now. And Drupal 7 now has an Amazon Examples feature again, demonstrating how to use fields in views.
Commerce Checkout Progress
Summary
Adds a block visible on checkout pages that shows what step of the checkout process the user is currently on. The status is an unordered list with each checkout page title being an item. The active page is designated in the list with an "active" class.
Commerce Feeds
Import or aggregrate Commerce entities (e.g. products) using Feeds
Using the power of Feeds, almost any type of data can be imported into commerce entities, be it data in the Comma-Separated Values (CSV) format, XML format (use Feeds XPath Parser), or any other format for which a feeds importer exists. Data can also be synchronized from a remote location, e.g. from an XML or RSS feed, handling potential issues associated with duplicate content. Large amounts of data can be comfortably imported because of the Feeds usage of Drupal's core Batch API. This module can import both commerce entities and their associated commerce display nodes in two consecutive steps.
The module contains:
- Product processor for Feeds that creates product entities in Drupal.
- Profile processor for Feeds that creates customer profile entities in Drupal.
- Commerce coupon processor for Feeds that creates coupon entities in Drupal.
- Commerce price mapper supporting the creation of price amounts and currency codes from raw input.
- Commerce product reference mapper supporting the creation of relationships between product displays and product entities.
Cookie Control
On May 26th 2011 a new EU originated law came into effect that requires website owners to make significant changes to their sites and may fundamentally change the whole web browsing and shopping experience for everybody.This Cookie Law is amended privacy legislation that requires websites to obtain informed consent from visitors before they can store or retrieve any information on a computer or any other web connected device.
Cookie Control does just that, presenting users with clear information on whether cookies are present, linking to your privacy policy (where you should have specific information about what cookies are in use), and advising users on how to adjust browser settings and what cookies mean for them.
Features
- Compact pop-up with dark and light colour themes.
- Prevent users logging in until cookie consented.
- Other modules can integrate with cookie callbacks (see below).
- Configurable message and read more message.
- Link to an admin defined privacy policy node.
- Only apply cookie consent restrictions to specified countries or whole world.
3rd Party Module Support
Content Injector (formerly AdSense Injector)
This Module is Unsupported
I've switched this module status to 'Unsupported' and 'No further development'. If anyone wants to jump in and take this module into the future, please feel free to offer your assistance.
Otherwise, I'd urge folks to look elsewhere for a solution to automatic content injection.
Seeking new maintainer
8/2/2012: I'm seeking a new primary maintainer for this module. If you are interested, please contact me via the Drupal user contact page.
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.














