Monday, June 8, 2009

Front End Drupal: Designing, Theming, Scripting

Authors: Konstantin Käfer and Emma Hogbin Format: Paperback, 456 pages Publisher: Prentice Hall PTR; 1st edition (April 15, 2009) ISBN-10: 0137136692 ISBN-13: 978-0137136698 The Käfer and Hogbin book isn't just a "how to use Drupal" book. There are a number of books that introduce Drupal in general (I put in the link just in case you need to know what Drupal is), including Using Drupal (O'Reilly) which I previously reviewed. According to this book's back cover blurb, "Drupal is now the world's number one content management system...As Web Designers and developers adopt Drupal, they need ways to quickly customize the visuals and interactivity with their sites." Is Front End Drupal then a book with just a focus on designing and managing themes, or is there more "under the hood"? Let's find out. As always, my first question for a book is "who is it written for?" The back cover invokes "web designers and developers", which presupposes a certain skill set. The authors have backgrounds in both web development and Drupal, so that should also be a clue. That said, I didn't find a section in the front matter of the book saying "this is the book's audience" or similar text. The context of the book will have to do, but who the book is created for should become fairly obvious early on. The first page of the Forward states the basic problem and thus, the reason this book was written. Apparently, Drupal sites "out-of-the-box" are "ugly". Further, Dries Buytaert (Drupal founder and project lead) says "...creating a Drupal theme isn't always easy. It's a crosscutting experience that requires a lot of diverse skills and utilizes expertise in XHTML, CSS, JavaScript, and PHP..." That should be enough to define the target reader of this book, at least as far as what you have to know to utilize this text. Chapter 10 is an introduction to jQuery, further narrowing the focus, at least as far as JavaScript libraries are concerned. Chapter 1 starts out with a lesson on how basic web design integrates with Drupal. No, it's not an XHTML/CSS primer. You are supposed to know that stuff already to be able to utilize this book, but the authors do suggest here that you access those skills when mapping out the design of your future Drupal site. They do include resources such as Zen Garden and W3Schools.com's CSS Tutorial for those who might need to brush up in that area, so it's not like you have to be a total guru. I found this interesting because, as I moved through the book, I found that being a guru helps a lot, but more on that in a minute. Theming tools and strategies are added onto this "gentle introduction" and the more formal introduction to Drupal begins, including JavaScript, PHP, and the Drupal API. The mechanics of creating a Drupal theme are presented as early as Chapter 3, including more online tutorials and code examples in the book. This is where your coding experience starts to be needed. A basic understanding of at least XHTML, CSS, and PHP is required from here on in. I say "at least", because the book will not hold your hand as far as learning these technologies is concerned and even then, I don't think just "basic" skills are quite sufficient. The way the topics are presented doesn't seem to be quite "even" and I really think a lot of prior web design/development, and even some prior Drupal experience helps in having a good reader experience. In fact, if this book was my introduction to Drupal and I had no other experience with this platform or with other Drupal books, (even if I was well versed in the underlying technologies), I can see myself getting lost somewhere in the first third of this text's pages. If I was expecting a "total newbie's" book, I'd probably write a review slamming the authors for getting me in too far over my head. Do not, repeat, do not use this book if you have no experience with Drupal at all. Even more, do not use this book if you have little or no experience in web development. This book is best used by people who are (despite the resources presented in Chapter 1) well versed in how to design websites. If you work in a content management firm, you are probably ideally positioned to use Front End Drupal. The book's Appendix describes how to install Drupal, if you don't know, briefly discusses LAMP/XAMPP, and provides equal time for Windows, Linux, and Mac OS X as OS platforms. A "value added" piece is the book's support website which has the sample code included in the book available for download. There's also an errata page for the first printing of this book, so you can check if any issues or errors you come across have already been dealt with. Contact the authors if you come across something new. I'd suggest downloading and configuring Drupal up front and learning basic Drupal from a book like O'Reilly's Using Drupal before digging into Käfer and Hogbin's Front End Drupal. Save yourself the aggravation (or the temptation of writing a "negative" review on this book) of trying to follow along with this book if you don't have a Drupal background already. Those of you who do know Drupal and know web development, have fun.