diff options
| author | polo <ordipolo@gmx.fr> | 2025-04-13 13:30:31 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2025-04-13 13:30:31 +0200 |
| commit | 75f2c543e7fe45c1a3dcea842650a5d13a0235f0 (patch) | |
| tree | 82461287eac3ae23728a74a2b90d6f574f3ddb37 /src/view/BreadcrumbBuilder.php | |
| parent | 27bd4f380f76d5494fd9be81d3d0edac9a0aa2cc (diff) | |
| download | cms-75f2c543e7fe45c1a3dcea842650a5d13a0235f0.tar.gz cms-75f2c543e7fe45c1a3dcea842650a5d13a0235f0.tar.bz2 cms-75f2c543e7fe45c1a3dcea842650a5d13a0235f0.zip | |
menu et fil d'ariane gèrent le champ reachable dans page
Diffstat (limited to 'src/view/BreadcrumbBuilder.php')
| -rw-r--r-- | src/view/BreadcrumbBuilder.php | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/view/BreadcrumbBuilder.php b/src/view/BreadcrumbBuilder.php index f1fdddf..77f4c4c 100644 --- a/src/view/BreadcrumbBuilder.php +++ b/src/view/BreadcrumbBuilder.php | |||
| @@ -7,10 +7,10 @@ class BreadcrumbBuilder extends AbstractBuilder | |||
| 7 | { | 7 | { |
| 8 | public function __construct(Node $node) | 8 | public function __construct(Node $node) |
| 9 | { | 9 | { |
| 10 | $this->html = $this->breadcrumbHTML(false); | 10 | $this->html = $this->breadcrumbHTML(); |
| 11 | } | 11 | } |
| 12 | 12 | ||
| 13 | private function breadcrumbHTML(bool $links = false): string | 13 | private function breadcrumbHTML(): string |
| 14 | { | 14 | { |
| 15 | $asset = 'assets/home.svg'; // => BDD? | 15 | $asset = 'assets/home.svg'; // => BDD? |
| 16 | $breadcrumb_array = Director::$page_path->getArray(); // tableau de Page | 16 | $breadcrumb_array = Director::$page_path->getArray(); // tableau de Page |
| @@ -23,21 +23,16 @@ class BreadcrumbBuilder extends AbstractBuilder | |||
| 23 | $html .= '<nav class="breadcrumb" aria-label="Breadcrumb">' . "\n"; | 23 | $html .= '<nav class="breadcrumb" aria-label="Breadcrumb">' . "\n"; |
| 24 | $html .= '<a href="' . new URL . '"><img src="' . $asset . '"></a><span class="arrow"> →</span>' . "\n"; | 24 | $html .= '<a href="' . new URL . '"><img src="' . $asset . '"></a><span class="arrow"> →</span>' . "\n"; |
| 25 | 25 | ||
| 26 | // partie intermédiaire | 26 | // partie intermédiaire (pas de lien sur le dernier élément) |
| 27 | for($i = 0; $i < ($nb_of_entries - 1); $i++) | 27 | for($i = 0; $i < ($nb_of_entries - 1); $i++) |
| 28 | { | 28 | { |
| 29 | // liens optionnels | 29 | // liens optionnels |
| 30 | if($links) | 30 | if($breadcrumb_array[$i]->isReachable()) |
| 31 | { | 31 | { |
| 32 | $html .= '<a href="'; | 32 | $html .= '<a href="' . new URL(['page' => $breadcrumb_array[$i]->getPagePath()]) . '">'; |
| 33 | for($j = 1; $j < $i; $j++) // chemin sans la fin | ||
| 34 | { | ||
| 35 | $html .= new URL(['page' => $breadcrumb_array[$i]->getPagePath()]); | ||
| 36 | } | ||
| 37 | $html .= '">'; | ||
| 38 | } | 33 | } |
| 39 | $html .= '<span>' . $breadcrumb_array[$i]->getPageName() . '</span>'; | 34 | $html .= '<span>' . $breadcrumb_array[$i]->getPageName() . '</span>'; |
| 40 | if($links) | 35 | if($breadcrumb_array[$i]->isReachable()) |
| 41 | { | 36 | { |
| 42 | $html .= '</a>'; | 37 | $html .= '</a>'; |
| 43 | } | 38 | } |
