/** * __invoke * * @param RequestInterface $request * @param ResponseInterface $response * @param callable|null $next * * @return ResponseInterface */ public function __invoke(RequestInterface $request, ResponseInterface $response, callable $next = null) { $locale = $this->siteService->getCurrentSite()->getLocale(); // @todo Set from $request site getSiteFromRequest($request) $this->localeService->setLocale($locale); return $next($request, $response); }
/** * getRedirectUrl * * @param int|null $siteId * @param string|null $requestUrl * * @return null */ public function getRedirectUrl($siteId = null, $requestUrl = null) { if (empty($siteId)) { $siteId = $this->siteService->getCurrentSite()->getSiteId(); } if (empty($siteId)) { return null; } if (empty($requestUrl)) { $requestUrl = $this->getRequestUrl(); } $redirect = $this->redirectRepo->getRedirect($requestUrl, $siteId); if (!empty($redirect)) { return $redirect->getRedirectUrl(); } return null; }
/** * __invoke * * @param RequestInterface $request * @param ResponseInterface $response * @param callable|null $next * * @return ResponseInterface */ public function __invoke(RequestInterface $request, ResponseInterface $response, callable $next = null) { if ($this->isConsoleRequest()) { return $next($request, $response); } $currentDomain = $this->siteService->getCurrentDomain(); $site = $this->siteService->getCurrentSite($currentDomain); $redirectUrl = $this->domainRedirectService->getSiteNotAvailableRedirectUrl($site); if (!$site->isSiteAvailable() && empty($redirectUrl)) { return $response->withStatus(404); } if ($redirectUrl) { $response = $response->withHeader('Location', '//' . $redirectUrl); return $response->withStatus(302); } $redirectUrl = $this->domainRedirectService->getPrimaryRedirectUrl($site); if ($redirectUrl) { $response = $response->withHeader('Location', '//' . $redirectUrl); return $response->withStatus(302); } return $next($request, $response); }
/** * Set the system locale to Site Requirements * * @param MvcEvent $event * * @return null */ public function addLocale(MvcEvent $event) { $locale = $this->siteService->getCurrentSite()->getLocale(); $this->localeService->setLocale($locale); return null; }