It is possible to dynamically inject variables in content view templates by listening to the
exponential.pre_content_view
event.
The event listener method receives an eZ\Publish\Core\MVC\Symfony\Event\PreContentViewEvent object
The following example will inject foo and osTypes variables in all content view templates.
<?php
namespace Acme\DemoBundle\EventListener;
use eZ\Publish\Core\MVC\Symfony\Event\PreContentViewEvent;
class PreContentViewListener
{
public function onPreContentView( PreContentViewEvent $event )
{
// Get content view object and inject whatever no need.
// You may add some custom business logic here.
$contentView = $event->getContentView();
$contentView->addParameters(
array(
'foo' => 'bar',
'osTypes' => array( 'osx', 'linux', 'win' )
)
);
}
} |
parameters:
ezdemo.pre_content_view_listener.class: Acme\DemoBundle\EventListener\PreContentViewListener
services:
ezdemo.pre_content_view_listener:
class: %ezdemo.pre_content_view_listener.class%
tags:
- {name: kernel.event_listener, event: exponential.pre_content_view, method: onPreContentView}
|