public function newNewsFeed(Objects $repo, $objectKey, $item, $verb, $message = null)
{
$definition = $repo->getDefinition($objectKey);
$itemLabel = '';
if ($labelField = $definition->getLabelField()) {
$itemLabel = $item[$labelField];
}
if (!$itemLabel) {
$pks = $definition->getPrimaryKeys();
$itemLabel = '#' . $item[$pks[0]->getId()];
}
$username = '[Unknown]';
$userId = 0;
if ($user = $this->pageStack->getUser()) {
$userId = $user->getId();
if ($user->getFirstName() || $user->getLastName()) {
$username = $user->getFirstName();
if ($username) {
$username .= ' ';
}
$username .= $user->getLastName();
} else {
$username = $user->getUsername();
}
}
$newsFeed = new \Jarves\Model\NewsFeed();
$newsFeed->setUsername($username);
$newsFeed->setUserId($userId);
$newsFeed->setVerb($verb);
$newsFeed->setTargetObject($objectKey);
$newsFeed->setTargetPk($repo->getObjectUrlId($objectKey, $item));
$newsFeed->setTargetLabel($itemLabel);
$newsFeed->setCreated(time());
$newsFeed->setMessage(null === $message ? $this->generateDiff($repo, $objectKey, $item) : $message);
$newsFeed->save();
}