/**
  * 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);
         }
     }
 }