About 3 weeks ago, a book arrived at my front door. It was a complimentary copy of 'Drupal 6 Themes' by Ric Shreves from the lovely people at Packt Publishing. This is the second addition to Shreve's other book - Drupal 5 Themes.
At my work, we already bought the first book (Drupal 5 Themes) about 6 months ago so this isn't new to me except this time round Ric Shreves tackles theming in Drupal 6 which has gotten a little easier but still maintains the flexibility and power that Drupal provides.
I had thoroughly enjoyed reading and learning a lot from Drupal 5 Themes. It was always used as a reference guide each time i built a custom theme which was different than previous ones. So it came as no surprise that Drupal 6 Themes book to me was going to be yet another great addition to kick start the learning process of either building from scratch or upgrading a theme. Or was it?
The book begins by exploring and providing an overview of the underlying theme layer in Drupal and how it functions in relation to the overall system. It uses a lot of examples and screenshots to guide the reader thru each part from the theme file structure to what makes up the regions and blocks. Throughout the chapters, useful examples accompanied with screenshots are used extensively to demonstrate or help the reader to understand the concepts and practices.
Later in the chapters, it explains about the other templating engines that exist and can be used though for the rest of the book PHPtemplate engine was chosen to be the one for development as this seems to have become the preferred default template engine to use.
From there on, this is where the book becomes a great source of reference. It starts to open up into practical examples and begin to dissect the Drupal's default templates outlining the CSS files used in core modules, variables, themable functions and overrides. All this laid out extensively in a clear table format with descriptions of each primary elements. There are also a lot of useful additional notes, tips and tricks presented throughout the book.
The Zen theme is covered here in the book to show how an existing theme can be modified or new theme created. This is particularly good to know as in my experience using the Zen theme as the based to create a new theme has help to speed up development and was far easier than trying to use the default Drupal theme (Garland). Not only that, Zen theme does come with some nifty theme settings out of the box like enabling inline block editing.
Finally skipping to the appendix pages, there is a nice default template CSS cheat sheet that list every possible CSS classes and ID Names available though this isn't needed if you are using Firebug for Firefox to debug your site.
Conclusion, do i recommend this book? from what you have already read from this review above, it's not difficult to work that one out. Yes, i do recommend this book to anyone wanting to become a Drupal Themer and progress from there to more advanced stuff like writing your own custom code which is beyond the scope of this book as i believe it is solely aimed at web designers with HTML and CSS skills but basic PHP knowledge who are new to Drupal theming.
Even as an experienced themer, it's nice to have this book sitting next to your computer as a reference guide. Also, get the book if you want to cut down on the time spend trying to learn from browsing the Drupal forum. Don't get me wrong, there are a lot of useful documentation on drupal.org but it isn't easy to find or at least it'll take a while to skim through pages after pages of content.
I've praised and spoke highly of this book but what about the cons? the only thing i was a bit annoyed about is why it didn't tackle or provide some examples about preprocess functions that exist in Drupal theming layer? Perhaps, it requires a more in-depth knowledge of PHP to utilise the power of preprocess functions that allow a developer to setup variables to use within the template files (.tpl.php) and this book isn't aim at developers seeking a more advanced level of theming.