Review: Front End Drupal
I finally had a chance to fully review Front End Drupal by Emma Jane Hogbin and Konstantin Kafer after a long period of waiting. I say "long period" because I first heard details of the book last August at Drupalcon is Szeged when talking with Emma Jane at a Birds of a Feather session. More recently I had to finish work on a project and another book review delaying my review by another two weeks.
I built my first 'web page' about 15 years ago. Since then I graduated to building 'web sites' and then custom 'web applications'. Over that time I worked with several content management systems, a handful of web languages, and worked with clients of all shapes and sizes. I've worked at all levels of the web stack from graphic design to information architecture; from web server configuration to database administration; from HTML to server side scripting. In short I've worked on everything from the back end to the front end.
While Front End Drupal is obviously about working with the 'font end' Drupal, I was immediately impressed by the first chapter of the book which provide valuable tips for any web designer or web project manager or developer. It was apparent right from the start that this book was written by web development veterans since recommendations they give early on could only come from those that wear battle scars. As you progress through the book it is also clear the authors are intimately familiar with Drupal from both theoretical and practical standpoints.
Score based on my own arbitrary rating system:
For Drupal Novices: 4.5/ 5
For Experienced Drupal Administrators: 4.5 / 5
Early on you get a glimpse into the "toolkit" of an experienced Drupal designer/themer. Many of the tools apply to any web developer (language references, firebug, browsershots etc.), but there is a great section on 'must have' modules that is a well written guide for Drupal novices. While this early section does introduce the reader to Drupal it doesn't spend a lot of time repeating information easily found elsewhere. Instead it focuses on introductory material (such as how to create content types with CCK) to get readers building a website without boring them with Drupal administrative minutia.
After the introductory material the book gets down to the business of educating the reader on how they can take any Drupal site and make it look exactly how they want it to look. The book does so by starting with a macroscopic view of themeing (Drupal speak for the act of working with Drupal's theme/skin/template layer) and then moving into the microscopic details of how to make very specific page elements appear where and how you want them to.
The macro view includes such basics as what a theme is and how to install themes and how to work with themes at the Drupal administrative level. It then lays a foundation so the reader understands 'the anatomy of themes' and how those pieces fit together. Finally, it moves onto topics likes working with existing themes, building on-top of themeing frameworks and how to build a custom theme from scratch. In short the reader is brought up to speed on everything they need to know to formulate their own strategy for implementing their design in Drupal.
The book then begins filling in all the details of how to manipulate specific display elements, starting with templates and variables that apply to general pages and eventually working down with ever increasing detail to templates and variables that apply to specific elements within pages. In different sections the book covers everything from context based page templates, to content specifics like teasers, to forms and even themeing the administrative interface.
Sprinkled throughout the book are tips for getting Drupal to work for you to help achieve your design goals (rather than having to work 'against' Drupal). Where appropriate there are details on how to make simple configuration changes or how to install tools that are there to make your life simpler.
Its strange to say this about a technical book, but I enjoyed the pace and rhythm of it. While the book and its chapters are well structured, it didn't feel rigid. I can't quite put my finger on it, but the book seemed to 'change gears' at all the right times to keep me from losing interest. All in all, I recommend this to Drupal novices and experienced 'back end' developers alike.