Purpose of module:
This module will implement Twitter-style following functionality for Drupal community websites. On Twitter you follow people you find interesting and people who find interesting follow you. People you are following show up on your home page in a river-of-news format. My proposed module would do the same thing for a Drupal community site. You follow people who's post you find interesting and are followed by people who find you interesting.
I wrote a bit here about how the twitter model is useful.
Module functionality
- Link to "follow" a user is added to each user page
- Stats block for each person -- # of following / # of followers / # of posts / # of comments / # of posts promoted to front page
- Create page listing activity of followers with rss feed
Questions:
Should I useBuddylist2 or User_relations? I'm favoring buddylist2 at the moment because the API seems much more straightforward to use (My needs are very simple really -- I just need code to track who is following who) -- but this is based on a very cursory look at the code for the modules. I haven't used either of them on a production site. Which module do you think would be a better base for what I'm trying to do?
Is the activity module the best way to display activity from the people a use follows?
Any other features I should consider adding which would make this module more useful to you?
Other thoughts / suggestions / critiques?

Comments
...
If it's possible to make it work with either module, that would be better. If you have to pick one, I pick UR simply because I'm using that. ;)
Activity would be a good one as well as dodge for the "tweets".
What would make it useful to me is an api function that I can pass a UID and get back a themeable listing of "activity" for all the followed people of that UID. Please don't make it rely on the logged in user because then I have to work around that to add it to advprofile.
Michelle
See my Drupal articles and tutorials or come check out the Coulee Region
Good suggestions. I like the
Good suggestions. I like the idea of making this module work with both buddlylist2 and user_relationships -- I'll have to see how much time I have. It'd be pretty easy to have the module detect which of the two modules is installed and then use that one.
The best way to integrate dodge with this module I think would be for dodge to integrate with Activity. Then you'd automatically see the "tweets" from those you are following.
I do want to make this module easy to add to advprofile -- especially since we're using advprofile on our site :>
Kyle Mathews
Kyle Mathews
Buddlylist2 is providing an
Buddlylist2 is providing an awesome API to integrate with and is really designed for what you want to do so I would personally go with it.
Keep up the hype on this
Keep up the hype on this one, it would be a great investment.
i download the twitter module, but that sucks because it uses blog, however, why not look @ mashing it with dodge?
I like the dodge and twitter modules, would be nice if they played well together.
I guess the beauty of dodge, is that the code stays on your site (and not reliant on twitter), but i don't see twitter ever dying, and they have a great api.
If you make it work with ADV profile, I assume there will be hints for adding to your own custom user templates?.. hopes..... =)
Also, keep an eye on http://drupal.org/project/opensocial-container
Anyhow, love your idea, hope it comes to life!
http://www.archetoy.com
http://www.archetoy.com
Relationships
As far as I know, UR provides for creation and maintenance of multiple relationships and types of relationships; BL[2] does not.
So, for example, in BL [I believe] you can create a two-way relationship between two users, such that they are mutual "friends". That is AFAIK the only option. In UR you can create different types of relationship; so the above one, and also for example a relationship such as "fan" - I can be a fan of Drupal, but it is not necessarily a fan of me - that is a one-way relationship. These can both exist simultaneously in UR I think.
I hope that's right - that's what I was lead to believe. I promise not to say relationship again for a good while.
Web Development in Nottingham, UK by Kineta Systems
Web Development in Nottingham, UK by Kineta Systems / Follow me on Twitter! @NikLP
Yep, UR does it
http://drupal.org/project/user_relationships talks about:
What I've done is to take UR, along with cck, and creating a custom content type, and a view to show it. Then, I made a *.tpl.php for that custom content type, and styled the display with it. (The "follow/follow" protocol also extends to other content types on the site). No module is currently needed to accomplish a "twitter" clone. Although, some work on page templates is needed to create some of the structure that many would expect to see in a web interface based on twitter. Minimally, the web portion of twitter's functionality can be accomplished with cck, views, and UR. There are probably modules that can even handle the SMS/IM/Text functions, but I have not yet dug into that.
If you make a module, I'd like to suggest that it rely on cck, views, and UR, creates a content type and perhaps includes an optional page template and simple css framework. This way people can form and shape it using cck, views, UR, and *.tpl.php into what they need, or just use it as-is, and it will build upon existing frameworks that are well supported. Plus, it will then work easily with OG, etc.
Sam Rose
Social Synergy
Open Source Ecology
P2P Foundation
Sam Rose
Hollymead Capital Partners
P2P Foundation
Social Media Classroom
The module I want to write
The module I want to write is like Twitter only in that you can follow people and be followed. When you go to the page where you view activity of people you're following, you won't see just tweets or blog posts but a river of all the activity of people you have been following. So If I'm following John and he writes a blog post, comments on a blog and a forum, and posts a picture -- I'll see all of that activity on my "following" page.
So I don't want to create a twitter clone -- just copy its follow/follow concept. My module woulnd't be that much -- it'd mainly just provide a UI for the follow/follow concept and glue different modules together (like UR or Buddylist and views/panels/activity etc.)
Kyle Mathews
Kyle Mathews
try activity module for the
try activity module for the river of actions like the facebook news feed.
Not quite the same
Activity has stuff like "Frank wrote a blog post". Twitter has the actual content.
What's needed is basically a view that can show nodes filtered by author where author is on a favorites list of the user. I wonder if views 2 is up for this with its relationships?
Michelle
See my Drupal articles and tutorials or come check out the Coulee Region
Yup
I just asked merlinofchaos and he says:
"Yes, Views 2 can do this assuming buddylist or user relationships actually exports the relationship."
So that sounds like an option worth looking into. Being able to do views of what your buddies(or whatever relationship) are writing sounds really cool.
Michelle
See my Drupal articles and tutorials or come check out the Coulee Region
I'm on Drupal 5 still...
So Views 2 is out for now. What I've been thinking is just generate a view as simple as the tracker page for each person. I think it'd be a fairly simple sql query to pull out that information. Just query the node and comment table for the UIDs of those people you are following, sort by the timestamp, and pull that together into a view. Then for Drupal 6, upgrade to use Views 2.
Does the activity module say anything other than "John wrote a blog post". If it could be configured to say "John wrote a blog post entitled 'Dogs do go to heaven'" or "John wrote a comment on a blog post entitled 'Pigs and Cats are mortal enemies'" that'd be useful. If your following ten people, you don't want just to know that someone wrote something but what they wrote about to see if it sounds interesting enough to click through to read.
Kyle Mathews
Kyle Mathews
Also
I was talking to MOC yesterday as well, and he mentioned that he had been talking to Nate Haug about relationships and the whole BL/UR thing. He was saying something about upgrading views bookmark module, and how that would relate to views.
Views bookmark is another flexible way of favouriting stuff that has as yet not been mentioned IIRC - it works differently than the other two modules mentioned above though AFAIK.
Web Development in Nottingham, UK by Kineta Systems
Web Development in Nottingham, UK by Kineta Systems / Follow me on Twitter! @NikLP
Activity
It's configurable with tokens so you can do that.
Michelle
See my Drupal articles and tutorials or come check out the Coulee Region
Panels 2.0
Panels 2.0 could take the place of *.tpl.php for presentation, I forgot to add that. So, a module could rely on views, cck, panels 2.0 and ur, simply taking some of the manual work out of configuring those, but leaving an interface for an admin to adjust as needed without digging into actual code (but possibly bit difficult for a very novice Drupal user)
Sam Rose
Social Synergy
Open Source Ecology
P2P Foundation
Sam Rose
Hollymead Capital Partners
P2P Foundation
Social Media Classroom
heads up
I'm not going to have time to work on this module until at least September and Google Summer of Code is out. If you're still interested in the functionality this module would provide -- check out this recent proposal to the Knight Drupal Initiative -- it looks like their want to do something very similar.
http://groups.drupal.org/node/11859
Kyle Mathews
Kyle Mathews
Activity Stream
Great topic.... For a user's activity external to the site, have a look at Activity Stream.
my implementation
I have developed a couple of blocks on my blog. Http://www.millwoodonline.co.uk
One shows all the avatars of the people I am following and the other shows all my posts and "the people I am following"'s posts.
Any update
I was just wondering if there is an update on this. Very interested in this module/functionality.
twitter feed module
I badly want a website where i can have an account that feeds tweets from a very select number of the people i follow on twitter ... Is this the best module to achieve this very specific and limited goal?