Greetings,

After listening and reading many academic and theoretical discussions about social networks (such as Clay Shirky etc), the main concern seems to be the Granularity of relationships. For example, facebook's all-encompassing category of "friends" is no-good in defining the nature of the relationship that 2 users may have, and to configure the interaction between the two accordingly. Hence, for example, very often I want to post something on Facebook, but then I think to myself "no, I don't want to show this to all 500 so-called "friends", some of whom I meat once in a pub, and others who might be my co-workers". And I'm sure this is one of the fundamental restrictions that hinders communication via social networks: "I want to transmit this to this group of people, but not to everyone". It's not just about privacy, but about Granularity of relationships.

Twitter has realised this and created lists, so that you can read tweets from a grouped list of usernames. Facebook has realised this and created lists. As of now, Facebook has launched another feature which is also calls "Groups", whereby you create "groups" (family, co-workers etc) and when posting, you can choose which lists you want it to be visible to.

But let's not go too far, let's remember the good-old "Buddylist" module we had in Drupal in 5.x... However, quirky and simplistic it was, it had the ability for end-users to create Lists and to name those lists however I wanted long before Facebook launched lists feature. So why can't this very useful feature for contact-management be done in User Relationships?

Feature request:
1) end-users should be able to create lists and name those lists however they want ("co-workers", "family", "people I never met" etc), as we see on facebook. For AJAX effect maybe some of the code from Community Tags module could be taken.

2) This should work for both requesters and requestees. So, if a site has just one one-way-reciprocal relationships like on twitter, end-users would be able to categorise both their followers and the ones who are following them.

3) The function that allows people to AJAX-create and add connected users to their custom Lists, should also be available in Views.

4) The lists should also exist in Views as exposable filters (so that people can choose which list they want to read)

