Drupal 7 Powers Ideas: A Showcase of the New Aspen Ideas Festival Website
For over 60 years, the Aspen Institute has helped connect leaders from around the globe to discuss and engage in important challenges and issues facing our world today.
The Aspen Ideas Festival, an Aspen Institute initiative, is a week-long summer retreat at the Aspen Institute in Aspen, Colorado, where thought leaders across a variety of disciplines gather to discuss, teach, and learn about issues that affect every part of our lives including security, poverty, climate change, education, the economy, culture, religion, and the arts.
2011 marked the festival’s 8th year of existence. To reflect its vibrant and interactive spirit, there was a need to revamp its online presence. With a new, compelling design (provided by Katie Viola, of Kissane Viola Design) and a powerful back-end developed by Forum One’s Drupal development team, Aifestival.org was born. The site was built to serve both as an informational tool prior to, and during, the event, but also as a year-round multimedia archive for hundreds of files capturing the festival sessions.
"Forum One was an excellent partner for the Aspen Ideas Festival site overhaul. They helped us tackle the challenge of sharing lots of new information while showcasing our video library with a simple, clean, easy-to-navigate website," said Walter Isaacson, President and CEO of the Aspen Institute.
Although Drupal 7 had been released only a month prior to the project start date, Forum One chose to build the site in Drupal 7 for its robustness, security, and new features. Drupal 7 allowed Forum One to rapidly architect, test, and build a powerful site with the following features:
- Festival information pages
- Video archive serving four types of video/audio
- Speaker bio directory with links to videos and books
- Festival blog
- News updates
- Topically-organized facts and quote archives
- Slideshows featuring content from the homepage and other site sections
- Topical Flickr feeds
- Speaker-specific Amazon book feeds
As with all sites, Aifestival.org came with a unique set of challenges, making the development and final result that much more rewarding.
With more than four years worth of video and audio archives, one of our challenges was to serve up four types of video and audio formats (flv, mov, streaming, and mp3 audio) in a uniform way to the user. We overcame this challenge by creating a simple field formatter using the wonderful hook_field_formatter_info() and hook_field_formatter_view() hooks.
The video archive on the site is organized topically via a taxonomy vocabulary that is then synced to the main menu using the taxonomy_menu module. Our second challenge was highlighting the appropriate main menu item when landing on an individual video session. To overcome this challenge, we had the option to use the context and menu_position modules, allowing the ability to highlight a specific menu item based on one or more conditions. This option wasn’t ideal since it would have been a data entry burden for the Aspen team to create separate contexts or rules for every topic, and have to revisit them should the list of topics change. We instead used existing code from menu_position in a custom module that dynamically checks the taxonomy term of the currently viewed video and makes the appropriate taxonomy menu item active.
Lastly, one of Aspen’s requirements was the need to manage the featured content on every major page and section of the site, including: the site homepage, festival homepage, topic pages, and fact and quote landing pages. In order to give the editorial team the flexibility they needed, we turned to the excellent nodequeue module and provided 69 different nodequeues for enable Aspen to manage its featured content.
Drupal 7 Lessons
From our experience developing with Drupal 7, we have found the release to be extremely secure and powerful. That said, there are always lessons to be learned. Below, we share some of our takeaways that you might find useful to know before embarking on your own Drupal 7 project.
1. Be sure to test-drive contributed modules before you commit to them.
Many modules have changed significantly from Drupal 6 to Drupal 7. Since we built the site within the first few months of Drupal 7’s release, very few modules had stable 1.0 releases. We learned early on not to assume that the Drupal 7 version of a module would be as stable as its Drupal 6 counterpart, or even that it would provide the same functionality.
Lesson learned: Test modules before committing to them and research their issue queue for outstanding issues that may impact your ability to implement the required functionality.
2. Be prepared to debug and patch.
We ran across a number of issues and bugs with contributed Drupal 7 modules that we had to find or write patches to resolve. By project end, we had applied three patches from Drupal.org (one for the views module and two for Nodequeue module) and written five more (two for the Nodequeue module, and one each for the context, features, and views_php modules, respectively).
Lesson learned: Have your PHP debugger ready to go and be prepared to use it. New to debugging? Find an IDE (Netbeans and Eclipse are excellent free options, while PHPStorm and Komodo are excellent commercial ones) and Google setting for debugging with xdebug.
3. Contribute your patches!
Write patches and contribute them back. Module maintainers appreciate it and it makes your job easier, since you can update to new releases of the module without needing to separately track and maintain your own patch. All five patches that we wrote and contributed have either been incorporated directly or modified and incorporated, allowing us to upgrade to newer releases of those modules without needing to maintain and re-apply our patches.
Lesson learned: Contribute patches back early and often. Take note of the general guidelines for creating patches and then refer to the module-specific guidelines accessible via the “Version Control” tab on each modules’s homepage (see the nodequeue module’s page as an example).
Beyond these lessons learned, we had a very positive experience with Drupal 7. We look forward to using it to power more innovative sites and even more important missions. Thank you to the Aspen Ideas Festival for being a great partner on the project. Keep the ideas coming : )
[Contributions: Stein Setvik, lead developer on the project, co-authored this post.]