Monthly Archives: September 2006

Drupal Book Review

Drupal: Creating Blogs, Forums, Portals, and Community Websites, by David Mercer.

Mercer, David. Drupal: Creating Blogs, Forums, Portals, and Community Websites, How to set up, configure, and customize this powerful PHP/MySQL-based Open Source CMS. Birmingham, U.K.: Packt Publishing, 2006.

Its a pleasure to write a review on David Mercer’s Drupal, Creating Blogs, Forums, Portals, and Community Websites, from Packt Publishing. This title will allow you to know much more about Drupal’s features, and it will become a much more valuable to you as a result.

I have wanted to know more about Drupal ever since seeing Drupal emerge as the Content Management System (CMS) of choice in my local user group community over the past couple of years. You might say that that some of the local developers have really drank the kool-aid by the measure of their enthusiasm for Drupal. There is a Drupal User Group in town now; I also sat in on a PHP User group presentation on Drupal by inventor Dries van Buytaert; I’ve eavesdropped on the conversations of developers waxing away on all the great stuff they can do with it, and how great it is; then of course there was the massively successful Northern Voice / OpenSourceCMS conference, said hi to Dries again, and a couple hundred coders and bloggers, were all very thirsty, hungry, and excited about all they could do or wanted do with Drupal. It was all they could talk about. Drupal Drupal Drupal, its all I ever heard! Its just another Content Management System, right? But I cant remember when I saw so much enthusiasm for a single piece of software. There are lots of Content Management Systems out there, right? Drupal is just another, right? Why this CMS? Is there something to all this excitement for Drupal? What, exactly, is in that kool-aid that everyone else is drinking? Maybe, there’s something to this Drupal thing after all…

Drupal is a content management system written in PHP with MySQL database. Its for blogs, communities, news sites and more. It is one of those select breed of packages that you can always rely upon to run the first time, ‘right out of the box’, with a minimum of effort, ready to run. Then there is a large array of extensions and skins, written by that enthusiastic Open Source community I just mentioned that you can add into your package, and when you do, they just work, with a minimum of instruction and effort. Drupal is what most people would call an excellent example of what Open Source software is all about, with thousands of sites using this package and development communities around the world.

So its a package that works right out of the box, easy to set up and run, lots of resources, and tons of community support. In fact, with some basic knowledge of computers, a shared hosting account, and a bit of your time with David Mercer’s book, you could become a self-reliant owner/operator of a Drupal website, with features and functionality that dynamic websites are supposed to have, supporting categories of text and media, and users organized by roles an access levels you can define.

Say you might be someone I would describe as a website client I build sites for. You could use Drupal and avoid having to pay a developer ( like me ) money to build a dynamic website that has the features that Drupal has. On top of that you would have the benefit of the free extensions, modules, skins, and community that you wouldn’t have if you got someone to code up a site for you. There are arguments against using an off-the-shelf CMS, like if you have a very particular need, type of thing you are doing, but I am not going to entertain that here. You even have the contentment of knowing what it is you have for a website, if you weren’t technically inclined, and you would know six months from now. You are sold, you save a bundle on your website budget, but why would a developer give that all away? The answer is this: the higher the abilities of my clients, the more interesting the work is for me. Work is performed on tasks that need to be done, not on tasks that have been done already. We don’t need to reinvent the wheel here, most of the time, and the work a developer does within a Drupal site can be applied to other Drupal sites, and even shared with the development community. Find out everything to know about Drupal, its history and future, at http://drupal.org.

If you are that kind of person, David Mercer’s book on Drupal is for you. Its a well written book to help reduce your trial and error, and allow you to get on with the business of operating your website in a knowledgeable manner. And isn’t that the point? Its a book that is designed to help you learn about what Drupal can really do for you. Use this book and you can become an expert in Drupal without necessarily needing to be an expert in PHP.

The first chapter provides an introduction to Drupal, and explains again a lot of those whys I covered above, but in detail to give it credit. The second chapter covers setting up your development environment and gives you an overview of the technologies Drupal is built upon, namely the LAMP stack. Follow the instructions in this book and you will be fine. You need a development environment? No, but really you do, trust me, you do. Apache2Triad is recommended as an offline development environment. While I would have recommended XAMPP instead, both do the job. If you don’t have one of these, get one. Hey, everybody needs a sandbox.

You then get lessons in site configuration, and adding functionality. After the groundwork has been laid for you, an aspect that you will appreciate down the road, you get on with the business of adding features and functionality to your site. You get introduced to modules, so you can add the chunks of code you need so you can do what you want with the site, and blocks, so you can place them where you want.

Users, Roles, and Permissions explains Drupal’s web admin system for managing users with access policy, roles, and rules. Access rules are something site owners need to know about because the task of keeping the people you want as members to your site is simpler than keeping the people you don’t like off your site, like members who make nuisance postings in your forum.

You then move on adding and management and content, where you learn how to add and manage content in your site, and then cover in more detail filtering input for code, and what that means, and the Taxonomy module, arguable the most important module within Drupal. The Taxonomy module allows you to determine the method of your your content is organized. Good advice is here: it means the difference between running your site and running it eloquently and well.

The book continues on at in a look at Drupal’s theme system, and techniques for styling and customizing your site look with CSS. The following chapter is on more advanced features and Modifications to the site, with examples such as Adsense, Flexinode, and News Ticker. While depth of this material is in many ways introductory, it also does a good job of indicating for more experienced developers an overview of what depth one has to wade into in order to start in earnest with the customization of the site.

Your site development efforts are all applied together when you are ready to deploy your site. Again, the chapter covers tips, hints, tricks, and other valuable lessons for running your site, such as choosing a host, your database, backups, crons, poormanscron, site throttling, search engine optimization, web site statistics, and more. Again, this material is laid out to cover the major points in live website maintenance so you know how to be independent, but also as an overview to more experienced developers for what in a Drupal site needs to be done the ‘Drupal way’.

You don’t need this book to start with Drupal, but you will learn a lot more about it if you do. And that is the whole point, isn’t it?