Learn How to Use the Content Management Framework to Create Powerful Customized Websites.
Now in its 3rd edition, Pro Drupal 7 covers customizing the newest version of the Drupal CMS. The book is 25 chapters starting with the very basics of how Drupal works before proceeding through sections dealing with everything from theming to writing modules, caching and testing, among many other topics. For each of these, the book goes from principals to practice using diagrams, screenshots as well as code examples to explain features and concepts. The source code (and corrections) is available on the book’s webpage at Apress.
With any system as extensive as Drupal (not to mention being in development for over ten years), there are a lot of things related to how the whole system fits together and the terminology used. To that end, the book does an excellent job of explaining things like numerous flow-charts showing where hooks, actions and triggers are invoked (as well as what the differences between hooks and actions are), This is particularly useful for developers coming from other content systems where “hooks” might be used slightly differently. Also, the book teaches fundamental concepts of how things are supposed to work in Drupal, for instance, a section on page 301 covers filtering data and explains the principle of how it’s not recommended to changing a user’s data, instead of store it as-is, then filter it as need be); these things are necessary to know so that when writing your Drupal modules, they behave in a way that fits in with user’s expectations of how things work in Drupal.
Like any broad framework, understanding the parts, how they fit together, and the terminology used to describe this is essential to make use of a framework like Drupal. Drupal has been called a toolkit for creating CMS rather than a CMS. This is probably a bit extreme, but, indeed, Drupal is not exactly one thing out of the box in the way WordPress is a blog first without customization. Yet on the other hand, because it’s not designed primarily to display posts, this gives it some more flexibility. One of the most useful things I heard was that in Drupal, modules are like ingredients that you combine to customize the system, this is different than say, plug-ins in WordPress where a plug-in solves one particular problem. Drupal has an advanced system for organizing data by taxonomy, vocabularies, with flat and hierarchical structures.
If you’ve already been using Drupal, then parts of this book will still be of interest; Drupal 7 has incorporated several features that used to be modules in Drupal 6, including the CCK (Content Creation Kit), the database abstraction layer, testing system and a host of other features; a full list can be found here: http://drupal.org/about/new-in-drupal-7.