A MODULAR PERSPECTIVE

I’m always in search of different ways to accomplish the tasks I regularly perform in Lotus Notes. To that end, a search of CMS tools that would enable me to build on a basic substrate (read: Document type) and extend in exciting new ways brought me to Drupal back in the 2006 timeframe. I even blogged about my discovery then. Drupal is a leading PHP CMS that provides a framework for organizing users and nodes. Nodes are Drupal-speak for the atomic bits of content we’d term documents in the Notes world. All nodes share basic structures that make them easily digestible by any functional enhancement made to the basic framework. Enhancements are in the form of modules, which number in the thousands and are contributed by an active and thriving community that dwarfs that of the “yellowsphere.” Modules themselves are recombinant in nature. For example, I recently used this recipe to combine the functionality of the CCK, Views, FeedAPI, FeedAPI Mapper, Date, Calendar, and iCal parser modules to create a calendar that displays an aggregate of subscribed iCal feeds. Calendaring and scheduling is a topic that is near and dear to me, as it is to many Notes developers, and this functionality enables the power of calendar curation to reside in one definitive source and propagate to sites that consume this information. (Shades of Elmcity, Jon?) In the real world, this will be quite useful for the community-driven websites and school sites that I developed in Drupal. Now a school secretary, for example, can manage the school’s calendar from within her Google or Yahoo calendar and have her changes flow automatically to the school’s website. I can also subscribe the site to a school closings calendar feed for my area, a weather feed and a US Holiday calendar to round out the functionality. Did I mention that all this is free and open-source? In the past I’ve done things such as use the audio and tagadelic modules to create a podcasting site with a tag cloud and have created Web 2.0-style sideshows using imagecache and thickbox. All of these implementations did not require a single line of code and only needed to be “wired” together using the administrative functions each module provides for such purposes.

I’m also interested in the functionality of Quickr that can be replicated with Drupal. Let’s be fair, Quickr is an enterprise-ready, scalable, extensible and contractually supported tool that has few peers. For enterprises that have simpler needs to address or fewer dollars to spend, though, some of Quickr’s functionality can be performed with tools such as Drupal using a combination of modules centered around the Organic Groups module. Organic Groups enables random communities to form and build minisites using functionality exposed in modules. If this sounds complicated, then download and try a copy of Open Atrium, a custom (yet still free and open source) Drupal profile that packages a wonderful set of community functionality into a single installable distribution. Profiles are a recent Drupal mechanism that allows vendors to package a set of modules purposed for a specific task into a single unit that can be selected and installed from the Drupal installer page with one click.

Drupal prerequisites are Apache, PHP (5.2x or less, 5.3 is not supported yet and will prevent Drupal from installing) and MySQL. You can try WAMP or XAMPP if you want a one-click install Apache/MySQL/PHP stack. A short video introduction of Drupal (57 sec.) can be found here. A video overview of Open Atrium is here.