<?php
namespace App\Twig;
use Symfony\Component\HttpFoundation\RequestStack;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
use Twig\TwigFunction;
class AppExtension extends AbstractExtension
{
/**
* @var RequestStack
*/
protected $requestStack;
public function setRequest(RequestStack $requestStack)
{
$this->requestStack = $requestStack;
}
public function getFunctions()
{
return array(
new TwigFunction('getSiteDivision', array($this, 'getSiteDivision'))
);
}
public function getFilters()
{
return [
new TwigFilter('anymaze', [$this, 'formatAnymaze']),
];
}
public function getSiteDivision()
{
$masterRequest = $this->requestStack->getMasterRequest();
$division = $this->requestStack->getMasterRequest()->get('division');
if (!$division) {
$explodedPath = array_values(array_filter(explode('/', $masterRequest->getPathInfo())));
if (count($explodedPath)) {
$division = $explodedPath[0];
}
}
return $division;
}
public function formatAnymaze($productName)
{
if (strpos(strtolower($productName), 'any-maze video tracking') !== false) {
$tradeMark = '®';
return str_replace('maze', 'maze'.$tradeMark, $productName);
}
return $productName;
}
}