Things We Do in Drupal

Posted: February 25th, 2009 | Author: msh | Filed under: Our Work | Tags: , , , | No Comments »

Back in the day, Drupal was for us a platform of necessity. There was a lot to dislike about it: no object architecture to speak of, patchy module support, enormous amounts of spaghetti sprawling through the hooks-based function names, a lot of messy UI, and a deep knowledge of magic words needed to theme an element or alter a behavior.  And on the design side, there was this seemingly deep-set predilection towards boxy pages.

Then we really started using it.  Then Drupal 6 dropped.  Now, D6 is our development platform of choice, and our default platform for many kinds of projects.  Here are a few types that range beyond the typical “site with managed content” category.

Flash front end with CMS

We’ve developed two sites where the client needed pervasive animated elements that required us to build in Flash.  We still wanted to give the client content management capabilities, however, so we resolved to do it with Drupal.  Our Flash developer, who is awesome, built his piece around an assumed XML data source, and provided us with a static XML sample.

We modeled the data as Drupal “books”: each book is a site section, and each section contains pages and other nodes as needed.  CCK and its closest friends (Filefield, ImageAPI/cache) are sufficient to fill out the core modules for this.  The we wrote a custom module that iteratively goes through each book and uses the structured node content to fill out an XML template.  The system handles image attachments and Flash video references with aplomb.

Our theme consists of a quick modification to Garland that serves up the Flash file on a clean, white background if the home page is requested, and the typical Garland page rendering otherwise.  This lets Garland show the structured content and admin pages to authorized users, while public users only see the Flash.

News aggregation and volunteerism portal

The three founders at Fractor, no intellectual slouches, won themselves a MacArthur grant for their novel idea: a way for users to look at top news, and for each story see a list of related opportunities for volunteerism.  Facts plus acts equals Fractor.

We designed and built the identity, design, and site with them.  The site is in semi-private beta now.

The theme consists of typical Drupal-rendered pages, but also of a persistent “news finder” layer, a jQuery-run news browser application that shows by default on the home page and stands at the ready on other public pages.  In this layer, you can easily browse through thousands of news items by category and see the top volunteer act related to each one.  If you click on one of the news items, you’ll see a detail view that shows a longer list of related acts.  All of this happens with a good bit of Ajax, so that the user experience is of an application that lives in a separate layer over the rest of the site.  Since it’s aggregated news and constantly updated, we had no SEO worries with supplying so much content through Ajax.  Fun stuff.

Rapid prototyping

As we’ve said before, Drupal’s flexibility actually allows you to prototype a site before you need to commit to much in earnest.  It also allows you to fill out content without making huge commitments to content structures — or the site structure, for that matter.

One of our clients came to us in January with a need to get a prototype up for an international media conference — in February.  The idea behind the site is to serve as a support and networking platform for independent citizen journalists.  They can store and share footage, craft their projects online, and learn from seasoned professionals.  The client didn’t have the whole site structure or functionality in place; indeed, they wanted to use feedback from the conference attendees to help determine the course of development.

So we took a month to prototype a fairly robust site that allows users to create profiles, upload footage, and contribute footage to other users’ projects.  We’ve also got a second set of professional or “faculty” users who can create instructional blog posts and upload footage and files.  We did this by making three important decisions:

  1. Write a minimum of custom code, relying instead on the most rock-solid modules in the community.
  2. De-emphasize theming, which can eat up a lot of time without providing much benefit in the prototyping phase.
  3. Take advantage of a third-party media delivery network (Kaltura) with a well-written Drupal module already available.

http://mojo.helen-marie.com/



Leave a Reply