Migrating to Drupal
Drupal is often mentioned in discussions about blogging tools or Web-based forum software. Sure, you can run a blog or an on-line forum using Drupal, but that is only part of what Drupal can do. Drupal is better described as a framework that provides an infrastructure for on-line collaboration and communities. It can be used to run corporate Web sites, intranets, news portals and many other types of Web sites.
The Drupal Project has its roots in an internal message board system built by University of Antwerp student Dries Buytaert for his student dorm. In 2001, Dries released the software as an open-source project named Drupal (pronounced “droo-puhl”). Others started using Drupal and began contributing to the project. Drupal is built using open-source technologies: the PHP programming language and the MySQL or PostgreSQL databases. Licensed under the GNU General Public License (GPL), Drupal can be downloaded and used for free. As with many successful open-source projects, Drupal is maintained and developed by a thriving user and development community. Five years old in January 2006, Drupal has evolved into a robust content management platform.
Working at a Web development firm, we have successfully built many Web sites for our clients based on Drupal. In this article, we share what we have learned, and we tell the story of our most complex Drupal project to date.
Planetizen is a community Web site for urban planners, architects, developers, environmentalists and other professionals. It offers daily news summaries, editorials, jobs and many other services. Launched in 2000, Planetizen has grown into a popular Web site with a large international audience. To manage a constantly updated Web site, such as Planetizen, a content management system (CMS) is a must. We had built our own custom CMS using PHP and MySQL in 2000. As the Web evolved, we wanted to add new features, but doing so meant expensive in-house development. So, we began looking at alternatives.
By this time, numerous open-source CMS projects had matured and offered many of the features we wanted to add. Migrating to a pre-built open-source CMS made sense. We could cut down on development time, add the features we needed and benefit from all the advantages that come with using open-source software. Because we already had experience using PHP and MySQL, we searched for open-source CMSes built using those technologies. After evaluating and testing several different packages, we selected Drupal. (See “Seven Criteria for Selecting Open Source Content Management Systems” in the on-line Resources.)
Drupal has many of the features you would expect from a modern CMS, such as user management; access control; work flow; separation of content, presentation and logic; and Web-based editing and administration. Drupal appealed to us for many reasons—here are the top five:
5) Sensible URLs and URL aliasing: many CMSes generate long, convoluted URLs that are difficult to share via e-mail or over the phone. Drupal arguably generates the sleekest URLs in the CMS world. Most Drupal URLs are in the format http://www.planetizen.com/node/156. Also, Drupal's URL aliasing feature makes it is easy to create URLs that make sense to readers. Using URL aliasing, the above URL can be mapped to http://www.planetizen/about/faq.
4) Syndication and aggregation: community Web sites, such as Planetizen, benefit from information flowing in and out of the site. Content stored in Drupal easily can be syndicated to readers or other Web sites using RSS feeds. Also, a news “aggregator” to pull in syndicated content via RSS feeds is built in to Drupal.
3) Modular architecture: Drupal's functionality is organized into modules that can be switched on and off. This approach makes it possible to build different kinds of Web sites with Drupal. If we were going to invest a lot of time into learning a CMS, it might as well be one that can be adapted for other projects as well.
2) Developer-friendly: we anticipated the need to customize any CMS we selected. We felt comfortable with Drupal's elegantly designed architecture and the consistency of the code. It was relatively easy to understand a feature and start making modifications. Features such as the devel module that displays database queries and variables for each page later proved to be invaluable in migrating to Drupal.
1) Taxonomy: our single-most important reason for selecting Drupal was its powerful taxonomy system for categorizing content. It is possible to create a set of descriptive terms and associate content with those terms. The taxonomy system makes it possible to adapt Drupal for a diverse set of content management needs.