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.
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.
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.