diff options
| author | polo <ordipolo@gmx.fr> | 2025-04-29 00:27:06 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2025-04-29 00:27:06 +0200 |
| commit | 5fc1a655e0271b583f3caa009524ea9d99a8bd3e (patch) | |
| tree | 6af87a085a403dbf123907d26dfde7eed1765da4 /src/view/MenuBuilder.php | |
| parent | 962d315ec0c99974df3dc2261bf94c54ca8cdbdd (diff) | |
| download | cms-5fc1a655e0271b583f3caa009524ea9d99a8bd3e.tar.gz cms-5fc1a655e0271b583f3caa009524ea9d99a8bd3e.tar.bz2 cms-5fc1a655e0271b583f3caa009524ea9d99a8bd3e.zip | |
page menu et chemins, partie4
Diffstat (limited to 'src/view/MenuBuilder.php')
| -rw-r--r-- | src/view/MenuBuilder.php | 25 |
1 files changed, 20 insertions, 5 deletions
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; | |||
| 9 | class MenuBuilder extends AbstractBuilder | 9 | class MenuBuilder extends AbstractBuilder |
| 10 | { | 10 | { |
| 11 | //private int $margin_left_multiplier = 29; | 11 | //private int $margin_left_multiplier = 29; |
| 12 | private string $options = ''; | ||
| 12 | 13 | ||
| 13 | public function __construct(Node $node = null, bool $template = true) | 14 | public function __construct(Node $node = null, bool $template = true) |
| 14 | { | 15 | { |
| @@ -23,7 +24,11 @@ class MenuBuilder extends AbstractBuilder | |||
| 23 | }*/ | 24 | }*/ |
| 24 | 25 | ||
| 25 | if($_SESSION['admin']){ | 26 | if($_SESSION['admin']){ |
| 26 | $this->unfoldMenu(Director::$menu_data/*, 0 - $this->margin_left_multiplier*/); | 27 | $this->unfoldMenu(Director::$menu_data); |
| 28 | |||
| 29 | if($template){ | ||
| 30 | $this->unfoldOptions(Director::$menu_data); | ||
| 31 | } | ||
| 27 | } | 32 | } |
| 28 | else{ | 33 | else{ |
| 29 | header('Location: ' . new URL); | 34 | header('Location: ' . new URL); |
| @@ -39,11 +44,11 @@ class MenuBuilder extends AbstractBuilder | |||
| 39 | } | 44 | } |
| 40 | } | 45 | } |
| 41 | 46 | ||
| 42 | private function unfoldMenu(Page $menu): void | 47 | private function unfoldMenu(Page $page): void |
| 43 | { | 48 | { |
| 44 | $this->html .= '<div class="level">' . "\n"; | 49 | $this->html .= '<div class="level">' . "\n"; |
| 45 | 50 | ||
| 46 | foreach($menu->getChildren() as $entry) | 51 | foreach($page->getChildren() as $entry) |
| 47 | { | 52 | { |
| 48 | $checked = $entry->isHidden() ? '' : 'checked'; | 53 | $checked = $entry->isHidden() ? '' : 'checked'; |
| 49 | $this->html .= '<div id="' . $entry->getId() . '" class="menu_edit_entry"> | 54 | $this->html .= '<div id="' . $entry->getId() . '" class="menu_edit_entry"> |
| @@ -57,9 +62,9 @@ class MenuBuilder extends AbstractBuilder | |||
| 57 | <button>' . $entry->getPageName() . '</button>'; | 62 | <button>' . $entry->getPageName() . '</button>'; |
| 58 | 63 | ||
| 59 | if(str_starts_with($entry->getEndOfPath(), 'http')){ | 64 | if(str_starts_with($entry->getEndOfPath(), 'http')){ |
| 60 | $this->html .= '<span id="edit-i..."><img class="move_entry_icon" src="assets/edit.svg" onclick="openEditor(\'i...\')"></span> | 65 | $this->html .= '<span id="edit-i..."><img class="move_entry_icon" src="assets/edit.svg" onclick="editUrlEntry(' . $entry->getId() . ')"></span> |
| 61 | <i class="url">' . $entry->getEndOfPath() . '</i> | 66 | <i class="url">' . $entry->getEndOfPath() . '</i> |
| 62 | <span id="delete-i..."><img class="move_entry_icon" src="assets/delete-bin.svg" onclick="delete(\'i...\')"></span>'; | 67 | <span id="delete-i..."><img class="move_entry_icon" src="assets/delete-bin.svg" onclick="deleteUrlEntry(' . $entry->getId() . ')"></span>'; |
| 63 | } | 68 | } |
| 64 | else{ | 69 | else{ |
| 65 | $this->html .= '<i class="path">' . $entry->getPagePath() . '</i>'; | 70 | $this->html .= '<i class="path">' . $entry->getPagePath() . '</i>'; |
| @@ -72,4 +77,14 @@ class MenuBuilder extends AbstractBuilder | |||
| 72 | } | 77 | } |
| 73 | $this->html .= "</div>\n"; | 78 | $this->html .= "</div>\n"; |
| 74 | } | 79 | } |
| 80 | |||
| 81 | private function unfoldOptions(Page $page): void | ||
| 82 | { | ||
| 83 | foreach($page->getChildren() as $entry){ | ||
| 84 | $this->options .= '<option value="' . $entry->getId() . '">' . $entry->getPageName() . "</options>\n"; | ||
| 85 | if(count($entry->getChildren()) > 0){ | ||
| 86 | $this->unfoldOptions($entry); | ||
| 87 | } | ||
| 88 | } | ||
| 89 | } | ||
| 75 | } \ No newline at end of file | 90 | } \ No newline at end of file |
