Drupal Modules

Update from the Drupal 7 Contributed Modules Sprint

The Vancouver Planetarium. Photo by Qole Pejorian.The Vancouver Planetarium. Photo by Qole Pejorian.

chx and I gathered last week in Vancouver’s West End for a two-person performance sprint during the final code slush days, allowing us to finish several key improvements to Drupal’s database layer. Right afterward, many more people joined us for another sprint to port key modules to Drupal 7. People worked in-person, voluntarily over IRC, and involuntarily over IRC (lost passport).

I can say — without reservation — that our work was successful. We kicked off the weekend with Drupal 6 versions of Coder and Views. (Though there had been a touch of prior work on the Views port to Drupal 7’s new database layer.)

Improvements to the Materialized View API

An eye-catching graphic, largely irrelevant to this blog post.An eye-catching graphic, largely irrelevant to this blog post.

The Materialized View API (related posts) provides resources for pre-aggregation and indexing of data for use in complex queries. It does this by managing denormalized tables based on data living elsewhere in the database (and possibly elsewhere). As such, materialized views (MVs) must be populated and updated using large amounts of data. As users change data on the site, MVs must be intelligently updated to avoid complete (read: very slow) rebuilds. Part of performing these intelligent updates is calculating how user changes to data affect MVs in use. Until now, these updates had limitations in scalability and capability.

"CVS Instructions" tab now available for all Drupal.org projects

Todd Ross Nienkerk

"CVS Instructions" tab on the Author Taxonomy moduleCVS Instructions” tab on the Author Taxonomy module

Drupal’s CVS is now more user-friendly!

As part of the Documentation Sprint at Drupalcon DC 2009, web chef David Strauss built a “CVS Instructions” tab for Drupal.org. The tab provides concise, step-by-step instructions on how to check out, commit, patch, tag, and branch any module or theme. A simple drop-down box at the top of the page allows the user to select the version of the module or theme they want to work with, and the instructions are updated to display exact, copy-and-pastable commands.

Dynamically attribute content in Drupal using the Author Taxonomy module

Todd Ross Nienkerk

Author Taxonomy settings screenAuthor Taxonomy settings screen

Attributing a story, image, or blog post to more than one person can pose a problem on many web platforms. In the print publishing world, it’s simply a matter of adding another name to the byline or tacking “Additional reporting by Sue” to the end of a piece. (Nowhere does the poor designer or typesetter get credit for laying out the page!)

Decorators and directories

Nodes have evolved remarkably over Drupal’s history. In Drupal 4.7, node types were typically created by modules that “owned” their node types. There was no way to create a node type without a module behind it. Modules creating node types would implement hook_node_info() and directly handle the the main loading, saving, and editing of the node type. Drupal core handled the loading and saving of the title and body. Modules doing this were effectively subclassing a pseudo-abstract node class (a class containing title and body only) in core and adding their own fields.

Relaunching GetOpenID.com using a server-side Drupal module

Todd Ross Nienkerk

OpenID is blowing up!

This morning, the OpenID Foundation announced that Google, IBM, Microsoft, VeriSign, and Yahoo! have joined as its first corporate board members. But don’t worry: OpenID.net was quick to note that the members are not decision-makers: