Case study: Canada's largest weekly newsmagazine moves to Drupal
The Georgia Straight is Canada's largest urban weekly: a Vancouver-based newsmagazine with a per-issue readership of almost 534,000.
Founded in 1967, the paper was critical of local politicians and police and was soon faced with fines for publishing obscenities and police raids. As time went on the "Straight", as locals call it, became more established, but maintained a progressive editorial stance. Straight.com is the newspaper's online presence.
Straight.com, in addition to publishing content from the print publication, is focussed on providing web-exclusive content and building online community. Site content includes special-interest blogs, video and audio, image galleries, and searchable listings for events, restaurants, clubs, and movies.
Background
Before conversion to Drupal, Straight.com used a number of methods and technologies to update the website. Originally static HTML, then outsourced, the Straight ultimately brought site management in-house, moving first to the Publish Button CMS then to a custom Cold Fusion-based content management system.
Over time however, it became evident that increasing site requirements and security concerns were stretching available resources and so the Straight decided to leverage the power of community and migrate to an open source solution. Various solutions were examined - eZ Publish, Bricolage and Joomla to name a few - however the Straight eventually decided on Drupal on the basis that it appeared to be most adaptable and had the most
community "momentum".
Luckily for the Straight, Vancouver, Canada has a very strong Drupal community. On the recommendation of locally-based Bryght, the Straight contracted Djun Kim to help move the platform to Drupal 4.7. After the initial migration, Rain City Studios provided training for Straight.com's first dedicated web programmer and development continued in-house. The new site deployed in December 2006 and the site was upgraded to Drupal 5 in early 2007.
Module use
Straight.com currently relies on nearly 70 modules for its functionality: 42 contributed modules, 9 custom modules, and 17 core modules.
Contributed Modules
CCK and Views are used to create and display custom content types. Custom content types are used for article and blog entries, online coupons, classified ads, gallery images, and links to external content.
The Panels module allows editors to manage the front page layout and the TinyMCE module provides the option of rich text editing.
The Similar By Terms module is used to generate relations between content. When articles and blog entries are added to the system, content is automatically submitted to the Yahoo Term Extraction web service. The resulting terms are then used to populate a taxonomy of topics which relations are based on. To increase the quality of these relations OpenCalais is being evaluated as a possible alternative.
To deal with the task of having to create a number of new contest draws each week, and occasionally large surveys, the Multiforms module was designed and developed. This module can be used to author complex forms via a web interface and allows groups of form fields to be stored in "snippets" which can be used to populate new contests and surveys. The module also handles random selection of winners. A pre-selection hook allows blacklist functionality, which enables Straight.com's contest administrators to exclude problem entrants from being selected as winners.
The Thickbox, Add This Button, Dynamic Persistant Menu, Logintoboggan, and JQuery Update modules are used to provide a richer user experience with JavaScript.
The Memcache module is used to interface with Memcached to allow caching of some content to server memory. Pathauto is used to provide friendly URLs and Imagecache for dynamic image manipulation.
The CAPTCHA and reCAPTCHA modules are used to prevent spam.
Custom Modules
Straight.com relies on a number of custom modules to meet site-specific needs and act as "glue" to combine the functionality of other modules.
Three custom modules are used for administering and displaying our searchable event, restaurant, and movie listings. Both print and online listings are administered from the same system. Content for print is exported to XML.
Online classifieds are delivered using a custom module that displays ads imported from a proprietary ad system.
A custom gallery module is used to support image galleries, allowing user submission and batch uploading by administrators. This module leverages the CCK, Thickbox, and Voting API modules.
Our site includes ads delivered from a server running the open-source OpenX. Invocation Code from OpenX works in conjunction with a custom Drupal module that allows ads to be rendered on pages based on Drupal taxonomy.
Another custom module is used as a catch-all for miscellaneous site-specific functionality such as interfacing with the Sphinx full-text search engine, weekly alternation of the front page, the display of back issues, custom teaser extraction logic, macro tags, tag clouds, and the passing of e-newsletter subscription requests to an external system.
Optional Core Modules
The optional core modules enabled are Comment, Contact, Help, Menu, Path, Poll, Profile, Taxonomy, Tracker, and Upload.
Hosting
The site is served using Centos 5 Linux, Apache 2, MySQL 5, and Sphinx on a dual-server setup (hosted by Vancouver-based Astute Hosting). Munin is used for monitoring and Monit for alerts. rdiff-backup is used for incremental nightly backups.
Straight.com's traffic has increased by 100% over the past year. To scale to a larger audience, a variety of caching mechanisms have been employed including PHP opcode caching (APC Cache), memory caching (Memcached), and caching to static HTML files (using a customized index.php file).
Development
The Straight.com's development department consists of team leader Geoff Burke (geoffb), designer Miles Keir, and programmers Mike Cantelon (mcantelon) and Chris Slater (chris_slater). The team uses Trac for project management and Subversion for version control. A staging server is used for testing and a development server is used for day-to-day development.
Learning the Drupal Way
It has taken our development team time to fully "grok" Drupal, but the longer we use Drupal the more we've come to appreciate the value of the framework and the community that supports it. The Drupal project encapsulates the collective wisdom of a community that has been working for years to not only create a great CMS, but also a positive, supportive development culture and technical solutions to the challenges of collaboration.
Drupal 6
In order to take advantage of Drupal 6's improvements and ensure we can leverage future community contributions, our team is currently preparing for a Drupal 6 upgrade.
Drupal 6 features that interest us include increased performance, improved user interface, easier theming, Open ID support,
Javascript pre-processing and contributed modules exclusive to the version.
Drupal version: Drupal 5.x