src/EventSubscriber/EasyAdminSubscriber.php line 36

Open in your IDE?
  1. <?php
  2. # src/EventSubscriber/EasyAdminSubscriber.php
  3. namespace App\EventSubscriber;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\EventDispatcher\GenericEvent;
  6. use Doctrine\ORM\Event\LifecycleEventArgs;
  7. use App\Entity\EStateAd;
  8. use App\Entity\EStateAdImage;
  9. use App\Entity\AgencyUser;
  10. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  11. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  12. class EasyAdminSubscriber implements EventSubscriberInterface
  13. {
  14.     private $mailer;
  15.     private $templating;
  16.     private $params;
  17.     public function __construct(TokenStorageInterface $tokenStorage, \Swift_Mailer $mailer, \Twig_Environment $templatingParameterBagInterface $params)
  18.     {
  19.         $this->tokenStorage $tokenStorage;
  20.         $this->mailer $mailer;
  21.         $this->templating $templating;
  22.         $this->params $params;
  23.     }
  24.     public static function getSubscribedEvents()
  25.     {
  26.         return array(
  27.             'easy_admin.pre_update' => array('setBlogPostSlug'),
  28.             'easy_admin.pre_persist' => array('setAgencyId'),
  29.         );
  30.     }
  31.     public function setBlogPostSlug(GenericEvent $event)
  32.     {
  33.         $request $event->getArgument('request');
  34.         $session $request->getSession();
  35.         $em $event->getArgument('em');
  36.         
  37.         //dd($session);
  38.         $entity $event->getSubject();
  39.         
  40.         if ($entity instanceof EStateAdImage){
  41.             $oldEntity $em->getUnitOfWork()->getOriginalEntityData($entity);
  42.             
  43.             dd($oldEntity$entity);
  44.         }
  45.         if ($entity instanceof EStateAd) {
  46.             $oldEntity $em->getUnitOfWork()->getOriginalEntityData($entity);
  47.             $jsonData json_decode($entity->getCity());
  48.             $entity->setCity($jsonData[0]->value);
  49.             /*dd($oldEntity['estatead_image1'] , $entity->getEStateadImage1());*/
  50.             if(
  51.                 ($oldEntity['price'] !== $entity->getPrice()) ||
  52.                 ($oldEntity['free_text'] !== $entity->getFreetext()) ||
  53.                 ($entity->getHasModifiedImages())
  54.             )
  55.             {
  56.                 $entity->setStatus(0);
  57.                 if($entity->getMandateType() > 1){
  58.                     $date_j2 = new \DateTime('now');
  59.                     $date_j2->add(new \DateInterval('P2D'));
  60.                     $entity->setExpirationDate($date_j2);
  61.                 }
  62.                 $message2 = (new \Swift_Message('[PREUMS] Edition d\'une annonce'))
  63.                     ->setFrom('postmaster@nouveausite.fr')
  64.                     ->setTo($this->params->get('admin_mail'))
  65.                     ->setBody(
  66.                         $this->templating->render(
  67.                             // templates/emails/registration.html.twig
  68.                             'emails/estatead_edition.html.twig',
  69.                             []
  70.                         ),
  71.                         'text/html'
  72.                     )
  73.                 ;
  74.                 if(!$this->mailer->send($message2$failures))
  75.                 {
  76.                     dd($failures);
  77.                 }
  78.                 $session->getFlashBag()->add('success''estatead_edit_validation');
  79.             }
  80.         } else {
  81.             return;
  82.         }
  83.     }
  84.     
  85.     public function setAgencyId(GenericEvent $event){
  86.         /*dd($event, "easyadminsubscriber");*/
  87.         $entity $event->getSubject();
  88.         
  89.         if($entity instanceof EStateAd){
  90.             $entity->setHasModifiedImages(false);
  91.         }
  92.         
  93.         if($entity instanceof AgencyUser) {
  94.             if (!$token $this->tokenStorage->getToken()) {
  95.                 return ;
  96.             }
  97.             if (!$user $token->getUser()) {
  98.                 return ;
  99.             }
  100.             $entity->setAgencyId($user->getAgencyId());
  101.             $entity->setRoles(array('ROLE_NORMAL_USER''ROLE_AGENCY_USER''ROLE_USER'));
  102.             $entity->setCreatedAt(new \DateTime('now', new \DateTimeZone('Europe/Paris')));
  103.             $event['entity'] = $entity;
  104.         }
  105.     }
  106. }