Creating an "Activities" feed (ie. facebook style)

Hey everyone!

I'm wanting to create an activities feed using elgg's concept of the "river", however I'm running into one major limitation.

The way that the river works seems quite simple... you have an "actor" guid, "receiver" guid, and template name.

However, for most activity feeds, you will actually have 3 elements you want to connect... an "actor", a "receiver", and a "related object".

For example, suppose User A leaves a comment on User B's wall. We need to store 3 guids: User A, User B, and Comment. This is so in the activity feed we can display WHO left the comment, WHO received the comment, and WHAT the comment was.

With the current river schema it seems impossible to do this. Does anyone have any ideas to get around this? I could use elgg objects instead but the queries would seem slower than querying the river table... but I can't think of any way of using the river schema to accomplish this.

Help please :)

 

John

  • look for 'facebook Theme for Elgg 1.8' by Evan Winslon

    Summary: Make your Elgg site look(andinsome cases behave) like Facebook



    and, search for 'hypeComments (real-time Likes and Comments)' by ihayredinov

    Summary: Fully AJAX'ed replacement for Elgg comments

  • hey dhrupdescoop,

    i noticed the annotation_id field however in order to create an annotation you need to attach it to an entity. Say User A is commenting on User B. I could store the comment information as an annotation with User A or User B but that wouldnt make too much sense.

    I could store the annotation with the comment object itself but in that case, why does elgg ask for an annotation id and not just an entityId instead (ie. someting like a reference_id that would just reference any type of entity). Is this a design flaw?

    John

  • The annoxn ID is already avail just at the time the MsgBd Comment is created in MsgBd code. "Read the code" LOLZ ;- ) [ & G/N @ 12.22am;) ]

     

  • msgbd comment? i cant understand what you're trying to get at..

  • Oh Boy ;-) LOLZ ;-oO;X;P I never "trying to get at.." I did say "read the code" ;-)
    The Comment which *is the Anno Object is avail here :=

    function messageboard_add($poster, $owner, $message, $access_id = ACCESS_PUBLIC)
    {
        global $CONFIG;
        $result = $owner->annotate('messageboard', $message, $access_id, $poster->guid);
        if (!$result) {
            return FALSE;
        }
        add_to_river('river/object/messageboard/create',
                    'messageboard',
                    $poster->guid,
                    $owner->guid,
                    $access_id,
                    0,
                    $result);
    . . .

    There it is ! ;-)