From 5fc1a655e0271b583f3caa009524ea9d99a8bd3e Mon Sep 17 00:00:00 2001 From: polo Date: Tue, 29 Apr 2025 00:27:06 +0200 Subject: page menu et chemins, partie4 --- src/view/FooterBuilder.php | 2 +- src/view/MenuBuilder.php | 25 ++++++++++++++++++++----- src/view/templates/menu.php | 43 +++++++++++++++++++++++++++++++++---------- 3 files changed, 54 insertions(+), 16 deletions(-) (limited to 'src/view') diff --git a/src/view/FooterBuilder.php b/src/view/FooterBuilder.php index 5a7748f..7abdb90 100644 --- a/src/view/FooterBuilder.php +++ b/src/view/FooterBuilder.php @@ -28,7 +28,7 @@ class FooterBuilder extends AbstractBuilder $div_admin = 'logged_in'; $empty_admin_zone = 'empty_admin_zone'; $link_edit_page = new URL(['page' => CURRENT_PAGE, 'action' => 'modif_page']); - $link_new_page = new URL(['from' => CURRENT_PAGE, 'page' => 'nouvelle_page']); + $link_new_page = new URL(['page' => 'nouvelle_page']); $link_change_paths = new URL(['page' => 'menu_chemins']); $link_change_password = new URL(['from' => CURRENT_PAGE, 'action' => 'modif_mdp']); diff --git a/src/view/MenuBuilder.php b/src/view/MenuBuilder.php index 42c9273..5331c08 100644 --- a/src/view/MenuBuilder.php +++ b/src/view/MenuBuilder.php @@ -9,6 +9,7 @@ use App\Entity\Page; class MenuBuilder extends AbstractBuilder { //private int $margin_left_multiplier = 29; + private string $options = ''; public function __construct(Node $node = null, bool $template = true) { @@ -23,7 +24,11 @@ class MenuBuilder extends AbstractBuilder }*/ if($_SESSION['admin']){ - $this->unfoldMenu(Director::$menu_data/*, 0 - $this->margin_left_multiplier*/); + $this->unfoldMenu(Director::$menu_data); + + if($template){ + $this->unfoldOptions(Director::$menu_data); + } } else{ header('Location: ' . new URL); @@ -39,11 +44,11 @@ class MenuBuilder extends AbstractBuilder } } - private function unfoldMenu(Page $menu): void + private function unfoldMenu(Page $page): void { $this->html .= '
' . "\n"; - foreach($menu->getChildren() as $entry) + foreach($page->getChildren() as $entry) { $checked = $entry->isHidden() ? '' : 'checked'; $this->html .= '
@@ -57,9 +62,9 @@ class MenuBuilder extends AbstractBuilder '; if(str_starts_with($entry->getEndOfPath(), 'http')){ - $this->html .= ' + $this->html .= ' ' . $entry->getEndOfPath() . ' - '; + '; } else{ $this->html .= '' . $entry->getPagePath() . ''; @@ -72,4 +77,14 @@ class MenuBuilder extends AbstractBuilder } $this->html .= "
\n"; } + + private function unfoldOptions(Page $page): void + { + foreach($page->getChildren() as $entry){ + $this->options .= '