get('request'); } $view = new Smarty(__DIR__ . '/../templates/'); /** @var Uri $uri */ $uri = $request->getUri(); if (in_array('https', $request->getHeader('X-Forwarded-Proto'))) { $uri = $uri->withScheme('https')->withPort(443); } // set values from X-Forwarded-* headers if ($host = current($request->getHeader('X-Forwarded-Host'))) { $uri = $uri->withHost($host); } if ($port = current($request->getHeader('X-Forwarded-Port'))) { $uri = $uri->withPort(intVal($port)); } if ($path = current($request->getHeader('X-Forwarded-Path'))) { $uri = $uri->withBasePath($path); } /** @var LocaleManager $localeManager */ $localeManager = $container->get('locale'); $smartyPlugins = new SmartyPlugins($container->get('router'), $uri->withUserInfo('')); $view->registerPlugin('function', 'path_for', [$smartyPlugins, 'pathFor']); $view->registerPlugin('function', 'base_url', [$smartyPlugins, 'baseUrl']); $view->registerPlugin('block', 't', [$localeManager, 'smartyTranslate']); return $view; } }