Another Drupal book arrived at my post box some time ago (I would had written this review sooner, but personal obligations and stuff wouldn't leave me the time do that...). This time, this new Drupal book is about building social networks using the Drupal platform.
"Drupal 6 Social Networking" is written by Michael Peacock and is published by Packt Publishing. The book talks about building a social networking site using the latest stable Drupal core (version 6) with the help of contributed modules. It is targeted for those who want to get their hands dirty quickly and without much pain. Now, let's see a rough summary of what each chapter provides to the reader.
Chapter 1 starts with a few reasons that you would want to build a social networking site. Maybe it's because you want to improve your business, maybe you want to enable rich communication channels with users from around the globe, or provide a service. These are few of the reasons you would like to build a social networking site for. The author, from there on, will build a fictional social network about dinosaurs step by step. Next, the author talks about installing Drupal 6 and reviews most basic configuration options.
Chapter 2 goes through explaining some of the inner workings or Drupal and presents a small guide about Drupal administration. The last section of the chapter deals with taxonomy.
Chapter 3 explores the various features that Drupal provides in regard to user content contribution. User content contribution comes with the form of comments, forums, blogs, collaborative writing in the form of a content type Drupal calls "book", polls, uploaded files, etc. This chapter mainly deals with the modules that are already included in Drupal. A section talks about social aggregation (RSS feeds gathered from other sites) and user roles, where the user will know how to create additional Drupal roles and how to configure permissions per role.
Chapter 4 goes deeper in the term "user" and goes through the process of enriching the user profiles, by adding specialized fields with the help of the already included in Drupal Profile module. The reader will know about the way to monitor a user's contribution to our social network, ways to configure various aspects of the procedure that involves the creation of a new user, such as e-mail notifications, if users are able to create new accounts without administrator approval, etc.
Chapter 5 deals with the process of providing means for the end users to build relationships between one another. A variety of contributed modules are used, such as User Relationships, Activity, Guestbooks, Organic Groups, Views, Notifications, Token, Messaging, Contact. With the use of these modules, users will be able to build relationships (friends) between them, view the user activity of logged on users, provide guestbooks or a site wide contact form for visitors to leave a message and create groups of same interests. These groups can be thought of as smaller individual social networks, where the users share content in regard to specific topics.
In chapter 6, ways for the site administrator to contact site users are described. Mailing lists provide such means, while the Address module will provide the capability to store the address and telephone numbers of each user.
Chapter 7 is more advanced, since it deals with the creation of custom modules to improve our social networking site further. The writer first mentions the files used by a module and provides resources for the reader to look into while developing their custom module. As a case, the writer will create a custom module that will use the Google Maps API (Application Programming Interface) to provide map locations for custom content types.
Next comes the theming process. Chapter 8 talks about Drupal themes that can enhance the look of your social network. It will also guide you to create your custom theme, with code examples and tweaks.
Chapter 9 is about securing your social network from unauthorized and unwanted content, such as spam messages, and deploying it on the server that will host your site. It explains the use of the various CAPTCHA modules and guides you through the procedure of creating a new database, copying the site files from the local to the remote server and setting up the cron job, that is necessary during the production use of your site. It will also show you how to back up your database (remember, always backup!).
The final chapter is about promoting your site. After you have carefully designed and deployed your site, now it's time to spread the word. You can use advertising to promote your site. Search Engine Optimization is another technique you should use. Finally you can also make money from your site, by deploying ads from various providers, such as Google.
Following chapter 10, is the Appendix. The Appendix describes how you can install WampServer, a package for Microsoft Windows that provides Apache, PHP and MySQL for your development needs.
Overall, the writer makes a decent effort to describe ways to build up a social network by exploiting Drupal's features through the use of core and contributed modules. Using a case, the writer describes how to incrementally build up the social network.
The book is recommended for those that make their first steps in building social networking sites. It can guide the user to enable and configure the modules to bring the site at a state that can be considered a social network. However, nowadays, social networks have greatly evolved. Facebook or MySpace for example are playing in their own fields and by transforming a framework such as Drupal (I always considered Drupal to be more a framework than a true CMS), much work is needed in order to accomplish similar levels of functionality, such as the examples above and the book does not get that much in detail.
Compared to "Drupal Multimedia", I think that "Drupal 6 Social Networking" is less successful in terms of what it tries to accomplish always having in mind the competition. Surely, it's a very helpful guide for those that want to build up small and not too feature "crowded" social networks. If you belong to that group, then here you go.
As I side note, I almost hated the fact that the Appendix assumes the reader uses Microsoft Windows. It could provide a few lines of instructions on how to install Apache, PHP and MySQL in your favorite Linux distribution. I don't think there are many users out there that use Windows as the server platform, Unix/Linux almost dominates that server market section.