Migrating to Drupal

Why and how the Planetizen Web site migrated to the Drupal infrastructure for communities.

Theme

Drupal allows you to customize the layouts of pages easily using an
extensible theme system. A convenient way to build a custom theme for
your Web site is to base it on one of the themes packaged with Drupal. You
can use different themes for certain users or in association with
taxonomy terms.

Various combinations of the above five ingredients will result in
surprisingly diverse solutions. Search the Drupal Web site for
“recipes”.
If you still cannot achieve what you need, you can customize Drupal or
build custom modules.

Migrating Planetizen

We started Planetizen's migration by making a list of all the features
we would need and identifying which Drupal modules would provide that
functionality. This required testing different modules and configuration
settings. We identified requirements that could not be met using Drupal
modules. These features would require custom development. We then
developed the taxonomy, defined user roles and permissions, and decided
on the work flow. To maintain the original look and feel in the Drupal-based
version, we developed a custom theme. Moving to a new CMS is also a good
time to rethink current business logic and improve it. We took this
opportunity to prune out less-popular Web site features.

The biggest migration challenge was pulling in five years' worth
of data into Drupal—more than 15,000 news stories. Drupal story and
page node types provided only basic title and body attributes
for a node. Each news item stored in Planetizen had several other
attributes. What we needed was our own custom content type. Drupal's
flexinode provides an easy way to create custom content types without
programming. Unfortunately, it turned out that the flexinode route would
be an inefficient solution for us. Using flexinode, each Planetizen news
story would have taken up to eight separate table inserts as opposed to the
standard single insert, due to the way flexinode stored data.

Drupal's wealth of third-party modules came to the rescue. We discovered
that a book review module was very similar to what we needed.
By examining its code, we were able to customize the book review module
to create the content types we needed. We then created custom scripts
to insert Planetizen's data into the appropriate fields directly in
Drupal's MySQL tables.

Limitations and Workarounds

We did encounter some limitations with Drupal. One limitation was
the mechanism for maintaining time zones and daylight savings time
in Drupal. Our workaround was to use only the PST/PDT time zone and
manually update the time zone when it was time for a daylight savings time
change. This is a known issue and is being addressed by developers.

Flexinode makes it possible to create custom node types without
programming, but as we discovered, it has its limitations. The alternative
is to develop custom node types as modules. Drupal provides a solid
foundation for creating your own modules, but it requires programming
experience. The Drupal team is addressing this issue with the Content
Construction Kit (CCK), an effort currently under development that
aims to make it easier to create custom node types.

One problem we ran into had nothing to do with Drupal. Our production
Web server was running an older version of PHP that could not be
upgraded,
due to some hosting restrictions. This caused the search module to fail;
however, we were able to circumvent this problem by modifying the search module. We
thanked ourselves once again that we were using an open-source CMS.

Security patches and core code updates for Drupal are released on a
regular basis. This is a good thing, but upgrading customized Drupal
installations can be cumbersome. We recommend limiting customizations
to specific modules or developing custom modules. Also, using a version
control system, such as CVS or Subversion, can help in tracking your
customizations against official Drupal releases.

We launched the new Drupal-based Planetizen Web site in September 2005
and received
positive feedback from readers. Since the launch, we were able to add new
sections and features without having to develop them from scratch
(Figures 5 and 6).

Trending Topics

Webinar: 8 Signs You’re Beyond Cron

Scheduling Crontabs With an Enterprise Scheduler
11am CDT, April 29th

Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.