Notable Drupal Modules

From OSF Wiki
Jump to: navigation, search

Here are notes on various modules for Drupal (v 6). Many of these may not apply to the current Drupal 7.


  • With many modules installed and some turned on, can often get a message similar to the following:
 Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 320212 bytes) in /usr/share/drupal/
 includes/ on line 224

In Use

These are modules typical used and active in an OSF installation.

Advanced Help

  • The advanced help module allows module developers to store their help outside the module system, in pure .html files. The files can be easily translated simply by copying them into the right translations directory. The entire system can appear in a popup or not as the module prefers (and by taking away access to view the popups, a site can force the popups to not exist).
  • The system ties into Drupal's search system and is fully indexed, so the entire contents can be searched for keywords. the help files can be placed in a hierarchy as well, allowing for top down navigation of the help.
  • See



  • The series of OSF-related modules, critical to exposing capabilities within Drupal; see the current listing as shown below
  • See OSF-Drupal

Content Access

  • Content Access allows you to manage permissions for content types by role and author. It allows you to specifiy custom view, edit and delete permissions for each content type. Optionally you can enable per content access settings, so you can customize the access for each content node.devel is a suite of modules for both module and theme developers
  • See


  • devel is a suite of modules for both module and theme developers:
    • Devel, which has helper functions for Drupal developers
    • Theme developer, which is a Firebug for Drupal themeing
    • Generate content, to quickly generate nodes, comments, terms, users, and more
    • Node Access Summary
    • Performance Logging
  • See

Organic Groups

  • Organic groups enables users to create and manage their own 'groups'. Each group can have subscribers, and maintains a group home page where subscribers communicate amongst themselves. They do so by posting the usual node types: blog, story, page, etc. A block is shown on the group home page which facilitates these posts
  • Has many module dependencies
  • See
  • Helpful code snippets and recipes:


  • The Pathauto module automatically generates path aliases for various kinds of content (nodes, categories, users) without requiring the user to manually specify the path alias. This allows you to get aliases like /category/my-node-title.html instead of /node/123. The aliases are based upon a "pattern" system which the administrator can control
  • Requires the Tokens module
  • Also see for a video on creating views using substrings from Pathauto
  • See


  • 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, and is used by many
  • See



  • Wysiwyg API allows users to use client-side editors to edit contents. The editors must be separately and individually installed. The editors presently available are: TinyMCE 2.x, TinyMCE 3.x, jWYSIWYG 0.5, nicEdit 0.9.0, FCKeditor 2.6.x, Whizzywig 55+
  • Found off of the Create Content link
  • Configured under: Home » Administer » Site configuration
  • See

Tested, Sometimes Used



  • DHTML Menu uses Javascript to reduce the number of page loads when using nested menus; this is particularly useful with Drupal's administration system. Clicking a menu link once will expand it to reveal its sub-items without reloading the page. A double-click on the item will load the page normally. Additionally, a cookie stores which menus are open and which are closed, so that the state of the menus remain consistent as you navigate around the site
  • Found under: Home » Administer » Site configuration
  • See


  • Exhibit displays structured data in the form of rich visualizations that can be searched, filtered and sorted using faceted browsing
  • Don't really care for the slowness, client-side, lack of data-driven nature of this module; in the process of being replaced
  • See

Node Convert

  • Node Convert adds a menu tab "Convert" on the node view page, i.e. node/1/convert, which gives the ability of converting the node from it's current node type, to another node type. Also it gives the ability of transfering all the custom cck field values of the current node type, to the destination cck fields, or discard them
  • Found under: Home » Administer » Site configuration
  • See


  • This module allows you to create pages that are divided into areas of the page via a completely flexible system that includes a couple of 2 column and 3 column layouts by default, but is also highly extensible and other layouts can be plugged in with a little HTML and CSS knowledge
  • The interface lets you add blocks, nodes and custom content just by selecting and clicking
  • There are three kinds of panels available:
    • Panels-pages, is the the primary panels module, you can use this for creating single full page layouts. This replaces the standard panel that existed in the earlier versions of panels. If you are upgrading your site from Panels 1, and you cannot find where your panels went, be sure to enable the panel pages module!
    • Panels-nodes, is useful for creating layouts that only occupy the content area of your pages. Frequently, it is desirable to add an area to a node layout, such as a pull quote for a newspaper or a photo block, that you don't necessarily want on every node. Panels Nodes lets you control the layout of a single node at a time and place content such as blog posts, images, blogs in and around the post.
    • Mini-panels, is a layout mechanism for blocks. It won't take long using panels before you get to a point when you want a panel inside of a panel. Or a panel that can be used as a block. That is exactly what mini-panels does. You can create a small panel here with various pieces of content and then put it inside of a panels-page or panels-node
  • Node-panes is NOT being used, as it is an older method and now deprecated
  • This appears to be a good Panels starting point:
  • Here is a tutorial on mini-panels:
  • Found under: Home » Administer
  • See