5) Integration with UR-Node-Access (so that, let's say, the end user can choose which List of Followers or Friends this node should be visible to)

What do you think? Any ideas?

Comments

tugis’s picture

I have been thinking about a functionality like this! It would be very useful for a user to have the ability to create "Relationship lists" to use to send messages per list or to share content per list for example.

Any updates about this topic?

Subscribing

mrf’s picture

Wouldn't the Flag module already provide most everything needed for this type of sub-categorization?

As I understand the request this sub-status is mainly important to the user who sets it, and a simple flag would be enough for that, then a view can easily show all your friends of x type broken down by flag type. This should get you the features in 1 through 4.

If this new sub-status needs to be interacted with publicly (send a private message to all my friends who are also family) then creating some sort of sub-relationship would probably be necessary and most likely require a pretty significant change to the UR api to happen. This would be necessary for integration with ur node access.

berdir’s picture

An idea for 7.x was to make relationships a fieldable entity, that might also help with flagging/tagging, adding images to a relation and what not...

ajayg’s picture

I would say flag is certainly not the way since flag does not allow arbitrary "tagging" of lists, it just allows to on/off a predefined tag.

Can we leverage already existing free taggin feature of taxonomy? I haven't seen how buddylist implemented it but reviewing that may throw some additional light.

If we make it a fieldable enitity, the key would be how we would simplify in UI. An end user should be able to tag a few relations with a tag. It should be simple as that.

drupalina’s picture

I agree with ajayg's comment #4 - flag is certainly not the way since flag does not allow arbitrary "tagging" of lists, it just allows to on/off a predefined tag.

I think facebook has the most intuitive interface for creating lists and adding people to lists on the fly. It seems like all that facebook is doing is allowing users to tag each other with some privately created taxonomy tags which only they can see. Drupal's buddylist was working in similar way, but without the tags: users simply created their own named lists and then added other friends to 1 or more lists. It's just that facebook is doing it with a nice AJAX interface. But it's probably nothing too sophisticated.

mrf’s picture

The reason I suggested flag was to point out that a solution already does exist for bookmarking a user with a particular piece of information. You could provide your users a few default types of lists (different flags) and get pretty close. There is a module that allows site users to create arbitrary flags for themselves, but I'm not sure how well it works.

I'm not sure its a good idea to roll this type of feature into user relationships. Drupal already has nodequeue and flag which are both basically list creating tools. I was playing with Twitter's lists today and one feature I really like is that you can add someone to a list without also friending them, I think this points to a much more generic need for an easy way to create arbitrary lists of Drupal users. UR coming in after that type of feature exists and using it for simple sub-categorization or setting implied relationships with their own node access permissions makes a lot of sense to me.

ajayg’s picture

I agree that UR may not be the best place to add tagging or "listing" of users. It should be outside URL. But UR should support or integrate with one of the methods suggested above.

But we can still discuss here what possible modules can be used here and choose one of them to integrate or perhaps write a recipe how it can be done.

mrf’s picture

I posted this idea over at the contributed module ideas group hoping that someone with the time and interest in this type of feature might jump in and come up with a good solution. After looking at what both Facebook and Twitter do, you've convinced me that flag by itself just isn't good enough to offer a decent experience to end users.

verynic’s picture

have anybody tried QQ? http://download.imqq.com/download.shtml

the ways of QQ is a good direction.

mrf’s picture

http://drupal.org/project/userqueue

User Queue is a module which is functionally quite similar to Nodequeue. It allows you to create multiple queues, add users to them, and order the users within the queue. Queues can have a maximum number of items, or be unlimited.

Happened upon this module today and thought about this discussion. Not sure if there is any user facing interface but it looks like a great start if nothing else.

mrf’s picture

And just to further add to the use case / examples for this kind of feature, this could power something similar to circles in Google Plus.

sw3b’s picture

Subscribe !

mrf’s picture

berdir’s picture

For the record, it is probably very unlikely that anything will happen for the 6.x or the 7.x-1.x branch.

The plan is that 7.x-2.x will depend on the relation module and relationships will be fieldable entities. This will make it possible to implement this using a taxonomy field and all we need to take care of is building a nice UI on top of it. It might even be possible to do this in a completely separated module so that this feature remains optional.

mrf’s picture

Closed #469484: Organizing friends - friends tagging? as a duplicate of this issue.

JohnnyX’s picture

Also interested in that feature (G+ circles).

mrf’s picture

Status: Active » Postponed

I am postponing any 6.x feature requests that don't have a current applicable patch to help sort the large list of open features.

Please feel free to set to 'needs review' once a patch is included.

JohnnyX’s picture

Any plans for a 7.x-2.x version?

mrf’s picture

I'd recommend helping out with http://drupal.org/sandbox/davereid/1240856 and getting us to a stable 7.x-1.0 version so we can start on 2.0. With those two pieces combined as I see it there is nothing left to do here except maybe stick a slick UI on it.

JohnnyX’s picture

Thanks! Found a second entityqueue module there!
http://drupal.org/sandbox/amateescu/1429904

JohnnyX’s picture

Maybe a upcoming UR circle solution...
http://drupal.org/node/1533004

imDhaval’s picture

Version: 6.x-1.0-rc5 » 7.x-1.x-dev
Status: Postponed » Active

hey This are the must required functions for the morden era.
developer have to think abt it

ex. if Mike want to be a friend of David

he will click on "add to circles" link & a popup windows will show all the friend list of him.
he will click on any desired circle name and now he is following all the activity of david.
(one way relationship)

if David follow the same. then it will becomes a Two way relationship.

plz help me guys is this possible with UR or Flag???

mrf’s picture

Status: Active » Postponed

Please don't mark this as active until there is code in place.

The main problem here is some people want twitter's UI, some people want Facebook's and some people want Google's, I think it is in our best interests for the UR module to focus on the API / storage and leave it up to others to decide how they want to go about creating the relationships if it goes beyond a really simple UI.

JohnnyX’s picture

I like G+ circles and the simple and quick "add user to circle" widget there, but the feature itself with a simple and user friendly UI would be the best way as start. Additional (sub-)modules could improve the UI how the people like it. But the functionality itself (add or remove circle/ list and a simple UI to add/ remove users to the lists) would be great!

imDhaval’s picture

Status: Postponed » Needs review

user relationship circles

Allows to create circles of users based on user relationships, and shared content. Similar to Google+ circles

Link to Git
http://drupalcode.org/sandbox/dep85/1525750.git/commit/16a5827

the developer had abandoned development of user relationship circles.

so plz @MRF, test it for us.

i m not a programmer, so plz direct us to make it bug free.

mrf’s picture

Status: Needs review » Needs work

Sorry imDhaval, but I've already looked at that and its pretty far from a complete solution and doesn't go the direction I would, probably a better idea to start from scratch.

The api calls for creating and storing these relationships are already there, to implement an exact clone of g+ circles one would need to:

  1. Allow for people to create arbitrary relationship types or subcategories (see above discussion of flag entityqueue etc. for how this might happen)
  2. Create a fancy ajax-powered UI to add and remove people from these relationships.

If you are willing to stick with a set of predefined relationship types instead of allowing users to create them the task is almost all accomplished on the front end in javascript.

intent’s picture

subscribe

JohnnyX’s picture

Maybe that Feature could be build with organic group Module. Create List (=og) and add/remove Users works fine. Also Access control System is there. IT just needs a Nice UI/ Widget to add/remove Users a simple and Nice way...
The group admin Page to add members isn't a nice end user solution.

imDhaval’s picture

cool idea johny, let me try it :D

JohnnyX’s picture

Found a solution with Access by Term, Private Taxonomy Terms and Content Access (workaround to grand authors access to own node... -> #1428634: Any way to enable view access only if author or if published)

Seems to work as a simple G+ circle solution :)

*UDPATE*
Mh, worked one time. Next time show me a warning and view permission ignored...
#1713424: Problem with private taxonomy terms

JohnnyX’s picture

A UR solution seems inpossible... So I tested it with GCC Module with GCC widget :)