, * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ namespace Chill\MainBundle\Templating\Entity; use Chill\MainBundle\Entity\Embeddable\CommentEmbeddable; use Chill\MainBundle\Entity\User; use Chill\MainBundle\Repository\UserRepository; use Chill\MainBundle\Templating\Entity\AbstractChillEntityRender; class CommentRender extends AbstractChillEntityRender { /** * @var \Chill\MainBundle\Repository\UserRepository */ private $userRepository; public function __construct(UserRepository $userRepository) { $this->userRepository = $userRepository; } /** * @param CommentEmbeddable $entity * @param array $options * * @return string */ public function renderBox($entity, array $options): string { $username = ''; $user = $this->userRepository->find($entity->getUserId()); if ($user instanceof User) { $username = $user->getUsername(); } $str = $this->getDefaultOpeningBox('comment-embeddable'). ''. nl2br($entity->getComment()). ''. ''. $entity->getDate()->format('d/m/Y h:i'); ''; if (strlen($username) > 0) { $str .= ''. $username. '' ; } $str .= $this->getDefaultClosingBox(); return $str; } /** * @param CommentEmbeddable $entity * @param array $options * * @return string */ public function renderString($entity, array $options): string { return $entity->getComment(); } public function supports($entity, array $options): bool { return $entity instanceof CommentEmbeddable; } }