vendor/simpledot/catalog-bundle/AWCatalogBundle/EventListener/SiteListener.php line 29

Open in your IDE?
  1. <?php
  2. namespace AWCatalogBundle\EventListener;
  3. use AWCatalogBundle\Entity\CatalogSettings;
  4. use AWCmsBundle\Entity\Site;
  5. use AWCmsBundle\Event\SiteEvent;
  6. use AWCmsBundle\Manager\ModuleManager;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. class SiteListener implements EventSubscriberInterface
  10. {
  11.     private $em;
  12.     private $moduleManager;
  13.     public function __construct(EntityManagerInterface $emModuleManager $moduleManager)
  14.     {
  15.         $this->em $em;
  16.         $this->moduleManager $moduleManager;
  17.     }
  18.     
  19.     public static function getSubscribedEvents()
  20.     {
  21.         return array(SiteEvent::SAVED => 'onSiteUpdate');
  22.     }
  23.     
  24.     public function onSiteUpdate(SiteEvent $event){
  25.         $site $event->getSite();
  26.         if($this->moduleManager->hasSiteModuleForBundle($site,'AWCatalogBundle')){
  27.             $catalogSettings $this->em->getRepository(CatalogSettings::class)->findOneBy(['site' => $site]);
  28.             if($catalogSettings === null){
  29.                 $catalogSettings = new CatalogSettings();
  30.                 $catalogSettings->setSite($site);
  31.                 $this->em->persist($catalogSettings);
  32.                 $this->em->flush();
  33.             }
  34.         }
  35.     }
  36.     
  37. }