Example #1
0
 /**
  * Create node translation route.
  *
  * @param NodeTranslationInterface $translation
  *
  * @return RouteInterface
  */
 public function create(NodeTranslationInterface $translation)
 {
     $locale = $translation->getLang();
     $node = $translation->getNode();
     $route = $this->routeManager->create();
     $route->setRoutePattern($this->routerHelper->getRoutePattern($translation->getTitle(), $node, $locale));
     $this->routeGenerator->generateRoute($route, $node, $locale);
     $this->routeManager->add($route);
     return $route;
 }
 /**
  * Reverse transform.
  *
  * @param NodeTranslationInterface $nodeTranslation
  *
  * @return NodeTranslationInterface
  */
 public function reverseTransform($nodeTranslation)
 {
     $route = $nodeTranslation->getRoute();
     if (null !== $route && $route->getRoutePattern()) {
         $node = $nodeTranslation->getNode();
         if ($this->routerHelper->hasController($node->getType())) {
             $this->routeGenerator->generateRoute($route, $node, $nodeTranslation->getLang());
             $this->routeManager->add($route);
         } else {
             $this->routeManager->remove($route);
         }
     }
     return $nodeTranslation;
 }
 public function testGenerateUniqueRoute()
 {
     $route = $this->getMockRoute();
     $node = $this->getMockNode();
     $this->addRoutePattern('/test', $route);
     $object = $this;
     $callback = function ($routePattern) use($object) {
         $object->assertEquals('/test', $routePattern);
     };
     $this->addRouteMethodSetRoutePattern($callback, $route);
     $this->addNodeType('test', $node);
     $existingRoute = $this->getMockRoute();
     $this->addRoutePattern('/test-1', $existingRoute);
     $this->addRouteName('test', $existingRoute);
     $this->addRouteProviderMethodGetRouteByPattern($existingRoute);
     $this->routeGenerator->generateRoute($route, $node, 'en');
 }
 /**
  * Reverse transform.
  *
  * @param NodeTranslationInterface $nodeTranslation
  *
  * @return NodeTranslationInterface
  */
 public function reverseTransform($nodeTranslation)
 {
     $route = $nodeTranslation->getRoute();
     if (null !== $route && $route->getRoutePattern()) {
         $node = $nodeTranslation->getNode();
         if ('redirect' === $node->getType()) {
             $this->routeGenerator->generateRoute($route, $node, $nodeTranslation->getLang());
             $this->redirectRoute->setName($route->getName());
             $route->setDefault('redirectRouteName', $this->redirectRoute->getName());
             $this->routeManager->add($route);
             $this->redirectRouteManager->add($this->redirectRoute);
         } else {
             $this->routeManager->remove($route);
             $this->redirectRouteManager->remove($this->redirectRoute);
         }
     }
     return $nodeTranslation;
 }