Drupal is one of the major open-source content management systems, with amazing power and flexibility. That flexibility comes with a cost: Complexity.
Drupal's complexity is made worse by the Achilles' heel of open-source, a lack of consistent and comprehensive documentation. Newcomers to Drupal seem to wander around in a daze, tripping over features, and suffering mind-numbing confusion from the many different ways even simple requirements can be implemented. That is not a criticism of Drupal or open-source: If you were an ace developer that had the chance of writing code or writing documentation, what would you choose to work on?
And if supporters of traditional commercial applications are at all honest, they'll admit documentation available for many commercial packages isn't up to much either, or there wouldn't be such a huge business in third-party books and training there either.
So having great power in Drupal that you would like to use - but can't use effectively because of the documentation barrier - makes Drupal books very important.
This book attempts to address documentation gap in Drupal Panels. Panels offer the possibility of drag-n-drop page design, and the promise of theming that breaks out of the traditional Drupal look and feel. Where Panels is a popular add-on module for Drupal 6, much of this functionality is core to the future of Drupal, making it a must-know for developers. So how does the book deliver?
Content Chapter By Chapter
The concepts of panels build up in a logical way through the first couple of chapters, with only the occasional confusing reference to project examples or code that don't exist in the text. By the end of the second chapter, we're starting to hit the gravel road: The screenshots and text don't match well, references begin to appear to samples that don't exist, and the editing and grammar become shakier. It's as though the author and editor got bored and started to fast-forward.
In chapter three, some of the cool things about Panels are covered, like using mini-panels to place panels inside panels, achieving really flexible layouts. If you are completely new to Panels, the descriptions and some suggested models are useful. But if you are looking for this book, you probably already understand what *should* be possible with Panels, and you need something deeper than the content here.
Chapter four is perhaps the most disappointing, as the promise of the nice front pages is not really delivered on. Yes, it will lead you through the nested arrangement, and talks briefly about theming. But some of the hard stuff for noobs is getting theming to happen in nested arrangements - and that's not covered in enough depth to get you far.
The fifth chapter covers organic groups with Panels. It could just be the applications I work on, but this seems a bit obscure. For me, this space could have been much better used to deliver a much more complete example of what's in chapter four.
The CCK/Views chapter does cover the mechanics of Panels integration with these important modules. Typical of other chapters, the author makes comments like "Let's create a beautiful Panel page now", but then the text stops short of all the steps required to produce something most people would consider beautiful because the integration with the theming required is not really addressed.
The user profile functionality in chapter seven was not something I had immediate need for, so I can't really comment on it. Chapter eight does cover some interesting modules to extend Panels that you might not otherwise consider. Chapter nine claims in the introduction to offer a "deep understanding" of Views used with Panels, another valuable topic that perhaps cannot deliver what it promises in only 11 pages.
Chapter ten presents a complete project for a travel website, a good summary that helps to link things together. However, the chapter introduction tantalizes with an unfortunate mistake, "We will cover the entire site architecture and page construction using Panels. We will INCLUDE [my emphasis] the detailed theming portion, as it is altogether a different topic." What they meant to say is that again the book will stop short of presenting a complete solution that *looks* nice.
The chapter goes on to recommend the use of an alternative distribution of Drupal for performance reasons, but doesn't go into enough detail on managing Panels' performance impacts to be useful. A performance discussion might be better left for a book focusing on Drupal performance tuning, which depends on many site-specific factors far beyond just whether Panels are used.
Other Thoughts
One problem with Drupal documentation generally is that it often does not match what you'll see on your own screen. Drupal itself, along with many of its modules, is constantly under development, and many tutorials and posts were perfectly correct with older module versions, but simply add to the noise when looking for current documentation. It is a big plus that for this book there seems to have been a short gap between completing the book and publishing it, because as at the time of this review, a wonderful percentage of screen shots and tabs actually match what you will see. Unfortunately continuing progress means this advantage will be lost over time - so if you are going to get the book at all, get it now.
There was a time, perhaps now over, where computer books were sold by the pound, and authors seemed to be rewarded for writing massively long books that could have been much shorter. At only 200 pages, the author here cannot be criticized for that, especially given the number of screen shots. But at the cost of a little more thought and perhaps 50 pages more in the areas that are short-changed, the book could have been really useful.
As with an increasing number of books, this one is available in both a PDF (personalized to reduce theft by using watermarks on every page) and as a paper book, with a big discount on the e-book if you order together. This is always a good thing and Packt are to be commended for making sensible DRM-free versions available.
Buying the Book
The author and editor are obviously knowledgeable about Panels, and probably could have told you what you really need to know if you could sit down and ask them. But the book doesn't answer many of the questions you would want answered. It may be that trying to fit things into the 'cookbook' paradigm has make things too disjointed. Many of the 'cookbook' sections are not used in a meaningful way at all, such as the "How it works..." sections at the end of every recipe that are typically just summaries of functionality, and give no insight into how things work at all. Perhaps following a single example through the book a la introductory Ruby on Rails books might have served better.
If you've read to this point, you are probably really trying to find out how to delivering the promising screen shots of sites like [...] and [...]. Cool Drupal sites like those really do appear in this book. But if you were hoping it might actually help you create pages like that, you need to hope someone else will write a more complete book on panels.
Much like with searching for Drupal documentation on the web, you will find helpful bits and pieces here, but they don't all fit together, and you are left you with something short of a workable solution. Many of the 'recipes' are more like cooking tips - useful to know how to avoid lumps in your gravy, but not much help when you were looking for a dinner recipe.
So should you buy the book? Not if you can find a better one. I haven't. If you can't either, you'll just have to put up with fact that the paved road runs out so near the front of the book. You may just have to roll up the care windows, try not to choke on the dust, and pretend that instead of learning what you needed to deliver your project, you really wanted to go off-roading.