vendor/simpledot/cms-bundle/AWCmsBundle/EventListener/TemplateListener.php line 49

Open in your IDE?
  1. <?php
  2. namespace AWCmsBundle\EventListener;
  3. use AWCmsBundle\Manager\SiteManager;
  4. use Symfony\Bundle\TwigBundle\Loader\FilesystemLoader;
  5. use Symfony\Component\HttpKernel\Event\GetResponseEvent;
  6. use Symfony\Component\HttpKernel\KernelInterface;
  7. use Twig_Loader_Chain;
  8. use Twig_Loader_Filesystem;
  9. class TemplateListener
  10. {
  11.     /**
  12.      * @var string
  13.      */
  14.     protected $rootDirectory;
  15.     /**
  16.      * @var FilesystemLoader The Twig loader
  17.      */
  18.     protected $twigLoader;
  19.     /**
  20.      * @var \AWCmsBundle\Manager\SiteManager The site manager
  21.      */
  22.     protected $siteManager;
  23.     
  24.     
  25.     /**
  26.      * TemplateListener constructor.
  27.      *
  28.      * @param string $rootDirectory
  29.      * @param FilesystemLoader $twigLoader The Twig loader
  30.      * @param \AWCmsBundle\Manager\SiteManager $siteManager The site manager
  31.      */
  32.     public function __construct (FilesystemLoader $twigLoaderSiteManager $siteManager$rootDirectory)
  33.     {
  34.         $this->rootDirectory $rootDirectory;
  35.         $this->twigLoader $twigLoader;
  36.         $this->siteManager $siteManager;
  37.     }
  38.     /**
  39.      * On request.
  40.      *
  41.      * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event The event
  42.      */
  43.     public function onKernelRequest(GetResponseEvent $event)
  44.     {
  45.         $site $this->siteManager->getSite();
  46.         if (null !== $site && null !== $site->getCustomTheme()) {
  47.             $twigPath $this->rootDirectory.'/Resources/views/themes/'.$site->getCustomTheme();
  48.             if(!is_dir($twigPath)) {
  49.                 $twigPath $this->rootDirectory.'/../templates/themes/'.$site->getCustomTheme();
  50.             }
  51.             if (!in_array($twigPath$this->twigLoader->getPaths())) {
  52.                 $this->twigLoader->prependPath($twigPath);
  53.             }
  54.         }
  55.     }
  56. }