Ejemplo n.º 1
0
 /**
  * Generate route.
  *
  * @param RouteInterface $route
  * @param NodeInterface $node
  * @param string $locale
  *
  * @return RouteInterface
  */
 public function generateRoute(RouteInterface $route, NodeInterface $node, $locale)
 {
     $route->setName($this->routeProvider->getRouteName($node, $locale));
     $route->setRoutePattern($this->generateUniqueRoutePattern($node, $route));
     $route->setDefault(RouteInterface::CONTROLLER_NAME, $this->routerHelper->getRouteController($node->getType()));
     if ($this->routerHelper->multiLanguageIsEnabled()) {
         $route->addLocale($locale, array($locale));
     }
     return $route;
 }
Ejemplo n.º 2
0
 /**
  * Generate unique route.
  *
  * @param RouteInterface $route
  * @param bool $withSlash
  *
  * @return null|RouteInterface
  */
 public function generateUniqueRoute(RouteInterface $route, $withSlash = false)
 {
     $originalRoutePattern = $this->generateRouteFromText($route->getRoutePattern(), $withSlash);
     if ($originalRoutePattern) {
         $key = 0;
         $routePattern = $this->normalizeRoute($originalRoutePattern);
         while ($this->hasRoute($routePattern, $route->getName())) {
             $key++;
             $routePattern = $originalRoutePattern . '-' . $key;
         }
         $route->setRoutePattern($routePattern);
         return $route;
     }
     return null;
 }