From 68c5459032e310ab11ae87335856fcb993fcb286 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Thu, 6 Jan 2022 16:13:11 +0100 Subject: [PATCH] backports murph-skeleton --- core/Twig/Extension/UrlExtension.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/core/Twig/Extension/UrlExtension.php b/core/Twig/Extension/UrlExtension.php index 8b1eb29..e0f68a1 100644 --- a/core/Twig/Extension/UrlExtension.php +++ b/core/Twig/Extension/UrlExtension.php @@ -2,6 +2,7 @@ namespace App\Core\Twig\Extension; +use App\Core\Site\SiteRequest; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Twig\Extension\AbstractExtension; use Twig\TwigFilter; @@ -9,10 +10,12 @@ use Twig\TwigFilter; class UrlExtension extends AbstractExtension { protected UrlGeneratorInterface $urlGenerator; + protected SiteRequest $siteRequest; - public function __construct(UrlGeneratorInterface $urlGenerator) + public function __construct(UrlGeneratorInterface $urlGenerator, SiteRequest $siteRequest) { $this->urlGenerator = $urlGenerator; + $this->siteRequest = $siteRequest; } /** @@ -38,7 +41,19 @@ class UrlExtension extends AbstractExtension $route = $block['route']; parse_str($block['params'], $params); + if (!isset($params['_domain'])) { + $params['_domain'] = $this->siteRequest->getDomain(); + } + $url = $this->urlGenerator->generate($route, $params, UrlGeneratorInterface::ABSOLUTE_URL); + + parse_str(parse_url($url)['query'] ?? '', $infos); + + if (isset($infos['_domain'])) { + unset($params['_domain']); + + $url = $this->urlGenerator->generate($route, $params, UrlGeneratorInterface::ABSOLUTE_URL); + } } catch (\Exception $e) { }