Site Map

  • This module provides a site map that gives visitors an overview of your site. It can also display the RSS feeds for all blogs and categories.
  • See

Taxonomy Image

  • The taxonomy_image module allows site administrators to associate images with taxonomy terms. The module allows the admin to create a one-to-one term-to-image relationship. With image display recursion, it is also possible to create a many-to-one relationship. This is useful if creating taxonomy hierarchies in which an entire tree of terms will use the same image. With recursion enabled, you only need to associate an image with the tree parent, and all children will automatically inherit the same image
  • Useful for the icon assignments to the 'Tools' menu block
  • A directory, such as: sites/default/files/category_pictures is created
  • Found under Home » Administer » Content management » Taxonomy » Add terms or Edit
  • See

Possible Use


  • BlockTheme allows an admin to define tpl files for standard block templates

and provides a select box on the block configure form so the user can select a tpl file to use as opposed to having to override the templates by block ID.

Content Taxonomy

  • This module provides a field type for CCK for referencing taxonomy terms. The fields are independent from vocabulary settings. All settings are done in the CCK Field Admin pages. There you can specify the field type (widget type), the vocabulary, etc.
  • See

Content Templates (ConTemplate)

  • The Content Template (a.k.a. ConTemplate) module allows modification of Drupal's teaser and body fields using administrator defined templates. These templates use PHP code and all of the node object variables are available for use in the template. An example node object is displayed and it is as simple as clicking on its properties to add them to the current template. This module dovetails nicely with CCK, adding a "template" tab to CCK content-type editing pages and pre-populating the templates with CCK's default layout. This makes it easy to rearrange fields, output different fields for teaser and body, remove the field title headers, etc. But Content Template can be used on any node type and allows modification of the teaser and body properties before they go out in an RSS feed, search index, or are handed off to the theme. Additionally, ConTemplate can choose to add any files, images, or other media to RSS feeds as an attachment. Templates are normally stored in the database but it is also possible to create disk-based templates which live in your sites directory and can be inherited across multisite installations in the same way as themes or modules
  • Basically, these allows individual theming of new content types
  • See

Header Image

  • This module allows you to display an image on selected pages. Each image, included in a node, can be shown on pages based on node id, path, taxonomy, node type, book or PHP code. A single block is used to display different images (nodes) each image having its own conditions. Using a weight per node the order of selection can be controlled
  • See

Lightbox V2

  • The Lightbox2 module is a simple, unobtrusive script used to overlay images on the current page. It works on most modern browsers. The module places images above your current page, not within. This frees you from the constraints of the layout, particularly column widths
  • See

Module Builder

  • A module which auto-generates a skeleton or "scaffolding" for a module, along with hints on how to fill them in. Useful for newbie developers to learn how hooks work, and seasoned developers who are too lazy to look up what arguments a function has to take
  • See


  • Storm (SpeedTech Organization and Resource Manager) is a project management application that features attributes, organizations, projects, tasks, time tracking, invoices and expenses (there apparently is no Gantt)
  • See

String Overrides

Taxonomy Manager

  • This module provides a powerful interface for managing a taxonomy vocabulary. 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. Operations include mass deletes, adds, moves, merges, search and CSV export. JavaScript and automatic load of images should be browser enabled
  • See

Taxonomy Menu

Theme Generator

  • The Theme Generator module aims to generate themes dynamically using plain HTML templates as the source of the themes, and to provide mechanisms to manage those themes and their updates programmatically. It is specifically designed for organizations who already have many existing websites, and need to simply port their existing templates to Drupal themes
  • See


  • This module adds a webform nodetype. Typical uses are to create questionnaires, contact or request/register forms, surveys, polls or a front end to issues tracking systems.
  • Submissions are saved in a database table and can optionally be mailed to a nominated e-mail address upon submission. Past submissions are viewable for users with the correct permissions. It includes some simple statistical tools to help in form design and evaluation and also allows the whole table to be downloaded as a csv file for detailed statistical analysis.
  • See


  • The wikitools module provides some settings to get a more wiki-like behavior. It aims to be lightweight; all features are optional, and it provides no database tables of its own
  • See

