Abstraction of statuses from users

Michelle - September 13, 2009 - 20:06
Project:Facebook-style Statuses (Microblog)
Version:6.x-2.x-dev
Component:Miscellaneous
Category:feature request
Priority:normal
Assigned:Unassigned
Status:postponed
Description

I could have sworn you said on IRC that there was an issue for this but search isn't turning up anything. I would like to have a set of statuses attached to a group rather than a person. Each status would be posted by an actual user, but the list itself would be on the group. So it would be like a group wall rather than a profile wall. This would be a handy way for group members to have a quick chat without cluttering up their own walls. I'd prefer to use FBSS over some other chat module for this because then it would have a consistent interface. Plus, the upcoming plans for Publisher and such would be great to have.

I totally understand if you say this is out of scope, but keep in mind that Facebook itself allows groups to have walls and you did name this Facebook-style... ;)

So, what do you think? Is this doable? I'd be happy to help test. Maybe even help code it if you can point me in the right direction.

Thanks,

Michelle

#1

IceCreamYou - September 13, 2009 - 20:29
Status:active» postponed

This is on my long-term to-do list, up there in the nether with comments. Technically speaking, the core implementation is actually pretty easy--the status update form has to run some logic to figure out that it's being shown on a group, and then when it saves a status, there would have to be another column on the {facebook_status} table to hold the group ID. The complicated part is writing the Views integration, mainly because there would need to be filters to exclude statuses posted to private groups as well as groups in general. OG integration should also have a separate API, but I don't really care about that.

So if and when I do this, it will probably be as a submodule. If you get something rolling, the whole process will move a lot faster. The core functionality would be in an implementation of hook_facebook_status_save(). You can ignore pretty much everything else for now, although Views integration is pretty crucial at some point obviously.

#2

Michelle - September 13, 2009 - 21:42

Thanks for the pointers. I was thinking of this in another direction... Basically:

type: node or user
eid: (entity id) This is the ID of what the status is attached to, either node ID or user ID, depending on type.
sid: uid of the person sending the status
rid: uid of the person (if any) receiving the status

Then you can have a view of all statuses, all node statuses, all user statuses, or filter statuses to a particular type/id combination.

This would disconnect streams from users a bit and make it so you could potentially attach a stream to anything, much like fields are getting disconnected from nodes. :) You could even add taxonomy in there and have a stream per taxonomy term.

I haven't actually tried to code any of this. I see your API is well documented, though, which is great. I'll have to give it some more thought but I worry that my ideas may be too radical for you to fold back into the module itself. :(

Michelle

#3

IceCreamYou - September 13, 2009 - 22:32

That makes sense--I was essentially thinking the same thing except I wasn't thinking of abstracting it to another level. There would still have to be at least one filter written explicitly for OG integration because of the complication of having private groups though.

FWIW, the current database schema is here. Essentially from what you're proposing UID would change to EID and a "type" column would be added. That's completely feasible although it would require much more sweeping changes because the API signatures would all change and all the DB queries in them would change as well.

I actually really like this idea, although it will be months before I can even think about committing the amount of time this would require. If Author Pane had views integration and this proposal got in to FBSS, FBSS could potentially even be a complete replacement for the comment system in addition to all its other uses.

#4

Michelle - September 15, 2009 - 04:05

Sounds like postponed is a good status. It doesn't make sense for me to hack together something when this really needs some re-architecting to make it work. It's one of those "would be nice" things on my site but I can get along without it. Why don't we talk more when you have time?

Michelle

#5

IceCreamYou - September 15, 2009 - 04:35

Works for me. I may just throw in a few final fixes to the 2.x branch, release a full 2.0, and then slate this as the first feature to go into 3.x. That will hopefully make the transition easier for most people and keep from overhauling the API when we're already at RC2 for this branch, and will give me some direction for 3.x because I still haven't decided on a Publisher implementation.

#6

Michelle - September 15, 2009 - 14:07

That sounds like a good plan. :)

I wish we could fast forward sometimes... I think separating the stream from users will open up a lot of possibilities, especially once comments are added for a full conversational experience. Microblogging on an organic group is awesome if the folks want to get together for a quick chat. I'm sure there are other uses for it as well. Maybe for wiki pages to have a "discussion" tab? This has a ton of potential.

Michelle

#7

IceCreamYou - September 15, 2009 - 20:14
Title:Attach statuses to an organic group» Abstraction of statuses from users

I completely agree. Technology rocks. :D I've reworked the roadmap for 3.x, by the way--you may want to take a look.

#8

Michelle - September 15, 2009 - 20:17

Sounds great! Can we just skip 2.x and have 3.x come out tomorrow, please? ;)

Michelle

#9

carlos73 - September 19, 2009 - 08:09

It would be great to have a "full Facebook-style Publisher" but for DRUPL 6 not for DRUPL 7.
I think that drupal 7 takes lot of time before it becomes release and you have to wait that all the others modules (OG, notification, etc..) will be developed for Drupal 7.

I suggest you the develpoement for Drupal 6....first of all for those features:

- pubblish photo
- Userpoints integration
- Comments on statuses

Carlos

#10

IceCreamYou - September 19, 2009 - 19:07

This issue is unrelated to plans for a Publisher; please keep it on-topic. (And anyway, if D7CX continues strong and test coverage does as much for bug-squashing in core as some seem to think it will, it's fairly likely that I won't even get around to starting a Publisher implementation until after D7 and many major contributed modules are already out and stable.)

#11

IceCreamYou - September 20, 2009 - 18:56

Note to self: abstracting statuses from users also implies the use of the type_options property in hook_activity_info.

 
 

Drupal is a registered trademark of Dries Buytaert.