In the preface to Front End Drupal, Drupal founder Dries Buytaert gives a candid analysis of one of the main challenges facing the Drupal project: the lack of designers to help make Drupal sites more visually appealing. Drupal has a stigma of being a platform geared towards programmers, which often sets it at odds with the skillsets familiar to most designers and general web developers. Part of that perception is unwarranted, but part of it is not.
Drupal is one of – if not the – most robust web development platforms around, offering a seemingly limitless set of customization options and pre-built modules to help developers realize, more or less, any of the demands they might face while building a site. But that power comes at a price – one of accessibility. One of the answers to Buytaert's admission in the preface is that there is an underlying base level of skill sets needed to adequately maneuver your way through the different tasks you'll need to accomplish in the course of even a modest custom-designed website.
Its reputation as being a programmer's platform is entirely earned by the level of code it requires of the user to achieve basic functions with development, and even with just theming. Most other CMS options will allow PHP for custom page functions or uses, but generally try to separate that from the developer unless they really need to alter how the system or a component fundamentally works. And PHP is a decidedly different skillset from the main focus of a "designer", which is something I really wish that the book would emphasize more. In short, if you're not comfortable with PHP, then Drupal probably is not a good development option for you. Which leaves the main audience for a book like Front End Drupal to be jack-of-all-trades developers, or more code-junkey programmers who might be receiving design layouts from an actual designer.
With that out of the way, let's take a look at how Front End Drupal presents information to this audience.
Chapter 1 – Web Page Design
Chapter 1 is an interesting look at crafting the functionality of a site, from both a marketing and usability perspective. It's an impromptu brainstorming session on thinking through how the site will work – as well as what should or shouldn't be there – on through to the intended users and administrators of a site, before you even finish design or begin building things out. It's a valid exercise that more people should go through, even if it doesn't necessarily have a strong connection with the rest of the book.
Chapter 2 – The Themer's Toolkit
This is a sort of preface to the theming section, and provides the theory behind how Drupal themes are constructed, as well as an introduction to the terminology that you will need to get accustomed to when dealing with Drupal. It also goes over some standard development modules with which to familiarise yourself, as well as general development tools that can aid your development process. This chapter has some good information, but doesn't quite do enough to thoroughly explain the main Drupal terms and concepts (primarily the fundamental "node", "block" and "page"). It leans more on the summary and reference side.
Chapter 3 – Working With Drupal Themes
Chapters 3 – 5 are the actual theming and page content/display chapters. Chapter 3 starts things off with an overview of the different component files that make up a Drupal theme, and how they interact with the system. It also briefly discusses points to be aware of when converting themes from other platforms (WordPress and Joomla! are dealt with specifically). Unfortunately, this is the most disappointing chapter in the book, as it misses a huge opportunity to clarify and demonstrate something that is in short supply both on Drupal's site and other sites devoted to Drupal: straighforward, real-world examples of theming. Many places suggest starting off with stripped-down "starter" themes, such as Zen and to learn from example. That is done here as well, and is one example of the laziness of the chapter. The book in general continually references you elsewhere for details or examples, instead of demonstrating and explaining with original content.
Chapter 4 – The Drupal Page
With the poor setup of Chapter 3, this next chapter – as well as the one following – might be poorly judged, since some of the fundamental ideas dealt with as assumed knowledge weren't clearly handled to begin with. It makes the actual fleshing out of site content a more esoteric process than with other platforms. Again, a real world example such as an actual PSD-to-Drupal conversion would have explained the process much more readily. Instead, component pieces are dealt with in isolation (menus, content blocks, etc.) instead of as pieces of a cohesive whole.
Chapter 5 – Drupal Content
Chapter 5 really tips Drupal's hand in showing just how much custom coding is involved even in content display for themes. It's not overwhelming, but is a bit frustrating as it seems to unnecessarily complicate a process that other systems simplify a great deal. Many will disagree, saying that this is what gives Drupal its edge over other systems, but this can be a good example that will help you decide if you prefer flexibility at the cost of ease of use.
Chapter 6 – Customizing the Content-Editing Forms
Forms are dealt with in a more straightforward fashion. One of the nice features of Drupal is its extensive setup for forms. Managing everything from database content calls to site filtering, Drupal's built-in forms support is one of its clear advantages. This chapter covers a lot of ground efficiently (if a bit lightly at times) in regards to building forms, styling forms, connecting forms and administering them.
Chapter 7 – Users and Community Participation
This chapter very clearly covers the role of users – both visitors and administrators – on a Drupal site, and how to both limit and allow access to specific areas. It also goes over some basic tools for spam prevention and general public-generated user content. This is a very nuts and bolts chapter, but one that I think people would do well to pay special attention to, as it can help avoid a lot of problems down the road. It also has some very good suggestions on how fine-tuning user roles and fields can streamline some processes.
Chapter 8 – Administrative Interfaces
This chapter feels more like a "just in case you need it" addition, as I would imagine that specifically tailoring the admin (beyond a few basic access level adjustments) would be pretty far down on the priority list. But regardless, it's a clearly written look at both setting and limiting access points by user and role, to altering the look and arrangement of the admin interface itself.
Chapter 10 – An Introduction to jQuery
This is probably the best chapter in the book, as it does an excellent job of detailing jQuery use within Drupal. It starts with an introduction to jQuery, and through very clear examples and progressively adding ideas, it takes a user from an understanding of jQuery to how it is most commonly implemented in the context of Drupal. The chapter has an efficiency about it that is spot-on, being clear enough for newbies to jQuery to pick up its use, which also giving more experienced users some helpful hints on tailoring things to fit Drupal. If all the chapters had been handled this well, Front End Drupal would be a knock out book.
The main takeaways from reading Front End Drupal are twofold. The first is that the book (and perhaps Drupal itself, to a lesser extent) should be more candid about their ideal audience. It's billed as something that will help the average designer get started with the exciting world of Drupal! And while that will be quite true for some, it greatly depends on having designers with a very wide skill set. Having an actual chapter devoted to an example psd-to-theme conversion probably would have gone a long way to clarifying some of the more esoteric structure of Drupal as well. The second takeaway is that this book is really more of a reference book than something that excels at instruction. There is a lot of really good information presented here that is quite helpful when trying to maneuver around the Drupal theming structure, but many concepts are either rushed through or they refer you back to Drupal's site for more info on specifics. And that's a sloppy approach for a book that could have been much more all-inclusive.
If you are already familiar with using and administering Drupal and would like to start designing for the system, this would be the likely choice to pick it. It has its faults, but it also has some very helpful information. And it also has a lack of competition. But it does do an adequate job of going through most of the common theming situations that a developer will face when working on a custom site. Here's hoping that the authors will expand this resource book in the future to become a true "bible" of Drupal theming, by including more careful instruction and real-world examples.