Yahoo YUI

  • This module is for taking the advantage of available Yahoo YUI (Yahoo! User Interface) library components. Currently implemented components need to be separated installed and are:
    • YUI Button, Calendar, Data Table, Menu, Rich Text Editor, Tree View, Tab View and Logger
  • See

Interesting Candidates

Advanced Forum

  • Advanced Forum is a theme/glue module that enhances Drupal's core forum module. The included styles provide the look typically found in stand alone forum software and the code provides some of the functionality, mostly related to the end user experience. By adding other Drupal contributed modules, many of which are automatically used by Advanced Forum, you can achieve much of what stand alone software provides
  • See


  • Ægir (aegir) is a new set of contributed modules for Drupal that aims to solve the problem of managing a large number of Drupal sites. It does this by providing you with a simple Drupal based hosting front end for your entire network of sites
  • See


  • Cobalt is a way to control Drupal 6 made in the image of Quicksilver for Mac. So far it’s confirmed to work in Safari/Webkit and Firefox 3. In Firefox, and other potentially compatible browsers, Google Gears have to be installed for quicksilver to work. This is due to Cobalt’s need to store data locally for fast access
  • See


  • Context module's development aims to provides developers with a easy way to map site elements like 'sections' and 'features' to Drupal's underlying architecture. It provides a very simple API for storing information about a page as it is being generated. This allows modules and themes to be aware of things that they otherwise would not be able to easily detect
  • See

Control Panel

  • This module adds a new graphical control panel page. It allows the user to specify the menu path to use as the source for the Control Panel. admin' is the default but it can be set to any menu item. It also allows the user to specify if they want the Control Panel module to recursively build sub panels for the main Control Panel. These sub panels can be collapsible. The module also has the ability to generate the Control Panel via a block(s)
  • See

Custom Breadcrumbs

  • Allows administrators to set up parameterized 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, syncronizing cleanly with custom views or pathauto aliases
  • See

Drag’n’Drop Uploads



  • drush is a command line shell and Unix scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend most of our working hours hacking away at the command prompt
  • Now maintained by Moshe Weitzman
  • See

Embed Widgets


  • This project holds two entity related APIs:
    • Entity CRUD API - Simplifies creating new entity types and provides full CRUD functionality for new entities. It offers a ready to use EntityDB class providing a save() and delete() method as well as a suiting EntityController for mass loading/deleting. The EntityDB class can be extended and customized to fit special needs. Apart from that modules may extend it with additional methods using the faces API
    • Entity Metadata - Provides a unified way to deal with entities and their properties, as well as an API to easily get and set the properties.
  • See

eXtensible Catalog (XC)

  • The eXtensible Catalog (XC) project is working to design and develop a set of open-source applications that will provide libraries with an alternative way to reveal their collections to library users
  • See the project website at for a more complete overview of the eXtensible Catalog project and its software
  • See


  • Flexifilter is a module that allows non-admins to create their own, configurable custom filters. It is not limited to simple text replacement or regex replacement; it includes logic such as if() and while() statements, and is easily extendable by other modules. It is the best thing to hit Drupal since the potato


  • Google Gears is an open source project that enables more powerful web applications, by adding new features to web browsers. This gears.modulo integrates with drupal part of the functionalities of google gears. The LocalServer module allows a web application to cache and server its HTTP resources locally, without a network connection
  • See


  • The Glossary module scans posts for glossary terms (including synonyms). The glossary indicator is inserted after every found term, or the term itself is turned into an indicator depending on the site settings. By hovering over the indicator, users may learn the definition of that term. Clicking the indicator leads the user to that term presented within the whole glossary or directly to the detailed description of the term, if available. Glossary uses Drupal's built in taxonomy feature, so you can organize your terms in a Drupal vocabulary. This allows you to create hierarchical structures, synonyms and relations. Glossary terms are represented with the taxonomy terms in the glossary vocabulary. Descriptions are used to provide a short explanation of the terms. You can attach nodes to the terms to provide detailed explanation on the keywords
  • See


  • Glossary2 (G2) is an alternative glossary module written for Drupal 4.7 and 6, designed for high-volume glossary / dictionary sites
  • See

Import/Export API

  • The import / export API allows for the definition of data entities within Drupal. The definition system lets data entities be related to each other, and it includes a number of different field types. It also supports a system of import (parsing) and export (rendering) engines, for formats such as XML and CSV; has not been actively maintained recently
  • See

Inline AJAX Search

  • The list of results starts to populate below your search box; instead of site visitors having to wait for a new page to load with results they can just move the mouse down to the result they’re looking for; simple and easy
  • You can display the results in a views style format with a node title and small content teaser to be sure the page you’re going to is what you need
  • See

