/** * {@inheritdoc} */ public function fixUrl(PageInterface $page) { if ($page->isInternal()) { $page->setUrl(null); // internal routes do not have any url ... return; } // hybrid page cannot be altered if (!$page->isHybrid()) { // make sure Page has a valid url if ($page->getParent()) { if (!$page->getSlug()) { $page->setSlug(Page::slugify($page->getName())); } if ($page->getParent()->getUrl() == '/') { $base = '/'; } elseif (substr($page->getParent()->getUrl(), -1) != '/') { $base = $page->getParent()->getUrl() . '/'; } else { $base = $page->getParent()->getUrl(); } $page->setUrl($base . $page->getSlug()); } else { // a parent page does not have any slug - can have a custom url ... $page->setSlug(null); $page->setUrl('/' . $page->getSlug()); } } foreach ($page->getChildren() as $child) { $this->fixUrl($child); } }
public function fixUrl(PageInterface $page) { // hybrid page cannot be altered if (!$page->isHybrid()) { if (!$page->getSlug()) { $page->setSlug(Page::slugify($page->getName())); } // make sure Page has a valid url if ($page->getParent()) { $base = $page->getParent()->getUrl() == '/' ? '/' : $page->getParent()->getUrl() . '/'; $page->setUrl($base . $page->getSlug()); } else { $page->setUrl('/' . $page->getSlug()); } } foreach ($page->getChildren() as $child) { $this->fixUrl($child); } }