Completed
Push — EZP-30503 ( 29e578...16ac5f )
by
unknown
15:21
created

ViewbaseLayout::getPageLayout()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * @license For full copyright and license information view LICENSE file distributed with this source code.
4
 */
5
namespace eZ\Publish\Core\MVC\Symfony\View\ParametersInjector;
6
7
use eZ\Publish\Core\MVC\ConfigResolverInterface;
8
use eZ\Publish\Core\MVC\Symfony\View\Event\FilterViewParametersEvent;
9
use eZ\Publish\Core\MVC\Symfony\View\ViewEvents;
10
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
11
12
/**
13
 * Injects the 'viewBaseLayout' view parameter, set by the container parameter.
14
 */
15
class ViewbaseLayout implements EventSubscriberInterface
16
{
17
    /**
18
     * @var string
19
     */
20
    private $viewbaseLayout;
21
22
    /**
23
     * @var ConfigResolverInterface
24
     */
25
    private $configResolver;
26
27
    public function __construct($viewbaseLayout, ConfigResolverInterface $configResolver)
28
    {
29
        $this->viewbaseLayout = $viewbaseLayout;
30
        $this->configResolver = $configResolver;
31
    }
32
33
34
    public static function getSubscribedEvents()
35
    {
36
        return [ViewEvents::FILTER_VIEW_PARAMETERS => 'injectViewbaseLayout'];
37
    }
38
39
    private function getPageLayout(): string
40
    {
41
        return $this->configResolver->hasParameter('page_layout') ? $this->configResolver->getParameter('page_layout') : $this->configResolver->getParameter('pagelayout');
42
    }
43
44
    public function injectViewbaseLayout(FilterViewParametersEvent $event)
45
    {
46
        $pageLayout = $this->getPageLayout();
47
48
        $event->getParameterBag()->set('view_base_layout', $this->viewbaseLayout);
49
        // @deprecated since 8.0. Use `page_layout` instead
50
        $event->getParameterBag()->set('pagelayout', $pageLayout);
51
        $event->getParameterBag()->set('page_layout', $pageLayout);
52
    }
53
}
54