Using Drupal 7 to Create Microsites

by Matt Farina

The Field Museum of Natural History in Chicago creates small, independent sites for their headline exhibits. These microsites share a similar feature set, visual layout, and information architecture. Does this sound like a Drupal distribution and install profile? When we were tasked with helping them create a new system to generate exhibit microsites, that's what we thought.

Field Museum microsite for The Horse exhibit

What we built goes beyond just a basic standalone install profile with a handful of modules. The Drupal 7 install profile for the Field Museum not only includes the necessary modules and libraries, but it also configures the site based on information collected during the install process, aggregates media from other sites, and provides a pair of themes to serve as the basis for per-site customizations.

The Configuration

Installation profiles do a lot of work in Drupal 7. They configure input formats, create user roles, build content types and attach fields to them, and so much more. Once we gathered the common features we built an install profile that provides:

  • 10 content types along with all their fields, widgets, and formater settings
  • The media module, fully configured
  • WYSIWYG, configured for each text format
  • Top level content pages and navigation
  • Standard navigation to other Field Museum properties
  • A default block configuration, which can be set up at install time or later

While a few parts of this require manipulating the database, most of this configuration is done though APIs, contributed modules, and hooks.

Pulling In Content From Main Site

The main Field Museum site has mountains of media surrounding exhibits, including photos, galleries, audio, and video. To integrate this rich experience into the microsites, we pull feeds of related content from the main site into blocks on the microsite.

The related content handling starts in the installer. The microsite pulls the exhibit names, via JSON, into the microsite during the install process. A step in the installer asks for the name of the exhibit from the exhibit list maintained on the main site. Then the microsite uses the exhibit name to access XML feeds on the main site providing the related content.

An Extendable Theme

The microsites have the same overall layout, but each has exhibit-specific branding. The distribution provides a base theme which provides the layout, default text styles and colors, and other essentials tested to work across browsers. Each microsite may extend the base theme with a custom theme. The microsite specific theme can be lightweight and contain just branding and specific changes for the exhibit microsite. This means that key theme work like layout and menu behavior don't need to be re-implemented for each microsite, and customizations are independent and fast.

Drupal == A Great Microsite Builder

Drupal 7's full-featured install profiles and Drupal's theme inheritance system is a great combination for a system of sites like the Chicago Field Museum's exhibit sites. It moves the focus of building individual sites from development and configuration to branding and content.

Comments

I'm kidding of course, but it's a bit funny to hear that it's a great *micro*site tool when Drupal 7 has been cheered on for it's enterprise capabilities. I know the two aren't mutually exclusive, but I had to point out the irony.

Great stuff. I've done quite a bit of work on install profiles for D6 but not looked at the d7 install profile stuff yet.

Any chance you'll be sharing a generic-ish microsite install profile with the community?

At the company I work for, we have been building many micro-sites with Drupal 6 since before I started there. We are gearing up for a couple large projects to kick off our journey into Drupal 7 and it is great to hear that the micro-site process can be simplified in D7. Thanks so much for outlining your experiences.