Giving our customers the gift of Ham: Mollom (anti-spam service) provisioning API

Well, Sprint 39 just finished up at Acquia Engineering and we've got a number of new exciting features and bug fixes releasing to Drupal Gardens in the next week.  One of these is Mollom - the best spam protection service on the internet - for all Drupal Gardens site owners.  For those not in the know, Mollom protects your site from spam by analyzing the contents of comments or other content that is contributed by users and presenting Captcha challenges if the content is suspect.

What this means for Drupal Gardens beta testers:

You'll get setup with the best spam protection available from Mollom.  No cost, nothing for you to do.  Just works.

What this means for Developers who want to provide Mollom to their customers:

Most people aren't aware, but Mollom offers an extensive provisioning API for Mollom partners to create accounts on behalf of their customers.  Gábor Hojtsy and I got to work on this feature and Gábor wrote the mollomapi module which does the provisioning. Here's a sample of how the API works:

$mollom_keys = mollomapi_site_add('whitehouse.gov', '[email protected]');
if (!empty($mollom_keys) && is_array($mollom_keys)) {
  $public_key = $mollom_keys['public_key'];


Create gorgeous rotating banners with 0% nerdliness

Acquia's been working on ways to let people create really professional looking Drupal sites using only web-based tools.  One of those tools is the Rotating Banner module which just had its first release this morning.  What is a rotating banner?  I'm talking about those pretty slideshow type things at the top of most sites' homepages these days.  For a couple examples, check out http://acquia.comhttp://kofiannanfoundation.org/, http://amnesty.orgThis module was developed for Drupal Gardens by myself and James Elliot.

Core features:

  • Various transition effects (fade, wipe, etc)
  • A rich editor where you can pick a background image and add headlines and text areas with inline editing
  • Pre-defined layouts for your text or a custom mode where you can drag and drop right where you want.
  • Creates blocks, you can make a bunch of them.  Put them in sidebars, the header, etc.
  • 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!
  • Controls for switching between slides, or auto transition

Demo (click to view on YouTube):

Rotating banner demo


How Acquia keeps aHEAD of Drupal 7

When we (Acquia) started planning our hosted Drupal service (Drupal Gardens) a year ago we had to take the call of developing in Drupal 7 or Drupal 6.  I don't think this was ever really in doubt, but the decision to try to build a product on Drupal 7 core at that stage was certainly a risky one. Why? there were almost no contributed modules or themes and the architecture and APIs were changing daily. Acquia's business is squarely Drupal.  Drupal support, Drupal promotion, Drupal migrations, Drupal polish, Drupal architecture, Drupal Drupal Drupal (you know the song).  So even though this was a risk, we knew that the benefits to Drupal and Acquia would be too great to back down from it.

There is a saying open source software: 

Q: When will it be done?

A: When it is done.

One of the things the Drupal community prides itself on is a dogged dedication to quality irrespective of commercial or social pressures.  This means that we have to be prepared to stay up to date with new developments and adapt our product to the movement of the many thousands of developers who drive Drupal forward. 

In other words, everyone on the Gardens engineering team has to be aware of what's going on with


Mediacrity 50% complete

I got a little time off from "normal" sprint work since Acquia is beginning a new sprint and my baby is supposed to arrive any day now :)

So being the manic workaholic that I am, I  made some major improvements to the Media module in the past few days.  To name a few:

  • Re-wrote the browser to be more "drupally" I think it's a good compromise of convention and flexibility.  Let's see... http://drupal.org/node/697036
  • Implemented the Entity Api and type restrictions (so launch a browser to just select images)  http://drupal.org/node/697106
  • Got Media as a field working really nicely, got multi-value field support http://drupal.org/node/740546
  • Added a title and data field to the media field so that extending modules can chuck on extra information there.  Sweet! No issue for this, just a bonus.
  • Built the media_gallery module.  This is a new entity called gallery with 2 fields: Title and Media Items.  Media items is a multi-value media field with a description and link for each item.  Next step is to build the display mechanism for it.  I will be posting a video for this soon!
  • Kicked the shit out of cruft
  • Build a bulk importer which is awesome for testing, and fun for making albums: 


Subscribe to drupalgardens