Used in the standard community plugin to gather data for creating activity stream item
1) create a standart JomSocial plugin.
2) add onCommunityStreamRender function in the plugin. The function must be public.
3) Arrange the data according to this format:-
{
//UserId
"actor":5,
//target id
"target": 6,
"message":"string",
"group" : "JTableGroup object",
"event" : "JTableEvent object",
"headline" : "string",
"location" : "Kuala Lumpur",
"attachments":
[
{"type":"media"},
{"type":"video", "id":0, "title":"", "description":"", "duration": "string"},
{"type":"quote"}
]
PHP file of example plugin with code comments and explanations
//refer activities.videos.php file
$stream = new stdClass();
$stream->actor = $user;
$stream->target = null;
$stream->headline = CVideos::getActivityTitleHTML($act);;
$stream->message = "";
$stream->groupid = $act->groupid;
$stream->eventid = $act->eventid;
$stream->attachments = array();
if($act->groupid){
$group = JTable::getInstance( 'Group' , 'CTable' );
$group->load( $act->groupid );
$stream->group = $group;
}
$attachment = new stdClass();
$attachment->type = 'video';
$attachment->id = $act->cid;
$attachment->title = $video->title;
$attachment->thumbnail = $video->getThumbnail();
$attachment->description = $video->description;
$attachment->duration = CVideosHelper::toNiceHMS(CVideosHelper::formatDuration($video->getDuration()));
$stream->attachments[] = $attachment;
$quoteContent = CActivities::format($act->title);
if(!empty($quoteContent) && $param->get('style') == COMMUNITY_STREAM_STYLE){
$attachment = new stdClass();
$attachment->type = 'quote';
$attachment->message = $quoteContent;
$stream->attachments[] = $attachment;
}
$this->set('stream', $stream);
$this->load('activities.stream');