From 962d315ec0c99974df3dc2261bf94c54ca8cdbdd Mon Sep 17 00:00:00 2001 From: polo Date: Sun, 27 Apr 2025 23:58:46 +0200 Subject: page menu et chemins, partie3 --- src/view/MenuBuilder.php | 46 ++++++++++++++++++++------------------------- src/view/templates/menu.php | 9 ++++++--- 2 files changed, 26 insertions(+), 29 deletions(-) (limited to 'src/view') diff --git a/src/view/MenuBuilder.php b/src/view/MenuBuilder.php index 5a010d5..42c9273 100644 --- a/src/view/MenuBuilder.php +++ b/src/view/MenuBuilder.php @@ -1,19 +1,19 @@ getName() . '.php'; + //parent::__construct($node); + $viewFile = $node === null ? self::VIEWS_PATH . 'menu.php' : self::VIEWS_PATH . $node->getName() . '.php'; if(file_exists($viewFile)) { @@ -22,33 +22,33 @@ class MenuBuilder extends AbstractBuilder extract($node->getNodeData()->getData()); }*/ - if($_SESSION['admin']) - { - $this->unfoldMenu(Director::$menu_data, 0 - $this->margin_left_multiplier); + if($_SESSION['admin']){ + $this->unfoldMenu(Director::$menu_data/*, 0 - $this->margin_left_multiplier*/); } else{ header('Location: ' . new URL); die; } - ob_start(); - require $viewFile; - $this->html = ob_get_clean(); // pas de concaténation ici, on écrase + // si faux, n'utilise pas le template + if($template){ + ob_start(); + require $viewFile; // insertion de $this->html généré par unfoldMenu + $this->html = ob_get_clean(); // pas de concaténation .= cette fois on écrase + } } } - private function unfoldMenu(Page $menu, int $margin_left): void + private function unfoldMenu(Page $menu): void { - $margin_left += $this->margin_left_multiplier; $this->html .= '
' . "\n"; foreach($menu->getChildren() as $entry) { - $div_style = 'margin-left: ' . $margin_left . 'px;'; $checked = $entry->isHidden() ? '' : 'checked'; - $this->html .= '
- - + $this->html .= '
+ + @@ -58,24 +58,18 @@ class MenuBuilder extends AbstractBuilder if(str_starts_with($entry->getEndOfPath(), 'http')){ $this->html .= ' - ' . $entry->getEndOfPath() . ' + ' . $entry->getEndOfPath() . ' '; } else{ - $this->html .= '' . $entry->getPagePath() . ''; + $this->html .= '' . $entry->getPagePath() . ''; } - /* - => flèche gauche: position = position du parent + 1, parent = grand-parent, recalculer les positions - => flèche droite: position = nombre d'éléments de la fraterie + 1, l'élément précédent devient le parent - */ - if(count($entry->getChildren()) > 0){ - $this->unfoldMenu($entry, $margin_left); + $this->unfoldMenu($entry); } $this->html .= '
' . "\n"; } $this->html .= "
\n"; - $margin_left -= $this->margin_left_multiplier; } } \ No newline at end of file diff --git a/src/view/templates/menu.php b/src/view/templates/menu.php index a7f318e..1414ab0 100644 --- a/src/view/templates/menu.php +++ b/src/view/templates/menu.php @@ -6,10 +6,13 @@

déplacer la branche parmi celles de même niveau

afficher/cacher

+
-

Ajouter une nouvelle entrée dans le menu?

- - ...sinon cliquer sur Nouvelle pagedans la barre jaune +

Ajouter une nouvelle entrée dans le menu + + ?

+

... ou cliquer sur Nouvelle pagedans la barre jaune

\ No newline at end of file -- cgit v1.2.3