Drupal 6 Social Networking
dag writes "Drupal 6 Social Networking is an interesting book about how to build social networks and why Drupal is a good choice as a platform for building communities. Even if you don't have any Drupal experience yet, this book explains what is needed when you start from scratch and looks at the different facets of a social network." Keep reading for the rest of Dag's review.
Drupal 6 Social Networking
author
Michael Peacock
pages
312
publisher
Packt Publishing
rating
8/10
reviewer
Dag Wieers
ISBN
978-1-847196-10-1
summary
Building community websites using Drupal as a content management framework
The book starts off with a short introduction about social networks and a list of compelling reasons why one wants to set up her own social network rather than using an existing social network like Facebook or MySpace. It all comes down to what your particular goals are. The first chapter looks into why Drupal is a good fit for building a community website. Its modular design, use of known technologies and ease of installation, as well as the ample availability of modules help in that respect, and also clearly marks where the book is going next. The other half of the first chapter explains in great detail what is needed during the installation of Drupal to have a working setup. If you are already experienced with setting up Drupal you can skim through this chapter to verify that you did not miss anything with earlier installations.
The second chapter prepares the reader for using Drupal specifically targeted for building a community website. To do this the author comes up with his own example (Dino Space) which is used throughout the book. And while the subject may be far-fetched and very different from what you plan to do, it serves its purpose well. Throughout this chapter the author explains many Drupal related concepts and terminology like Nodes, Content Types or Blocks and how to use these to your advantage when designing your site.
So while the first and second chapters explains and prepares the reader, chapter three helps with important decisions regarding user contributed content and all aspects related to it. User Roles, Comments, Polls, Forums and Blogs. One thing that surprised me was how it is possible to write blog entries from Microsoft Word using a standardized API. And while it is not applicable to me (as a Linux user) I can see some benefit for others within the targeted community. Another topic from the book that I had little experience with is collaborating on a Book within your community. I was always amazed by the annotated PHP manual in the past and this possibility reflects that effort a great deal. The chapter also includes attention to how to automatically generate feeds or include feeds from others, something that helps growing the community.
The next chapter goes into how users can maintain their profiles, how profiles can be extended and themed and how profiles can be shared between websites. It also looks into specific modules to help you eg. integrate OpenID or avatars from other websites. Chapter five explains how users can interact and how the User Relationships and User Activity modules allow users to promote their own content and actions on their site. Much like how Facebook becomes a time log of individual actions of our friends. It also looks at Guestbooks, Contact forms and Groups covering more than I was looking for myself.
One thing I recently had to look into myself was how to communicate with your users. Some users register and then loose touch so there is a clear need to regularly update them about what is happening and what new content is available and that's where chapter six explains how to set up Newsletters or connect your social network to online services like Google Groups.
Drupal is mostly respected for its modular design and Drupal's author often states "If it cannot be done from a module, then that's a design bug which needs to be fixed". That said, almost everything is possible from a module, which offers great flexibility to anyone deploying Drupal to customize it to its own needs. Chapter seven explains in some detail how to write your own Drupal modules from accessing the database, interacting with other services as well as making it installable and customizable. The example shows how to interact with Google Maps from a Drupal module. But also points to similar modules for connecting to Facebook.
Another important aspect of any website is its design, chapter eight shows how to install and configure additional themes, but also explains how to modify existing templates and tweak CSS files. It does not go into great detail though, but it sufficiently points out where to look and how to experiment.
The last two chapters are a bit dim, chapter nine explains how to secure your Drupal site from automated spam and lists a few maintenance tasks every admin should know about. Much like chapter nine, chapter ten does not go into a lot of detail about how to promote your website. It mostly lists important aspects and in some cases provides links to experienced websites.
All in all I was surprised by the many items this book covers, especially the chapters about writing modules and modifying themes is something most buyers will not expect in a Drupal book regarding Social Networking. And while I believe there are better books about those topics, in general this book is a good introduction to Drupal and a guide for those who are also interested in the more advanced parts of Drupal.
I was particularly interested in this book as I set up my own family website based on Drupal and I wanted to know what technologies I missed, and what additional modules I could use to make our own family website better. In that regard this book confirmed for a large part that what I did with Drupal was how it was supposed to be, but I did learn some new tricks and new modules I never investigated before. This knowledge undoubtedly will be useful for some future Drupal-based projects as well.
You can purchase Drupal 6 Social Networking from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
The second chapter prepares the reader for using Drupal specifically targeted for building a community website. To do this the author comes up with his own example (Dino Space) which is used throughout the book. And while the subject may be far-fetched and very different from what you plan to do, it serves its purpose well. Throughout this chapter the author explains many Drupal related concepts and terminology like Nodes, Content Types or Blocks and how to use these to your advantage when designing your site.
So while the first and second chapters explains and prepares the reader, chapter three helps with important decisions regarding user contributed content and all aspects related to it. User Roles, Comments, Polls, Forums and Blogs. One thing that surprised me was how it is possible to write blog entries from Microsoft Word using a standardized API. And while it is not applicable to me (as a Linux user) I can see some benefit for others within the targeted community. Another topic from the book that I had little experience with is collaborating on a Book within your community. I was always amazed by the annotated PHP manual in the past and this possibility reflects that effort a great deal. The chapter also includes attention to how to automatically generate feeds or include feeds from others, something that helps growing the community.
The next chapter goes into how users can maintain their profiles, how profiles can be extended and themed and how profiles can be shared between websites. It also looks into specific modules to help you eg. integrate OpenID or avatars from other websites. Chapter five explains how users can interact and how the User Relationships and User Activity modules allow users to promote their own content and actions on their site. Much like how Facebook becomes a time log of individual actions of our friends. It also looks at Guestbooks, Contact forms and Groups covering more than I was looking for myself.
One thing I recently had to look into myself was how to communicate with your users. Some users register and then loose touch so there is a clear need to regularly update them about what is happening and what new content is available and that's where chapter six explains how to set up Newsletters or connect your social network to online services like Google Groups.
Drupal is mostly respected for its modular design and Drupal's author often states "If it cannot be done from a module, then that's a design bug which needs to be fixed". That said, almost everything is possible from a module, which offers great flexibility to anyone deploying Drupal to customize it to its own needs. Chapter seven explains in some detail how to write your own Drupal modules from accessing the database, interacting with other services as well as making it installable and customizable. The example shows how to interact with Google Maps from a Drupal module. But also points to similar modules for connecting to Facebook.
Another important aspect of any website is its design, chapter eight shows how to install and configure additional themes, but also explains how to modify existing templates and tweak CSS files. It does not go into great detail though, but it sufficiently points out where to look and how to experiment.
The last two chapters are a bit dim, chapter nine explains how to secure your Drupal site from automated spam and lists a few maintenance tasks every admin should know about. Much like chapter nine, chapter ten does not go into a lot of detail about how to promote your website. It mostly lists important aspects and in some cases provides links to experienced websites.
All in all I was surprised by the many items this book covers, especially the chapters about writing modules and modifying themes is something most buyers will not expect in a Drupal book regarding Social Networking. And while I believe there are better books about those topics, in general this book is a good introduction to Drupal and a guide for those who are also interested in the more advanced parts of Drupal.
I was particularly interested in this book as I set up my own family website based on Drupal and I wanted to know what technologies I missed, and what additional modules I could use to make our own family website better. In that regard this book confirmed for a large part that what I did with Drupal was how it was supposed to be, but I did learn some new tricks and new modules I never investigated before. This knowledge undoubtedly will be useful for some future Drupal-based projects as well.
You can purchase Drupal 6 Social Networking from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
If I were to make a social application, I would want to build on top of the APIs that all existing social applications have. Why reinvent the wheel, and why would anyone want to switch to yours when the existing structure has so many users.
Drupal, drupal, drupal drupal. Drupal.
I just need to twitter about it, then update my facebook status about it, then post about it on my blog on blogspot, then adjust my myspace page and/or livejournal.
And maybe do a sketch of the cover to put on my deviant art.
(Point is: Do we need more social networking sites? Why would I start my own...)
It'll be coming to a corporate network near you real soon.
I just want a workflow system that I don't have to write code.
Deleted
Wow, I must dive in head first.
Drupal is the most pain in the ass framework to work with. It renders vastly differently in multiple browsers. You have to be a CSS NINJA to get drupal to work correctly for you. Honestly, Drupal is just not ready for the mainstream. Its archaic shitty PHP interface. Every time you want to do something it inolved installing about 4-5 modules. Then when you get the f-ing thing installed you have to use all kinds of CSS magic just to get it to work right. F this framework, I hate hate hate hate it.
This book advocates at least three things we don't need:
1) Yet ANOTHER social network. The thousands of existing newsgroups, mailing lists, and web sites are enough.
2) Yet ANOTHER Drupal installation. Drupal needs to be phased out of existence. It is poorly written, full of security holes, and offers horrible performance.
3) Yet ANOTHER user of PHP and MySQL. Both need to be phased out for the same reasons as Drupal.
I'll never purchase a book that advocates such things.
...that people are stupid?
lol, you mad
Also, it's hilarious that your website is in Joomla. You're clearly a CMS expert and we should all bow down and listen to the mighty man with the Joomla homepage.
Grow up, and realize that WordPress is a blogging platform, not a social/CMS platform.
It means you like to be hacked and crashed
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
I've been a fan of this open source social network for a bit. http://www.elgg.org/
Wordpress is a blog, not a CMS. Apples and oranges. PS what the heck does Wordpress have to do with a Drupal story anyhow?
Shutting down free speech with violence isn't fighting fascism. It IS fascism!
Drupal is a general CMS, not just social networking, a facet they just teased out for this particular book.
Actually no.
There are something like 10x the modules for CMSing wordpress as there are drupal.
http://www.google.com/#hl=en&source=hp&q=wordpress+as+a+cms&aq=0&aqi=g10&oq=wordpress+as+a&fp=94f5bc3d92523f1a
This motherfucker here is in wordpress...seems to be working pretty well. Although I think Kenpo is a waste of time.
THL phish sticks
I use Drupal 6 on a multi-site setup, it's awesome. One codebase, many web sites. I wouldn't have a job without it.
If you speak PHP, then Drupal is for you. Hack it to your heart's content. If you are a mere human looking for a turnkey FOSS CMS, Drupal kind of sucks. The main problem is the modules. Sure, Drupal is modular, but unless you can take apart code, you're going to be out of luck when your calendar module affects your classified ads module for some bizarre and unexplainable reason. Or, when you have to perform a critical security update that breaks (in various unpredictable and subtle ways) the functionality of various modules. Stock Drupal is rather pointless unless you've got a couple dozen modules installed. Let's see, what else...oh yeah the forum sucks donkey balls. My users repeatedly complained about it, and when I said something about it on drupal.org, I was told that I my users' comments were not welcome, the developer appeared shocked that anyone might have a had different experience than he did, and my comment was deleted. I managed to cobble together a working site...barely. I've solved so many different problems that I'm afraid to add more functionality for fear I'll break something (again). But if you can code in PHP, then Drupal is great to invest a lot of time in fixing its problems. You'll end up with a spiffy looking website that does everything you want it to - you wouldn't even know it was Drupal except for the distinctive URLs. On non-coder websites like mine, a glance tells you it's Drupal, even if you change the theme. Yeah sure, I'm supposed to hire a developer to work on it for me. If I had money coming out of my ears, I wouldn't have chosen a FOSS CMS. I'm mostly satisfied with my site, but if I had known ahead of time how much effort and hair-pulling it was going to be, I would have chosen something else or just bitten the bullet and paid $$$$ for closed-source software.
Shutting down free speech with violence isn't fighting fascism. It IS fascism!
What the heck does Wordpress have to do with a Drupal story anyhow?
Shutting down free speech with violence isn't fighting fascism. It IS fascism!
The review is well timed. The book was from the beginning of the year, but since then the US Whitehouse has gone back to FOSS on its web site. It's using drupal. It's good to see more discussion of these tools. Everyone has heard of Drupal and plone and respect the capabilities. They are the heavy hitters like Apache2 for httpd.
What new FOSS CMS tools are corresponding to Lighttpd and nginx, ready and useful but not as visible as they could be?
Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.
I tested both Joomla and Drupal side by side, and for all its issues, drupal beat joomla for one very major reason. Simplicity. Joomla has more documentation, and seems to be technically more capable, but when it comes to added functionality, Joomla is horrendous at ease of use. Drupal was pretty simple to add modules and get going with some non-standard settings. So for Opem CMS, Drupal get the award of lesser of two evils.
"It's ok, I'm completely secure as long as my iron is off"
In my experience, Wordpress "themes" are piles of spaghetti code (with tons of logic in the presentation layer), and you have to hack core to do any non-trivial custom stuff.
It might be great for blogging, but it's a lousy platform for adding custom functionality IMHO. Would love to find out I'm wrong though, anyone had better experiences doing custom dev with Wordpress?
"Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
Noone else has said it so I will. Drupal does let you make very pretty websites with tons of functionality quickly but it has endless security issues. Many of the modules don't seem to be written in any kind of secure way so need endless updates. The core has more than its share of security issues too.
Personally I prefer software I can install and forget about not software I have to constantly worry about.
he/she should sue for trademark protection purposes.
Nullius in verba
Don't.
Read my blog.
Folks, have you heard of Deanspace? As in Howard Dean's web-enabled CRM that was widely reported as a successful fund-raising tool, that propelled Dean ahead toward's a democratic presidential victory, until John Kerry pulled ahead?
The folks that came together and collaborated on Deanspace open-sourced it. It was based on Drupal, and their powerful CRM back-end was spun-off and is now a very successful project called www.civicrm.org. These days, it makes sense to integrate both with transparently, which is well-documented. This is one single nice recipe, for example.
Think of it like Drupal as a client-facing front-end. Clients (the public?) can register with the site, lose their password and reset it, change newsletter subscriptions, that sort of thing. CiviCRM is the all-knowing powerful back-end. AFAIK CiviCRM is _well_ financed by political parties of all sorts, and they do a great job, I think. You can add Ubercart as an e-commerce transaction engine as well, which ties in nicely with your CRM engine.
Imagine folks, you COULD make your own facebook or myspace or youtube or flickr easily using Drupal, and even manage transactions. There's nothing stopping you, as a professional, if this is what you want to do. Drupal has a huge and enthusiastic community of developers. Drupal sites can easily become the 'front-end' developers use to create facebook applications.
It is worth checking out the live demo on their site, if for no other reason than to see exactly what it is capable of, and what political parties want to keep track of, (stock out of the box). Like: who is related to who. And, 'what is this person's most important issue?' with choices like gun rights, pro-life/choice, etc.
htttp://www.omnium.net.au - these guys are building up one for higher education.
Yup. I've installed lots of CMS/blogging/shopping-cart apps, and Drupal is the first one where I looked at the code and didn't go "EEEEWWWWWW!!!!"
The Web is like Usenet, but
the elephants are untrained.
Drupal is CMS with social networking tacked on.
If you want a real social networking framework to start from, check out elgg. They've thought about many of the problems when considering a social graph
www.elgg.org
Where I work, we have recently finished doing a huge redesign of the website for an organization which was having different systems for their forums, member management, blogs, etc. Most of those components had become completely deprecated and unusable. It was a good opportunity to migrate to a new platform which had less redundancy, more potential to link the systems to generate new info, access levels, etc. They have more than 20k paying members, 100k "guest" accounts, and growing quickly.
You can do neat social networking stuff without trying to reinvent Facebook. For example, the organization wanted to grant access to certain areas, working groups, forums, only to paying members (as a way to encourage membership, but also a bit filter out noise, a bit more privacy). Also, they wanted to have sub-groups, but also have part of that data re-aggregate into the main feed and present a global view (ex: calendar of events, local calendars). Finally, since it was aimed to professionals of a certain field, it encouraged people to link (friends list) as a way to keep contact, encourage networking. You can use specialized systems for each of those tasks, but putting glue code between the system tends to not scale very well.
With Drupal, you can get some modules to do a huge part of the work for you. They tend to work well, but you have to keep in mind that if a module has 80% chance of working, if your task requires two modules to be combined, your total odds are probably more towards 64%. We had to use about 100 modules. Combining modules such as og, mailhandler, advanced_forums, specific access control mechanisms, CiviCRM, etc. *and* having to do maintenance security updates of those modules can be a big challenge (especially when module maintainers push in new features with a security update...).
The other thing to consider is that the performance of Drupal for connected users is not wonderful. It has good caching mechanisms for anonymous users (core/views/panels cache, boost/pressflow), but not much for connected users. I'm surprised to see that the table of contents of the book shows that there is only one page dedicated to performance.
Except for chapters 5, 6 and 10, the other chapters seem like any typical "how to install Drupal, base config, create a module, create a theme". I guess that's great if you are new to Drupal and you're about to create a social networking site as your first medium-size project. Although I guess for 30$ it's a good reference for good practices and a first step towards building a social networking site, but you might get stuck half way (when performance, bugs/complexity and complaining users with bike-shed opinions kick in).
All things said, we tend to end up buying most of these books anyway. We usually find small anecdotes or descriptions of best practices which are well summarized, useful references for when you want to disconnect a bit and brainstorm about your project. Maybe I'll change mind when I read it, but I was a bit disappointed from the table of contents. :)
If you're an amature looking to turn professional then doing impressive projects (even if they're not widely used) is a good way to beef up your resume. There are plenty of companies looking for Drupal people so if you want to learn Drupal doing a social networking site is a good way to do that. Put it on your resume and list a link so potential employers can see what you're capable of.
Even if you're a professional doing things on your own time is a good way to learn new things that can be brought back into your workplace to help move you up in the company.
I've historically listed several projects I've done on my own time on my resume and at every interview I get asked about them. Showing an initiative to use your own time to learn a skill is a quality companies are looking for.
Work Safe Porn
Maybe you want to start a private social network, geared to one specific group of people.
There's always Ning or Flux... but maybe you want something really custom.
I've got it! We can call it "Flux You Ning Twit Face Tube Book". I'm going to be rich I tells ya!
Imagine if instead of one world wide web we had such fragmentation.
These posts express my own personal views, not those of my employer
It is surprising how Luddite some old timers are.
Social networks, as their name implies (duh!) allow you to use relationships between people to improve the service you provide.
IANAL but write like a drunk one.
Every time a Drupal discussion comes in /. several people claim this.
It is getting really tiring, so I would like to see some proof of this.
IANAL but write like a drunk one.
FWIW it was a reference to this song
There have been cover versions as well.
W
-------------------
This is my SIG. There are many like it, but this one is mine.
Every time I have to play with a PHP framework like Drupal or Magento I want to hang myself. Not quite OO, not quite MVC, not quite thought out, and never fully documented.
In the end the promised simplicity just means increased complexity whenever one needs custom functionality.