vendor/ibexa/core/src/lib/MVC/Symfony/View/ParametersInjector/ViewbaseLayout.php line 41

Open in your IDE?
  1. <?php
  2. /**
  3.  * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4.  * @license For full copyright and license information view LICENSE file distributed with this source code.
  5.  */
  6. namespace Ibexa\Core\MVC\Symfony\View\ParametersInjector;
  7. use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
  8. use Ibexa\Core\MVC\Symfony\View\Event\FilterViewParametersEvent;
  9. use Ibexa\Core\MVC\Symfony\View\ViewEvents;
  10. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  11. /**
  12.  * Injects the 'viewBaseLayout' view parameter, set by the container parameter.
  13.  */
  14. class ViewbaseLayout implements EventSubscriberInterface
  15. {
  16.     /** @var string */
  17.     private $viewbaseLayout;
  18.     /** @var \Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface */
  19.     private $configResolver;
  20.     public function __construct($viewbaseLayoutConfigResolverInterface $configResolver)
  21.     {
  22.         $this->viewbaseLayout $viewbaseLayout;
  23.         $this->configResolver $configResolver;
  24.     }
  25.     public static function getSubscribedEvents()
  26.     {
  27.         return [ViewEvents::FILTER_VIEW_PARAMETERS => 'injectViewbaseLayout'];
  28.     }
  29.     private function getPageLayout(): string
  30.     {
  31.         return $this->configResolver->getParameter('page_layout');
  32.     }
  33.     public function injectViewbaseLayout(FilterViewParametersEvent $event)
  34.     {
  35.         $pageLayout $this->getPageLayout();
  36.         $event->getParameterBag()->set('view_base_layout'$this->viewbaseLayout);
  37.         // @deprecated since 8.0. Use `page_layout` instead
  38.         $event->getParameterBag()->set('pagelayout'$pageLayout);
  39.         $event->getParameterBag()->set('page_layout'$pageLayout);
  40.     }
  41. }
  42. class_alias(ViewbaseLayout::class, 'eZ\Publish\Core\MVC\Symfony\View\ParametersInjector\ViewbaseLayout');