/**
  *
  * Generates a data array that will be passed to the typoscript object for
  * rendering the icon.
  * @param \Mittwald\Typo3Forum\Domain\Model\Forum\Topic $topic
  *                             The topic for which the icon is to be displayed.
  * @return array               The data array for the typoscript object.
  *
  */
 protected function getDataArray(\Mittwald\Typo3Forum\Domain\Model\Forum\Topic $topic = NULL)
 {
     if ($topic === NULL) {
         return array();
     } elseif ($topic instanceof \Mittwald\Typo3Forum\Domain\Model\Forum\ShadowTopic) {
         return array('moved' => TRUE);
     } else {
         return array('important' => $topic->getPostCount() >= $this->arguments['important'], 'new' => !$topic->hasBeenReadByUser($this->frontendUserRepository->findCurrent()), 'closed' => $topic->isClosed(), 'sticky' => $topic->isSticky(), 'solved' => $topic->getIsSolved());
     }
 }
 /**
  * Marks a topic as read by the current user.
  *
  * @param Topic $topic The topic that is to be marked as read.
  *
  */
 protected function markTopicRead(Topic $topic)
 {
     $currentUser = $this->getCurrentUser();
     if ($currentUser === NULL || $currentUser->isAnonymous()) {
         return;
     } else {
         if ($topic->hasBeenReadByUser($currentUser)) {
             $currentUser->addReadObject($topic);
             $this->frontendUserRepository->update($currentUser);
         }
     }
 }