jQuery Plugins

  • The goal of this project is to reduce the overhead of developers and site maintainers in keeping their jQuery plugins up-to-date and compatible with a given version of Drupal core
  • See

jQuery UI

jQuery Update

Machine Learning API

Multi Node Add

  • This for adding numerous nodes as once. It also can come in handy for those hand coded site migrations when node import is just not an option; cut, paste, cut, paste, cut, paste then save as needed!
  • See


  • The Nagios module that integrates your Drupal site (or hundreds of sites!) into with the Nagios monitoring application. The module reports to Nagios that the site is up and running normally, including:
    • PHP is parsing scripts and modules correctly (in case PHP gets disabled for some reason)
    • The database is accessible from Drupal
    • Whether there are configuration issues with the site, such as:
      • pending Drupal version update
      • pending Drupal module updates
      • unwritable 'files' directory
      • Pending updates to the database schema
      • Anything else reported in the Administer -> Reports -> Status report (requirements)
  • See


  • The Nodequeue module allows an administrator to arbitrarily put nodes in a group for some purpose; examples of this might be to highlight one particular node, as in a typical news site's Lead Article. Nodequeue provides a simple UI to manually order any queue. Also, Nodequeue provides a robust API that allows other modules to define smartqueues, which are associated with external data
  • See

Open Layers


  • Complex websites and web applications can be created by combining configurations of Modules, Content Types (CCK,) Views, Panels, Menus, Blocks, Categories, Roles / Permissions, etc.. This site setup and configuration process is a very time consuming and repetitive bottleneck. Patterns module is built to bypass this bottleneck by managing and automating site configuration. Site configuration is stored in XML or YAML files

Quiz Module

  • The module is designed to convert your site into a web test administration site with restriction systems, timed tests, multiple choice, true false, and short answer questions; plus a results and statistics system.
  • See


  • Introduced in Drupal 6, the Schema API allows modules to declare their database tables in a structured array (similar to the Form API) and provides API functions for creating, dropping, and changing tables, columns, keys, and indexes
  • See


  • This module allows you to create sections within your site. Each section has an installed template, theme or style attached to it
  • See


  • Spaces allows features (a blog, calendar, casetracker, shoutbox, gallery, etc.) to be enabled and customized in different configurations in different spaces. Space types include:
    • spaces_site creates a single space that encompasses your entire Drupal site. You can turn enable/disable features for the entire site.
    • spaces_og treats each organic group as a distinct space. Features can be made disabled/public/private on a per-group basis.
    • spaces_user treats each user's profile as a distinct space. Features can be enabled/disabled on a per-user basis.
  • Developed by Development Seed (?)
  • See


  • This module provides an integration between Drupal and StatCounter web statistics. The module allows user to insert their StatCounter tracking code and select the scope of pages they wish to display it on
  • See

Taxonomy CSV Import

  • This module allows you to import taxonomy from a CSV file. However it does not tell you what it's gonna do before it's doing it, so make sure you have a backup so you can roll back if necessary
  • See

Taxonomy Import/Export

  • This module makes it possible to import and export vocabularies and taxonomy terms via XML, CSV, RDF and other formats. Versions from 5.x on also support synonym terms
  • See


  • Timeline is a DHTML-based AJAXy widget for visualizing temporal information. It works in a similar way as Google Maps but for time-based events
  • See


  • Ubercart is an e-commerce suite developed for Drupal. It has been designed with the end user in mind, focusing on usability in three key areas: store configuration, product and catalog creation, and order administration. On the front end, all major systems are configurable and integrate with the standard Drupal systems (node, taxonomy, user, etc.). On the back end, the settings pages and order administration pages have been designed with ease of use in mind, and we are constantly working to lower the barrier to entry for new Ubercart users
  • Very highly regarded
  • Many additional plugins
  • See


  • The workflow module allows the creation and assignment of arbitrary workflows to Drupal node types. Workflows are made up of workflow states. For example, a workflow with the states Draft, Review, and Published could be assigned to the Story node type
  • Apparently works well with Views
  • See


Yahoo Terms

  • This module provides an interface to other modules to use Yahoo Term Extractor service. To use this service, you have to get a Yahoo Application ID ( It can be used as a standalone module to extract terms from (English) texts and assign the terms to the node from a chosen taxonomy vocabulary. This allows Yahoo Terms to "free tag" your content. Use in other languages might make sense but is not tested
  • See

Zend Framework

  • The Zend Framework is a powerful open source web application framework for developing PHP 5 web applications. The Zend Framework module is a Drupal API module that facilitates the installation and management of the Zend Framework, making sure it is properly accessible to other Drupal modules
  • See