/** * Dump published error pages for $site * * @param ReadSiteInterface $site * * @return string */ public function generateErrorPages(ReadSiteInterface $site) { $filenames = array(); $errorNodes = array(); $nodeCollection = $this->nodeRepository->findAllNodesOfTypeInLastPublishedVersionForSite(ReadNodeInterface::TYPE_ERROR, $site->getSiteId()); foreach ($nodeCollection as $translatedError) { $errorNodes[$translatedError->getLanguage()][$translatedError->getNodeId()] = $translatedError; } foreach ($site->getAliases() as $aliasId => $alias) { if (isset($errorNodes[$alias->getLanguage()])) { foreach ($errorNodes[$alias->getLanguage()] as $errorNode) { $filenames[] = $this->dumpErrorPageForSiteAlias($errorNode, $aliasId, $site->getSiteId()); } } } return $filenames; }
/** * @param ReadSiteInterface $site * @param ReadNodeInterface $node * @param RouteCollection $routes */ protected function generateRoutesForNode(ReadSiteInterface $site, ReadNodeInterface $node, RouteCollection $routes) { /** @var ReadSiteAliasInterface $alias */ foreach ($site->getAliases() as $key => $alias) { $nodeLanguage = $node->getLanguage(); if ($nodeLanguage == $alias->getLanguage()) { $pattern = $this->generateRoutePattern($node); if ($alias->getPrefix()) { $pattern = $this->suppressDoubleSlashes($alias->getPrefix() . '/' . $pattern); } $scheme = $node->getScheme(); if (is_null($scheme) || SchemeableInterface::SCHEME_DEFAULT == $scheme) { $scheme = $alias->getScheme(); } $nodeId = $node->getNodeId(); $siteId = $site->getSiteId(); $domain = $alias->getDomain(); $route = $this->generateRoute($pattern, $nodeLanguage, $nodeId, $siteId, $key, $domain, $scheme); $routes->add($key . '_' . $node->getId(), $route); } } }
/** * @param ReadSiteInterface $site * @param ReadRedirectionInterface $redirection * @param string $parameterKey * @param string|null $nodeId * @param string|null $url * @param RouteCollection $routes */ protected function generateRouteForSite(ReadSiteInterface $site, ReadRedirectionInterface $redirection, $parameterKey, $nodeId = null, $url = null, RouteCollection $routes) { /** @var ReadSiteAliasInterface $alias */ foreach ($site->getAliases() as $key => $alias) { if ($redirection->getLocale() === $alias->getLanguage()) { $parameter = $url; $controller = 'FrameworkBundle:Redirect:urlRedirect'; if (!is_null($nodeId)) { $parameter = $key . '_' . $nodeId; $controller = 'FrameworkBundle:Redirect:redirect'; } $route = new Route($redirection->getRoutePattern(), array('_controller' => $controller, $parameterKey => $parameter, 'permanent' => $redirection->isPermanent()), array(), array(), $alias->getDomain()); $routes->add($key . '_' . $redirection->getId(), $route); } } }