Using Drupal Distributions to Accelerate Project Development

Aaron Manire // April 2012

Since the appearance of Drupal 5, Drupal distributions have been a steadily growing option in the world of Drupal development. A distribution is a prepackaged copy of Drupal core along with a premixed recipe of additional modules, themes, libraries, features and install profile scripts. When you install a copy of Drupal, you basically get a pre-built blogging application. When you install a Drupal distributionsuch as Open Atrium, you will have a full-fledged open-source project management application.

Currently, Drupal.org hosts just over 200 unique distributions that range from the breadth of federal government agencies, to news publishers, to language-oriented distributions, all the way to the highly specific niche of a local Baha’i community bulletin board.

Peeking under the hood

In the root of every Drupal directory is a folder called “profiles”. This profiles folder is where all of the files related to a distribution reside, right along side a “default” folder that contains Drupal core’s default install profile. An “install profile” is just a bunch of configuration functions that can enable modules, create user roles, build content types and set other kinds of system variables. A distribution consists of an install profile, plus all of the additional contributed or custom modules, themes and libraries. The default install profile, by the way, is where your basic page and article content types come from when you install Drupal from scratch.

Accelerating the development process…

We recently developed and launched a super innovative new online community for our client, PR market leader - Cision.  The online community, dubbed “Seek or Shout”, is geared for PR professionals, journalists, and bloggers looking for content, expert sources, research, and other support for stories. 

When planning the “Seek or Shout” project, we carefully weighed the costs and benefits of beginning the site from scratch versus building on top of the Acquia’s Drupal Commons distribution. There were good reasons to go either way. Commons didn’t yet have a Drupal 7-compatible release, which meant that users and taxonomy terms would not be treated as first-class entities. Also, Commons makes extensive use of Organic Groups modules, which provided functionality outside of the scope of the project’s design. On the other hand, Commons’ implementation of activity streams, user relationships and email digests were pretty close to our requirements. Ultimately, Commons won and we were able to simply use the content profile module to add fields to our user objects and suppress the Organic Groups module suite without any hiccups.

In retrospect, Commons gave us an unexpected boost when it came to the activity stream integration. This capability came with the activity log module, which can be downloaded a la carte.  But we discovered that a large amount of work was necessary to configure the rules module to respond to user activity and generate activity log entries or emails dependent on user relationships, interest tags and other criteria. Although the activity log module is generously documented, we would have been left scratching our heads without the contextualized work and features supplied by Drupal Commons.

Standing on the shoulders of giants

Whether a particular distribution is right for your needs is a complicated question.  Fortunately, it is no more difficult to install and explore a Drupal distribution than to install a plain vanilla Drupal site.  Since there are literally thousands of modules and themes to choose from, distributions produced by leading Drupal-focused firms are helpful guides in the challenging process of selecting contributed code for your Drupal site.  Distrubutions like Acquia’s Drupal Commons are a bellwether for industry best practices.  Perusing a distribution is an easy way to get ideas for your own Drupal site, whether you use the distribution or not.  And that’s where the beauty of open source software really shines,

Aaron Manire

Aaron Manire

Director of Web Development

I coordinate Drupal development teams and plan technological growth, and like to get my hands dirty with code when I can. I enjoy that at Isovera I’m constantly learning new things, sharing that knowledge with others, and working with the terrific people who make our work possible.

Filed under: