Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Image

Drupal 6 Social Networking 122

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.

*

This discussion has been archived. No new comments can be posted.

Drupal 6 Social Networking

Comments Filter:
  • Cool Book! (Score:4, Insightful)

    by Monkeedude1212 ( 1560403 ) on Wednesday November 18, 2009 @02:15PM (#30147338) Journal

    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...)

    • I mean, what are the compelling list of reasons the book supposedly lists... I guess I have to buy it to find out.

    • 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.

       

      • by smooc ( 59753 )

        Although I think will right I also think it won't take off in any company. Putting it in a artificial boundary of an organization actually defeats the whole idea of social networking. My social network is not limited to my colleagues so why would I participate on a "platform" which is limiting my social network to those boundaries while I can find all my colleagues and others outside?

        And while I am at it, when will we get that in the end social media is not about the functionality it provides but about the

        • by Eskarel ( 565631 )

          Well mostly because it's a natural boundary not an artificial one.

          I don't necessarily want to be friends with my boss, and even in cases where I am, there has to be "friend" boss, and "boss" boss, in order for that to work. Extending that out to colleagues you are not friends with is even worse. My work life and my personal life are and must remain separate, because that's the way life works. Your boss doesn't need to know you got really drunk last night, and your friends don't need to know the confidential

    • Re:Cool Book! (Score:5, Informative)

      by Anonymusing ( 1450747 ) on Wednesday November 18, 2009 @02:28PM (#30147464)

      Maybe you want to start a private social network, geared to one specific group of people.

      There's always Ning [ning.com] or Flux [flux.com]... but maybe you want something really custom.

      • Re: (Score:3, Insightful)

        a private social network, geared to one specific group of people

        Gee, I think I've heard of something like that ... it's called a BBS.

        (Actually, when you think about it, any social network is really nothing more than a really big BBS with some domain-specific optimizations.)

        • by lennier ( 44736 )

          "(Actually, when you think about it, any social network is really nothing more than a really big BBS with some domain-specific optimizations.)"

          Yes!

          I run a Ning site and for me, it's the first time I've felt the simplicity and friendliness on an Internet forum that good old BBSes had back in the 80s. Sorry phpBB, but you just aren't quite the same (though you're a good #2).

          It's only taken 25 years for the Internet to catch up with Fidonet, but never mind.

          Also, tubes sound warmer, darnit. Now take your newfan

          • Re: (Score:3, Interesting)

            it's the first time I've felt the simplicity and friendliness on an Internet forum that good old BBSes had back in the 80s.

            You might also enjoy Citadel [citadel.org], which started life as a BBS package and is now popular as a groupware platform. People are still using it to run online communities, too.

          • by Rhaban ( 987410 )

            phpbb is and has always been evil.

        • 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.

      • Maybe you want to start a private social network, geared to one specific group of people.

        An anti-social social network. I like it!

      • 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.

    • don't forget to make a video for youtube of you talking about it. your vlog will get you all teh rankings!

    • We have a near-social network intranet where I work. Not a replacement for the real social networks out there but it does allow employees to get the kind of information out there that normal intranet sites normally wouldn't. I guess it makes people who work here seem more personable. Who knows if it has real value but it's there none the less.
    • by jc42 ( 318812 )

      (Point is: Do we need more social networking sites? Why would I start my own...)

      Well, I've recently got ahold of several drupal books, and lots of the online docs, and installed on a handy machine. The reason is that I'm involved in a couple of products where we could really use a local social network/news/blog site over which we have full control. Drupal seemed to have lots of rave reviews, so it was a good candidate.

      Unfortunately, after several weeks of roughly half-time studying the docs and experiment

      • I can't answer most of your questions because I haven't read the book, but I can tell you that a node is the smallest unit of addressable content that Drupal deals in. What's that in English, you ask? By addressable, I mean it has a URL, and can be displayed provided you have the rights to view it. By content I mean that it's something that someone entered into Drupal, and it's stored in the database. By smallest I mean that as a reader of the site, while you often view a node by itself, nodes can also be c

      • by oatworm ( 969674 )
        O'Reilly's Using Drupal [oreilly.com] is pretty helpful with the basics. I'm not going to lie to you, there's definitely some opaque terminology in there, but I've noticed that seems to be true with CMSes in general. I still tend to squint a bit when I have to think about vocabularies and taxonomies, so don't feel too bad.

        Once you figure out that just about everything in Drupal is a database object, it all starts to make sense. A "node" is functionally the same as a database table. A "view" is functionally the sam
        • by jc42 ( 318812 )

          Don't get me wrong. If you know what you're doing and you have the time and patience to get through it, you can do some pretty cool stuff with Drupal. That said, if the only CMS you've ever touched in your life was something like Wordpress, you're in for a rough ride.

          Yeah; that's the impression I got, which was why I spent some time (and money ;-) trying to learn to use it. I may have to put it off a while longer, since I've been having a lot of success just building my own stuff. But the main problems wit

          • by oatworm ( 969674 )
            Yeah, you're probably logged in as the admin user. Drupal seems to keep credentials cached for quite some time; I'm not sure how long it is by default, but I'd wager it's over a week. By default, there isn't a login page or node - instead, logging in is usually set up as a block. That said, if you lose it entirely, just punch in the URL for your Drupal installation and append "?q=user" to the end (e.g. http://www.fabrikam.com/?q=user [fabrikam.com]). If you're logged in, it'll give you some stats regarding your accoun
    • 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 in

  • Wow, I must dive in head first.
  • Elgg (Score:2, Interesting)

    I've been a fan of this open source social network for a bit. http://www.elgg.org/ [elgg.org]
  • by interglossa ( 1110251 ) on Wednesday November 18, 2009 @02:47PM (#30147706) Homepage
    Drupal is a general CMS, not just social networking, a facet they just teased out for this particular book.
  • I love Drupal (Score:2, Informative)

    by gabereiser ( 1662967 )
    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.
    • Would you be willing to explain a little more about this? Are you saying you have one database and one install of the web application, but are able to run multiple web sites off of that?

      If so, can users log in to the different sites with the same log in? Can they communicate with each other in any way?

      Or do you just mean that you are running multiple installs of drupal for various websites.
      • It's called "multisite" with Drupal. You can run several independent websites (or dependent, with a little hacking) with separate databases but off the same Drupal core. It's quite handy.

        • I see. Thanks. Not exactly what I was hoping for.

          What I really want is the ability to customize a site for users based on a group of some sort. So say that group was by city. I want Baltimore users to see the Baltimore page, Atlanta users to see the Atlanta page, etc. They would sort of have their own site, which news and such specific to their group (city). But they would also be able to communicate with other users in limited ways. Does anybody think this is possible with Drupal?
      • Drupal have multiple website capability since a while ago. They login to each site and sign up to them individually, but having the login works for all of them is an option. They are intended to be completely separated with their own database, just sharing the same code. However they can communicates if you really need them to. It is on installation, but many websites.
  • Drupal is for coders (Score:3, Interesting)

    by DNS-and-BIND ( 461968 ) on Wednesday November 18, 2009 @03:08PM (#30147942) Homepage
    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.
    • The biggest problem with Drupal is module developers. Well, that and that they outright lie. The coding standards allegedly demand comments and documentation but some of the highest-profile modules have NEITHER, for example the fucking voting API module. This is a seriously core contrib module (I realize the contradiction, but come on, it's a heavily referenced module and it's the de facto way to handle voting/scoring) and yet there are neither comments (any comments in the code, mind you, there are NONE) n

    • I had similar problems. I switched to SimpleMachines Forum and Tinyportal. Sure, it's not a full CMS, but it works well and doesn't waste my time with debugging.
  • 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 [techpresident.com]. It's good to see more discussion of these tools. Everyone has heard of Drupal [drupal.org] and plone [plone.org] 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?

    • Drupal, as would most any other PHP app like Joomla or Wordpress, works fine under lighttp and nginx. The effort goes intro translating whatever apache-centric config for the tool into lighttp or nginx config, and this effort would be required regardless of whether you use Drupal, Joomla, Wordpress, etc.

      Indeed, I run a Drupal portal under nginx + fastcgi-php + sqlite to get fast page loads.

  • Better than Joomla (Score:3, Informative)

    by carp3_noct3m ( 1185697 ) <slashdot&warriors-shade,net> on Wednesday November 18, 2009 @03:44PM (#30148346)
    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.
  • 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.

    • by Falc0n ( 618777 )
      As opposed to building your own website, or using RoR/Plone to build a site, which cannot be easily checked for security updates? no thanks.

      Drupal has a dedicated security team which is proactive on maintaining secure code. One reason the white house gave for using drupal is because of its diligence to security.

      Drupal also encourages and has best practices that -most- modules (especially the most popular ones) will weed out the most obvious security issues such as input sanitization, SQL injection, et
      • by 1s44c ( 552956 )

        As opposed to building your own website, or using RoR/Plone to build a site, which cannot be easily checked for security updates? no thanks.

        Drupal has a dedicated security team which is proactive on maintaining secure code. One reason the white house gave for using drupal is because of its diligence to security.

        The white house uses windows too, windows has a dedicated security team. None of that makes it secure, you can't tack on security later.

        I don't mean to say that drupal is worse than many other ways to do the same thing because I honestly don't know. I've only used ROR likely and drupal to develop a few websites.

        • by Xest ( 935314 )

          The fundamental mistake with your argument is assuming the version of Windows they use isn't secure.

          No seriously, don't laugh, Windows server has come along leaps and bounds in the past two or three releases, it's really a pretty solid server OS nowadays.

          The assumption that all Windows versions are like the Windows versions of old is a false assumption to make, it's really not what it used to be in terms of security weakness.

          This is generally why when sites get hacked nowadays it's not the OS that gets hit

    • 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

      [citation needed]

      • by 1s44c ( 552956 )

        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

        [citation needed]

        There were the 8 security alerts on the security mailing list this very morning. Great on them for updating this stuff but it would be better if things like that didn't happen in the first place.

    • 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.

      • by 1s44c ( 552956 )

        Ok, the following hit the security list this morning:

        [Security-news] SA-CONTRIB-2009-102 - PHPList Integration Module - Cross Site Request Forgery
        [Security-news] SA-CONTRIB-2009-103 - Strongarm - Cross Site Scripting
        [Security-news] SA-CONTRIB-2009-104 - Feed Element Mapper - Cross Site Scripting
        [Security-news] SA-CONTRIB-2009-105 - Subgroups for Organic Groups - Cross Site Scripting
        [Security-news] SA-CONTRIB-2009-106 - Agreement - Cross Site Scripting
        [Security-news] SA-CONTRIB-2009-107 - Uber

        • That's 8 alerts in one morning and that happens every two weeks or so. It's great they are fixing this stuff but it would be better if they had less security related bugs in the first place.

          You are committing a logical fallacy, you are basing your opinion of a product's security on reported security vulnerabilities. But since vulnerabilities aren't only announced when an exploit is discovered, but simply when a vulnerability is patched, you're confusing exploits with vulnerabilities. The difference between Drupal and any other system may well be the rate at which vulnerabilities are reported; it could be indicative of greater code review, and is almost certainly [at least partially] a factor o

          • by 1s44c ( 552956 )

            You are committing a logical fallacy, you are basing your opinion of a product's security on reported security vulnerabilities. But since vulnerabilities aren't only announced when an exploit is discovered, but simply when a vulnerability is patched, you're confusing exploits with vulnerabilities.

            You are saying that it's OK for your site to have vulnerabilities as long as you don't believe they have been exploited yet.

            The way I see it vulnerabilities are things that either should not happen or should be fixed immediately regardless of whatever else I had planned for my day. Nobody needs problems like that.

            In the end, complaining about drupal because you got notifications of vulnerabilities in contributed modules (they're not in core!) seems unusually pathetic.

            Why don't you try telling your boss he is being pathetic when he complains that a third party module has leaked half your database? These things have access to everything drupal core does. Drupal i

  • he/she should sue for trademark protection purposes.
  • by operator_error ( 1363139 ) on Wednesday November 18, 2009 @05:43PM (#30149910)

    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.

  • 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

    • Drupal is CMS with social networking tacked on.

      What is a CMS? it is a framework. What is PHP? Yes, a framework. Drupal provides a layer of abstraction. There is nothing inherently superior about building your social networking right on PHP (or whatever) as opposed to building it on Drupal. Everything drupal does is based on modules (some of them are in core, and some are marked required, and that's the only difference between a core module and a contrib module besides who supports them) so your comment makes no sense whatsoever.

  • by Mathieu Lu ( 69 ) * on Wednesday November 18, 2009 @10:35PM (#30152678) Homepage

    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. :)

You know you've landed gear-up when it takes full power to taxi.

Working...