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
Comment #1
tugis commentedI 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
Comment #2
mrf commentedWouldn'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.
Comment #3
berdirAn 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...
Comment #4
ajayg commentedI 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.
Comment #5
drupalina commentedI 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.
Comment #6
mrf commentedThe 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.
Comment #7
ajayg commentedI 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.
Comment #8
mrf commentedI 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.
Comment #9
verynic commentedhave anybody tried QQ? http://download.imqq.com/download.shtml
the ways of QQ is a good direction.
Comment #10
mrf commentedhttp://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.
Comment #11
mrf commentedAnd just to further add to the use case / examples for this kind of feature, this could power something similar to circles in Google Plus.
Comment #12
sw3b commentedSubscribe !
Comment #13
mrf commentedClosed #654482: Add taxonomy (category/list) to User Relationships as a duplicate of this issue.
Comment #14
berdirFor 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.
Comment #15
mrf commentedClosed #469484: Organizing friends - friends tagging? as a duplicate of this issue.
Comment #16
JohnnyX commentedAlso interested in that feature (G+ circles).
Comment #17
mrf commentedI 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.
Comment #18
JohnnyX commentedAny plans for a 7.x-2.x version?
Comment #19
mrf commentedI'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.
Comment #20
JohnnyX commentedThanks! Found a second entityqueue module there!
http://drupal.org/sandbox/amateescu/1429904
Comment #21
JohnnyX commentedMaybe a upcoming UR circle solution...
http://drupal.org/node/1533004
Comment #22
imDhaval commentedhey 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???
Comment #23
mrf commentedPlease 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.
Comment #24
JohnnyX commentedI 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!
Comment #25
imDhaval commentedthe 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.
Comment #26
mrf commentedSorry 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:
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.
Comment #27
intent commentedsubscribe
Comment #28
JohnnyX commentedMaybe 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.
Comment #29
imDhaval commentedcool idea johny, let me try it :D
Comment #30
JohnnyX commentedFound 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
Comment #31
JohnnyX commentedA UR solution seems inpossible... So I tested it with GCC Module with GCC widget :)