I’ve been toying for a long time with the idea of tying a Drupal based social network, and at last I got the opportunity of doing that thanks to WikiSAP.
WikiSAP scope goes beyond what Drupal offers out of the box and thanks to that we’ve been able to appreciate the flexibility and the power offered by a well modeled development framework and an endless library of community contributed modules that allowed us to cherry pick in a sea of extra functionality.
Drupal learning curve is steep, the official documentation is sparse and has almost no entry level support and there isn’t an exhaustive document about the complex hooks and overrides system provided by the Drupal core.
A quick search shows that many people stick to good old PHP, rather than going for Drupal, probably scared of the many configuration options. However building a social site is very possible as there are a number of modules supporting groups and messaging and that can be used in combination as proposed in the lists you can find on Linux Notes, Programming Bulls and Neemie’s blog.
Some good books later, and with an eye fixed on the API page (excellent) we were able to get up to speed and become productive.
Once we reached productivity-land we were able to choose the following modules to extend Drupal beyond the CMS-stage into a Social Network:
- Private Messages: http://drupal.org/project/privatemsg
- Buddylist: http://drupal.org/project/buddylist (you can also try http://drupal.org/project/user_relationship)
- Invites and Contact Grabber: http://drupal.org/project/invite and http://drupal.org/project/dcl_importer
- Groups: http://drupal.org/project/og
- Sharing: http://drupal.org/project/forward (or http://drupal.org/project/send), http://drupal.org/project/addthis
- Simple Mashup: http://drupal.org/project/emfield , http://drupal.org/project/ipaper
- Notifications: http://drupal.org/project/notifications (or http://drupal.org/project/subscriptions)
Some modules don’t offer the full functionality you’d expect, like Privatemsg, that doesn’t allow to send messages via email or to select contacts from the user’s buddylist. To solve this problem I developed a module that extends Privatemsg, you can find it here. It’s called Privatemsg-ng.
Privatemsg-ng adds the following features to Privatemsg:
- Integration with OG, Buddylist, User roles (core)
- File attachments (the recipient gets a link that allows him to download the attachment)
- Outbound mailing is integrated with job_queue
If you never tried Drupal I highly suggest you try it now.
You can find the italian version of this post here.