Jarves\Utils::newNewsFeed PHP Method

newNewsFeed() public method

Adds a new news-feed entry. If not message (means null) is passed we generate a diff.
public newNewsFeed ( Objects $repo, string $objectKey, array $item, string $verb, string | null $message = null )
$repo Objects
$objectKey string
$item array
$verb string
$message string | null
    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();
    }

Usage Example

Esempio n. 1
0
 /**
  * @param string|File $path
  * @param string $verb
  * @param string $message
  */
 protected function newFeed($path, $verb, $message = '')
 {
     $file = $path;
     if (!$path instanceof File) {
         $file = $this->webFilesystem->getFile($path);
     }
     if ($file instanceof File) {
         $this->utils->newNewsFeed($this->objects, 'jarves/file', $file->toArray(), $verb, $message);
     }
 }
All Usage Examples Of Jarves\Utils::newNewsFeed