<?php
// src/EventSubscriber/NavbarUserSubscriber.php
namespace App\EventSubscriber;
use App\Entity\User;
use App\Entity\Ets;
use Doctrine\ORM\EntityManagerInterface;
use KevinPapst\AdminLTEBundle\Event\ShowUserEvent;
use KevinPapst\AdminLTEBundle\Event\NavbarUserEvent;
use KevinPapst\AdminLTEBundle\Event\SidebarUserEvent;
use KevinPapst\AdminLTEBundle\Model\UserModel;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Core\Security;
use \Liip\ImagineBundle\Imagine\Cache\CacheManager;
class NavbarUserSubscriber implements EventSubscriberInterface
{
protected $security;
private $em;
private $imagineCacheManager;
public function __construct(Security $security,EntityManagerInterface $em,CacheManager $imagineCacheManager)
{
$this->security = $security;
$this->em = $em;
$this->imagineCacheManager = $imagineCacheManager;
}
public static function getSubscribedEvents(): array
{
return [
NavbarUserEvent::class => ['onShowUser', 100],
SidebarUserEvent::class => ['onShowUser', 100],
];
}
public function onShowUser(ShowUserEvent $event)
{
if (null === $this->security->getUser()) {
return;
}
/* @var $myUser User */
$myUser = $this->security->getUser();
$entityManager = $this->em;
$Etsd = $entityManager->getRepository(Ets::class)->findByidd([$myUser->getEtsid()]);
$EtsAvatar = '';
if (!empty($Etsd['AvatarFilename']))
{
$EtsAvatar = $this->imagineCacheManager->getBrowserPath('/uploads/'.$Etsd['AvatarFilename'], 'my_thumb');
}
// dd($EtsAvatar);
$user = new UserModel();
//Add by me
//Convert UpdatedAt from
$dateTime = new\ DateTime();
$getUpdatedAt = $dateTime->setTimestamp($myUser->getUpdatedAt()->getTimestamp());
$user
->setId($myUser->getId())
->setName($myUser->getEmail())
->setIsOnline(false)
->setAvatar('')
->setAvatarEts($EtsAvatar)
->setEtsName($Etsd['EtsName'])
->setMemberSince($getUpdatedAt);
$event->setUser($user);
}
}