From 101de5b2133eca9a672d3b8ee6ce0d69a3bfdc32 Mon Sep 17 00:00:00 2001 From: trendschau Date: Fri, 17 Nov 2023 15:12:09 +0100 Subject: [PATCH] Fixed error for folder navigation --- .../Controllers/ControllerWebFrontend.php | 2 +- system/typemill/Models/Navigation.php | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/system/typemill/Controllers/ControllerWebFrontend.php b/system/typemill/Controllers/ControllerWebFrontend.php index 77a3d3e..c58f730 100644 --- a/system/typemill/Controllers/ControllerWebFrontend.php +++ b/system/typemill/Controllers/ControllerWebFrontend.php @@ -111,7 +111,7 @@ class ControllerWebFrontend extends Controller # For FOLDERS use item without drafts and hidden pages if(!$home && $item->elementType == 'folder') { - $item = $navigation->getItemWithKeyPath($liveNavigation, $keyPathArray); + $item = $navigation->getItemWithUrl($liveNavigation, $item->urlRelWoF); } # ADD BACKWARD-/FORWARD PAGINATION diff --git a/system/typemill/Models/Navigation.php b/system/typemill/Models/Navigation.php index 88151cd..139d36e 100644 --- a/system/typemill/Models/Navigation.php +++ b/system/typemill/Models/Navigation.php @@ -365,6 +365,32 @@ class Navigation extends Folder return $item; } + # only used for folders to get items from live-navigation without hidden and unpublished pages + public function getItemWithUrl($navigation, $url, $result = NULL) + { + foreach($navigation as $key => $item) + { + # set item active, needed to move item in navigation + if($item->urlRelWoF === $url) + { + $result = $item; + break; + } + elseif($item->elementType === "folder") + { + $result = self::getItemWithUrl($item->folderContent, $url, $result); + + if($result) + { + break; + } + } + } + + return $result; + } + + # used with scan folder that generates own indexes for live version public function setActiveNaviItems($navigation, $breadcrumb) {