Front End Drupal

Designing, Theming, Scripting
Tools and Techniques for Learning to Create Themes for the Drupal 6 CMS.

Drupal is a content management system that has been in development since 2001 with Drupal 6 is the current production version- Drupal seven is currently available as a developer release. Front End Drupal focuses on theming Drupal 6 sites. So while there is some good coverage of how Drupal organizes and stores content, as the book’s name implies, the focus is on the visible parts of the website- this is not the book if you want to write your extensions modules.

Front End Drupal is notable for a few things: it has a good explanation of how data is organized in Drupal, there’s coverage of converting themes from other Content Management Systems (CMS), and there’s a section on JavaScript as it relates to Drupal.

Drupal has a well-thought-out system for storing different kinds of data in a node structure. I’m sure many coders have looked at a Drupal site and wondered why many had some sort of “node/123456” in the URL. The answer to many other questions about just how Drupal organizes information is covered in the first two chapters. In case you’re wondering, yes, readers should be familiar with basic PHP as there’s quite a lot of it spread throughout the book. While this book isn’t about programming Drupal’s API, the information here is useful as you look to develop themes or create your types of content.

As you’d expect, the meat of this book is how to create themes. Like other books on theming, it starts with installing and then modifying starter-themes and builds from there. There is coverage of tools such as Firebug and the Theme Developer module, and chapter three also covers some Mozilla Firefox plug-ins to help theme developers. One area designers sometimes avoid theming Drupal’s forms because of their complexity. In the book, forms are given their chapter. Unlike Packt’s Drupal 6 Themes, there isn’t much coverage of older Drupal versions except for the section on migrating themes in chapter three, where they provide a 7-item check-list to convert Drupal 5 over to 6. WordPress and Joomla! are given similar treatment, including tables listing the equivalent to Drupal files in other CMS’ themes. If nothing else, it gives readers a bit of an idea of the thinking behind different CMS. Theming makes up the central part of the book, and pretty much every aspect from modifying to converting existing themes to Drupal is covered.

See also  HTML5 Guidelines for Web Developers

JQuery is given good coverage in the last three chapters. Chapter 9 starts with a bit about JavaScript having an amateur reputation until the arrival of Ajax before diving into a mid-level introduction to JavaScript, especially on object-orientated programming. There’s a lot of exciting bits of covered in the break-out boxes as far as JavaScript in relation to PHP and some of the many “gotchas” developers might run into. Using the Firefox FireBug plug-in for debugging is also covered in this section. Chapter 10 gives a quick overview of jQuery — the official Drupal JavaScript library– and then chapter 11 shows how to build a slide-show using jQuery that hooks into Drupal. Front End Drupal’s JavaScript coverage is the best I’ve seen in a Drupal book yet.

By the end of the book, readers will be familiar with Drupal’s structure and be able to both create a theme nearly from scratch as well as convert themes from other content management systems. JavaScript is given coverage here to, especially how to integrate with Drupal’s back end. The book itself has a clean layout with plenty of screen-shots, code examples and the appendixes cover installing Drupal and list some sample code from the book (this can also be downloaded from the book’s website). If anything is missing, it would have been nice to have reference to what style-sheets control what aspect. Overall, if you are looking to create themes for the current version of Drupal, this is a good book to have.