Using Drupal 122
Michael J. Ross writes "After installing and learning the basics of the content management system Drupal, many Web developers do not know how to best proceed from there. They may realize that much of the programming potential of Drupal — and thus the earning potential of Drupal developers — is derived from the use of community-contributed modules that greatly extend Drupal's power. But there are thousands of such modules, with no objective direction as to which ones are best suited for particular tasks, and what bugs and other flaws could trip up the developer. These programmers need a thorough guide as to which modules are the most promising for the development of the most common types of Web sites. A new book, Using Drupal, aims to fill this need." Keep reading for the rest of Michael's review.
Published by O'Reilly Media on 16 December 2008, under the ISBN 978-0596515805, the book is authored by Angela Byron, Addison Berry, Nathan Haug, Jeff Eaton, James Walker, and Jeff Robbins — all of whom are affiliated with Lullabot and are actively involved in the Drupal community and knowledgeable about Drupal's core and plug-in modules. Despite the old adage about having too many cooks in the kitchen, a technical book of this nature should benefit from having half a dozen authors, since each one will have his or her fortes, and the whole will be greater than the sum of the parts, as a result of this complementary expertise.
Using Drupal | |
author | Angela Byron, Addison Berry, Nathan Haug, Jeff Eaton, James Walker, and Jeff Robbins |
pages | 490 |
publisher | O'Reilly Media |
rating | 9/10 |
reviewer | Michael J. Ross |
ISBN | 978-0596515805 |
summary | Key contributed Drupal modules put to use creating sample sites. |
This title appears to be O'Reilly's first — and, as of this writing, only — Drupal book. This is in no way astonishing, given that O'Reilly has never been known for pushing books too quickly through development and production, simply to gain "first mover advantage." Rather, they generally work to create higher-quality efforts that will better stand the test of time — unlike the "shovel" books that some other publishers tend to push out the door, with less coherence and more errata. As a consequence, in the technical libraries of veteran programmers, one tends to see a disproportionately high number of book covers sporting pictures of animals.
On the publisher's Web page for Using Drupal, visitors can read the book's description, table of contents, colophon, errata (of which there are currently several), a link for purchasing the book in electronic form (in formats such as PDF, EPUB, and Kindle-compatible Mobipocket), and a link for viewing the book immediately online, in the Safari Books Online system. There is a simple forum for the book, which currently contains seven posts, three of which already have replies from one of the book's authors and from an O'Reilly community manager. There is a browse system that allows the visitor to read portions of each section of each chapter, and thus preview the book before purchasing it. It even includes the illustrations within each previewed section, but for some reason does not include the figure numbers within the captions.
The authors have created their own site dedicated to the book, where visitors will find brief author biographies largely similar to those found at the very end of the book, with links to the authors' profile pages on Drupal.org. Lastly, there is a download page for the source code, which comprises a copy of Drupal 6, all of the contributed modules and themes needed to complete the hands-on exercises, and the supplementary resource files for those exercises, such as logos and product images. There is a change log for the download file, and yet no mention on the page — or even in the book itself, as far as I can tell — as to which version in the 6.x release series was used for the book and in the download package.
Oddly, neither the publisher's site nor the authors' site appears to mention the free downloadable chapter (Chapter 9, "Event Management"), although it is offered in an article posted in the blog section of Do It with Drupal.
After a foreword by Dries Buytaert — Drupal's founder and project lead — the book continues for 490 pages in total, organized into eleven chapters and three appendices. Nine of the chapters each begin with a description of a case study that will be used for illustrative purposes, followed by some implementation notes, which includes discussion of the candidate modules that could be used for this particular case study, and the trade-offs among them. The contributed modules that are chosen for the implementation and their capabilities are summarized, and then further explained with hands-on exercises — in which the particular modules are utilized and configured. Each of these nine chapters takes the reader through the development of a complete Web site, and is wrapped up with discussion of additional modules applicable to the kind of Web site being created. In Chapters 2 through 10, the case studies are: a simple Drupal site that supports client editing, a job posting board, a product reviews site, a wiki, a site for managing publishing workflow, a photo gallery, multilingual sites, an entertainment events management site, and an online store. Chapter 1 provides an overview of Drupal — covering modules, users, nodes, organizational schemes, and content types — preceded by a brief history of content management systems. Chapter 11 explores site theming, with details on the files and other elements that make up a theme, and how to customize them. The book's three appendices cover installing and upgrading Drupal, choosing the right modules for a job, and a list of the modules and themes used in the book.
The book's material is current with Drupal version 6, but should be of some value to any developer opting, for whatever reason, to stick with version 5. Speaking of versions, the authors should have mentioned which version of Drupal they chose, including the minor release number. The Drupal code in the aforesaid download package indicates that the chosen version is 6.4.
This book is unique, in that most if not all other Drupal books on the market are either introductory in nature — which at best devote only a single chapter to discussing third-party modules contributed by developers — or more advanced, specializing in a particular subject area, such as Drupal site security or e-commerce. Using Drupal, just as the title indicates, examines the detailed usage of best-of-breed modules to accomplish specific goals that one often encounters as a Web developer.
One of the most valuable aspects of software development books written by veteran programmers, is their discussions of various solutions to a particular problem — regardless of its size or complexity — and the reasons why they chose one approach instead of any of the others. Using Drupal is no exception. The authors examine the advantages and disadvantages of various third-party modules, even those that were not chosen for implementing the sample Web sites.
In any computer programming book, screenshots and other figures can be most helpful to the reader, because they reinforce the narrative descriptions of the cumulative results of all the steps up to that point. The screenshots are even valuable to someone following along on his own computer, because they provide immediate confirmation that he has not missed a critical step in the process. Using Drupal offers a generous amount of such screenshots, as well as information tables that help in visually breaking up the text. The only weakness with some of the screenshots is the lack of contrast between the text and the background, resulting in a dark gray shown on a light gray background — not always clearly readable.
The book is substantial in length and content, and naturally it cannot adequately cover dozens of sorts of Web sites. But clearly the book would have been more complete if it contained a chapter explaining how to allow content to be viewable by a limited set of authenticated users. An ideal case study for this would be the implementation of an e-zine site, for which prospective subscribers could view the homepage and other marketing material, but only subscribers could read the actual e-zine's contents. Even better would be to make this sample site fee-based, and show how to accept payments through PayPal (or some other payment systems for which there are Drupal modules) and possibly validate new subscribers automatically and instantly, using PayPal's IPN feature.
The flaws of this book are few and minor. There are unreported errata, most of them grammatical — e.g., "as [the] ability" (page 10) and "modules [that] were" (page 89) — which are to be expected in the first edition of any technical book. Speaking of errata, on the publisher's Web site, the errata should be sorted — or sortable — by page number, so it is much faster for people to see if a discovered erratum has already been reported. In addition, the URLs within the book that do not contain any filename (e.g., "http://www.example.com"; page 8) are in most if not all cases missing the trailing "/" (the root directory). Yet my primary complaint pertains to its production, and not its writing: For countless lines within the text, the spaces separating the words are too narrow, making it difficult to distinguish the words from one another when reading rapidly. As a consequence, each one of these lines almost appears to be a single word. (Skilled programmers know the great value of using whitespace in their code for enhancing readability; the same is certainly true for the printed word.) This readability problem is exacerbated by two factors: The ink color does not appear to be pure black, but instead a dark gray, which possibly has the advantage of producing less glare, but provides less contrast. Secondly, the serif font selected (whose name does not seem to be identified in the book — a common practice ages ago) has quite thin curves, which arguably does make the font face more stylish, but diminishes readability.
In terms of the target audience, the authors do not assume that the reader knows PHP (although some is shown in the chapter on theming), but they do assume that the reader is comfortable installing a PHP-based content management system and all of its required technologies, and familiar enough with Drupal to be able to navigate through the administrative area, download and add modules, and perform other basic admin tasks. Programmers just getting started with Drupal will benefit the most from this book, while experienced Drupal programmers will most likely learn some hitherto unknown best practices, and perhaps even some valuable modules or techniques that the individual has never seen before.
Using Drupal is a detailed and information-packed guide to the most promising contributed modules, and how they can be best employed for creating common types of Web sites. Drupal developers should find this a valuable part of their technical library, especially when they begin creating one of those types of Web sites for the first time.
Michael J. Ross is a Web developer and freelance writer.
You can purchase Using Drupal from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Drupal and the CMS. (Score:3, Interesting)
I like Drupal. I've used it many times and have always thought of it as one of the better CMS packages available.
What I would like to see, would be a more freeing kind of extensibility, so that I could whip up fast plugins that would behave in a very reliable and systematic manner. I've tried to extend it in the past but have always preferred how easily Wordpress reacts to new code. The Wordpress docs and forums appear to have a faster method of making information available to developers.
However, if I was planning a brochure-based website that would have some fresh content from time-to-time, I would not object to Drupal, but only if I was certain that I would never have to extend the core mechanics of what they offer... it's simply too unpredictable (at least as of this past August, which is when I last fiddled with it).
Re:Wow, thanks for the great review! (Score:2, Interesting)
Yes, the very first chapter written for this book (back on Drupal 5 at the time) was one on Organic Groups which covered the access control aspects in-depth. Unfortunately, due to our book schedule vs. Drupal 6's contributed module release cycle, we had to chop this one. :( I'm hoping that if we end up doing a second edition of the book for Drupal 7, we can add this chapter back in.
This seems like a pretty important thing to leave out. One of the biggest reasons why people use a CMS is to have authenticated logins and to have the ability to limit content to a limited set of authenticated users. It seems to me if I had to choose between that chapter and one of the more oddball case studies, maybe I'd probably cut the case study, but that's just me.
What I need is an end-user guide (Score:3, Interesting)
I've read a couple books, but I still don't know how to use it. All the books I read thus far spent 1/2 the time on installing it, which should only be a chapter. The rest of the time, they talk about "nodes" which is too abstract a concept for my friend Prudence, who runs a counseling website to grasp.
What we really need is a guide on "do this to make a menu", "do this to make a blog", "do this to enter the blog article", do this..., etc. I really have no idea to layout a site and get what I want. So there Drupal sits, well-installed, but doing nothing. Because that's what the books covered.
Re:Not quite... (Score:2, Interesting)
It has been an absolute lifesaver.
One thing that I still cannot get my head around is how one does a master-detail type relationship with CCK and views, or insert a view into a page and add new nodes to a page . In other words how common Db structures are implemented with CCK.
Again the book is lucid and usable as a reference and I hope there is a part 2 to it that covers more advanced techniques (not features)
There is a forum at the O'Reilly site where some questions have been answered.
Re:Free version of the book (Score:2, Interesting)
I don't think it's as much a case of people in Myranma not being able to find things using Google, but a case of Google not being able to find Myranma.
Re:Drupal and the CMS. (Score:3, Interesting)
i just started learning CakePHP and jQuery to build a new informational & e-commerce site for our company (a record label). this is actually the first time i've worked with any web development frameworks, so it's all very new to me. originally i was thinking about going with an open source CMS--preferably an e-Commerce-oriented CMS like osCommerce--but i wasn't sure how extensible it would be.
is Drupal suitable for mid-sized e-commerce sites that might require a lot of custom features (shopping cart, mp3 store, artist listing, music catalog, etc.)? part of the reason i decided to go with the CakePHP framework is that it's highly extensible while producing a very maintainable site using the MVC design pattern. part of the problem i ran into using pre-written CMS packages before was that they were just too rigid to base a custom enterprise website off of.
i mean, there are a ton of business sites out there using a personal blog CMS with a patchwork of poorly integrated modules. and you take one look at the site and you can immediately tell that it was made using PHP-Nuke or WordPress or whatever. it's not very professional and just isn't appropriate for enterprise applications. the only thing worse are sites that try to use phpBB or some other forum software as a CMS, regardless of what their site is for.
i've never used Drupal before, but i keep hearing good things about it. and even if it's not suitable for an enterprise-level e-Commerce site, it seems like it might be appropriate for individual band homepages. i was originally planning on developing my own custom CMS that i can deploy on all of our band sites using different templates. but artist homepages are generally fairly basic, so i'm thinking that a custom CMS might be a waste of time.
Drupal changed my life (Score:2, Interesting)
I'm not kidding. So much of what I used to do for a living is trivial with Drupal. Writing custom modules for our clients is fun again and I never have to worry about mundane every-site stuff like user management, perms, front controller dispatching...you name it; if it's common, Drupal will do it for you. Or a contrib module will.
I started picking up Drupal in late 2005, played and learned for a couple of years, and 2008 was almost entirely Drupal builds. From cookpolitical.com where we worked out serious data handling, to tobaccofreecenter.org in seven languages, to globalnetwork.org with it's graphic-heavy design, I've had a blast working with this system!
Er, I didn't actually mean to trot out portfolio highlights there...but what the hell, those are good examples of what you can do with Drupal (and how to make your Drupal site not look like a Drupal site). This is what happens when someone gets me talking about Drupal. Yay!
Back on-topic: Thanks for the review. I'll definitely be picking up this book. If it's anything like Pro Drupal Development from Apress, it'll pay for itself in the first chapter with some nugget that saves me an hour!
Re:You might want to check it out... (Score:3, Interesting)
It would be more than sufficient to show several sites, with various layouts and allow the reader to select one, or elements from several, and see the steps which made the site or element. This would vastly increase confidence and shorten time to deploy.
Call it "The Drupal Cookbook"