/** * Delete node route. * * @param NodeInterface $node * @param RouteInterface $route */ private function deleteNodeRoute(NodeInterface $node, RouteInterface $route) { $this->routeManager->remove($route); $redirectRouteName = $route->getDefault('redirectRouteName'); if (RedirectRoute::NODE_TYPE === $node->getType() && null !== $redirectRouteName) { $redirectRoute = $this->redirectRouteManager->findByName($redirectRouteName); if (null !== $redirectRoute) { $this->redirectRouteManager->remove($redirectRoute); } } }
/** * 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; }