From a2c61522a4ab20e53e2c7587cdd38931b3b96383 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Tue, 23 Mar 2021 19:05:38 +0100 Subject: [PATCH] update ui of pages and menus --- core/Entity/Site/Node.php | 8 ++++++++ core/Router/SiteRouteLoader.php | 4 ++++ core/Sitemap/SitemapBuilder.php | 8 +++++++- templates/page/simple/page.html.twig | 4 +++- templates/site/page_admin/index.html.twig | 12 +++++++++++- .../site/tree_admin/navigation.html.twig | 19 ++++++++++++------- 6 files changed, 45 insertions(+), 10 deletions(-) diff --git a/core/Entity/Site/Node.php b/core/Entity/Site/Node.php index 9cb81bd..fe25cf4 100644 --- a/core/Entity/Site/Node.php +++ b/core/Entity/Site/Node.php @@ -10,6 +10,7 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; use Gedmo\Mapping\Annotation as Gedmo; +use function Symfony\Component\String\u; /** * @Gedmo\Tree(type="nested") @@ -278,6 +279,13 @@ class Node implements EntityInterface return $this; } + public function hasExternalUrl(): bool + { + $string = u($this->getUrl()); + + return $string->startsWith('http://') || $string->startsWith('https://'); + } + public function getIsVisible(): ?bool { return $this->isVisible; diff --git a/core/Router/SiteRouteLoader.php b/core/Router/SiteRouteLoader.php index afcc7c5..d6858e3 100644 --- a/core/Router/SiteRouteLoader.php +++ b/core/Router/SiteRouteLoader.php @@ -39,6 +39,10 @@ class SiteRouteLoader extends Loader continue; } + if ($node->hasExternalUrl()) { + continue; + } + $requirements = []; $defaults = [ diff --git a/core/Sitemap/SitemapBuilder.php b/core/Sitemap/SitemapBuilder.php index 37b564a..ba6f02a 100644 --- a/core/Sitemap/SitemapBuilder.php +++ b/core/Sitemap/SitemapBuilder.php @@ -42,6 +42,10 @@ class SitemapBuilder continue; } + if ($node->hasExternalUrl()) { + continue; + } + $nodeItems = []; foreach ($this->getNodeUrls($node) as $url) { @@ -63,7 +67,9 @@ class SitemapBuilder $urls = []; try { - if ($node->getController()) { + if ($node->hasExternalUrl()) { + $urls[] = $node->getUrl(); + } elseif ($node->getController()) { $annotation = $this->getAnnotation($node); if (false !== $annotation) { diff --git a/templates/page/simple/page.html.twig b/templates/page/simple/page.html.twig index c1b5509..ed9c500 100644 --- a/templates/page/simple/page.html.twig +++ b/templates/page/simple/page.html.twig @@ -9,7 +9,9 @@ {{ node.label }} {% elseif node.page %} - + {% set url = node.hasExternalUrl ? node.url : url(node.routeName) %} + + {{ node.label }} {% else %} diff --git a/templates/site/page_admin/index.html.twig b/templates/site/page_admin/index.html.twig index 65fce23..ab46362 100644 --- a/templates/site/page_admin/index.html.twig +++ b/templates/site/page_admin/index.html.twig @@ -23,11 +23,21 @@ {% set edit = path('admin_site_page_edit', {entity: item.id}) %} - + {{ item.name }} + + {% for node in item.nodes %} + + {{ node.label }} + + {% endfor %} + diff --git a/templates/site/tree_admin/navigation.html.twig b/templates/site/tree_admin/navigation.html.twig index 053a521..2f0f7fc 100644 --- a/templates/site/tree_admin/navigation.html.twig +++ b/templates/site/tree_admin/navigation.html.twig @@ -105,7 +105,6 @@ @@ -113,7 +112,13 @@ {{ node.label }} - {% if node.url %} + {% if node.hasExternalUrl %} + + + + {{ node.url }} + + {% else %} {% if node.parameters|length %} {{ node.url }} @@ -123,12 +128,12 @@ {{ node.url }} {% endif %} - {% endif %} - {% if node.controller %} - - - + {% if node.controller %} + + + + {% endif %} {% endif %}