/** * Responsible to generate the activity logs. * * @since 1.0 * @access public * @param object $params A standard object with key / value binding. * * @return none */ public function onPrepareActivityLog(SocialStreamItem &$item, $includePrivacy = true) { if ($item->context != 'links') { return; } //get story object, in this case, is the stream_item $tbl = FD::table('StreamItem'); $tbl->load($item->uid); // item->uid is now streamitem.id $uid = $tbl->uid; //get story object, in this case, is the stream_item $my = FD::user(); $privacy = FD::privacy($my->id); $actor = $item->actor; $target = count($item->targets) > 0 ? $item->targets[0] : ''; $assets = $item->getAssets($uid); if (empty($assets)) { return; } $assets = $assets[0]; $this->set('assets', $assets); $this->set('actor', $actor); $this->set('target', $target); $this->set('stream', $item); $item->display = SOCIAL_STREAM_DISPLAY_MINI; $item->title = parent::display('logs/' . $item->verb); return true; }
/** * Triggered to prepare the stream item * * @since 1.0 * @access public * @param string * @return */ public function onPrepareStream(SocialStreamItem &$item) { // If this is not it's context, we don't want to do anything here. if ($item->context != 'story') { return; } // Get the event object $group = $item->getCluster(); if (!$group) { return; } if (!$group->canViewItem()) { return; } // Allow editing of the stream item $item->editable = $this->my->isSiteAdmin() || $group->isAdmin() || $item->actor->id == $this->my->id; // Get the actor $actor = $item->getActor(); // Decorate the stream $item->fonticon = 'ies-pencil-2'; $item->color = '#6E9545'; $item->label = FD::_('APP_GROUP_STORY_STREAM_TOOLTIP', true); $item->display = SOCIAL_STREAM_DISPLAY_FULL; $this->set('group', $group); $this->set('actor', $actor); $this->set('stream', $item); $item->title = parent::display('streams/title.' . $item->verb); $item->content = parent::display('streams/content.' . $item->verb); // Apply likes on the stream $likes = FD::likes(); $likes->get($item->uid, $item->context, $item->verb, SOCIAL_APPS_GROUP_GROUP, $item->uid); $item->likes = $likes; // If this update is posted in a group, the comments should be linked to the group item $comments = FD::comments($item->uid, $item->context, $item->verb, SOCIAL_APPS_GROUP_GROUP, array('url' => FRoute::stream(array('layout' => 'item', 'id' => $item->uid))), $item->uid); $item->comments = $comments; return true; }