When the request came for me to review Drupal 6: Panels Cookbook by Bhavin (Vin) Patel, I was excited. I've been a software developer forever, a Web developer for as long as there's been a Web, and a Drupal developer since D6 was imminent.
I have two Drupal books myself, and am working one about D7 Views, but with all that, one glaring hole in my self-education has been Panels; it would be my first chance to use it. Panels is the big cousin of the Views module, and big brother to the Panels Everywhere module. All were written by Earl Miles, aka merlinofchaos, a deserving macha in the Drupal community and, in my opinion, a topnotch coder: all the more reason to look forward to the book.
I need to mention the parameters within which I formed this review. I first considered the book format, because it greatly influences my expectations. A Packt 'cookbook' does not have the format or aims of a standard computer reference or 'Bible' text. It is meant to give the reader a broad but shallow exposure to a topic by using a plethora of step-by-step examples. Basically, if you come away from a cookbook feeling excited by the technology and wanting to dive deeper into learning it, the author has done a good job.
Patel starts off the book with the obligatory chapter on installation and setup, though this one contains a bit more since it is a broader Getting Started chapter. Panels is a contributed module, and installing it will be a familiar process to Drupalers. He covers installing Chaos Tools (Ctools) as well, since it is a required module. There are instructions for those upgrading from a prior release of Panels, too. Having installed and set up the module, Patel then leads you through creating a basic Panels page and node, the building blocks of a Panels layout. It was early on that I discovered a couple things that made using the book more challenging than it needs to be.
Patel uses a non-American dialect of English. While it's quite understandable, at times the usage and sentence structure require one to stop, blink, and reread the passage. Some might find this to be annoying. I looked at it as reading dialogue written by Dickens or Twain, and was fine with it. The other thing is that the instructions at times seem to skip a step, going from point A to point C without a mention of the requisite point B.
Again, this causes the occasional confusion for a few moments, but nothing one cannot get past. Chapter 2 covers a number of topics related to navigating and making use of the Panels interface and related topics. One might be biting at the bit to start creating meaty layouts by now, but Panels is a fairly complex framework to use, so having these 'recipes' available is important. Keep in mind that a 'cookbook' is designed so that most recipes are independent of each other, so they can usually be skipped over, if desired.
This chapter also touches on the topic of context, the context of 'context' here being the circumstances in which a layout exists. For example, with the standard capabilities of Drupal, a block is a fairly independent piece of content. If you want the content of a block to be intelligently related to the main content on the page, it's a difficult nut to crack aside. It can be achieved to some extent with the crafty use of Views, more so by writing a custom module, but becomes pleasantly easy using Panels. This is a big and important topic, and though this is a cookbook and not meant to be deep, I think this subject could have done with a chapter of its own.
Theming is the topic of Chapter 3. Even though Panels handles much of the work, there will likely be the desire to (re)theme its output to varying degrees, and this chapter guides the reader through examples of manipulating it with CSS, adding it to a theme region, and other useful topics. In Chapter 4 we jump into examples of what is expected from Panels, doing things like replacing the front page, overriding the node edit form, using Panels with feeds and even using mini panels, basically panels within blocks.
In Chapters 5 through 9 we move on to using Panels with other common Drupal add-on functionality: organic groups, the custom content kit (CCK), the advanced profile kit, composite layouts and Views.
Chapter 10 builds on much of what was covered and what Panels excels in by creating an example of a travel industry web site. The travel tie-in really doesn't matter, though, as one can easily extrapolate the example to whatever subject matter the intended site will contain.
I enjoyed working my way through the book. I found Patel's recipes to be creative and useful, and they gave me a sufficient understanding of Panels and its capabilities to begin considering possibilities for its use on existing and upcoming sites. And that marks the success of a cookbook.