From c8c2e70ec86cfe19dab82bebf7466c2e57be6803 Mon Sep 17 00:00:00 2001 From: Joey Kimsey Date: Sat, 1 Feb 2025 23:36:54 -0500 Subject: [PATCH] adjust active page selection order --- classes/navigation.php | 48 ++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/classes/navigation.php b/classes/navigation.php index ecb1fa4..f0c32e2 100644 --- a/classes/navigation.php +++ b/classes/navigation.php @@ -186,39 +186,55 @@ class Navigation extends Template { $selectString = ltrim( Routes::getUri(false), '/' ); } - $explodedUrl = explode( '/', $selectString ); - $variations = [ Routes::getRequestUrl(), + Routes::getAddress() . $selectString, + $selectString, Routes::getUri(), Routes::getUri(false), - Routes::getAddress() . $selectString, - Routes::getAddress() . $explodedUrl[0], - '/' . $selectString, - $selectString, - $explodedUrl[0], - '/' . $explodedUrl[0], - '/' . $explodedUrl[0] . '/', - $explodedUrl[0] . '/index', - '/' . $explodedUrl[0] . '/index', - '/' . $explodedUrl[0] . '/index/', ]; foreach ( $variations as $url ) { - $regex = "#(.*)\s*??#is"; + $regex = "#(.*)\s*?#is"; if ( preg_match( $regex, $view ) ) { $regSelect = $url; break; } } + + if ( empty( $regSelect ) ) { + $explodedUrl = explode( '/', $selectString ); + + $explodedUrlCopy = $explodedUrl; + $variations = []; + foreach ( $explodedUrl as $key => $section ) { + $variations[] = Routes::getAddress() . implode( '/', $explodedUrlCopy ); + $variations[] = implode( '/', $explodedUrlCopy ); + $variations[] = '/' . implode( '/', $explodedUrlCopy ); + $variations[] = '/' . implode( '/', $explodedUrlCopy ) . '/'; + $variations[] = implode( '/', $explodedUrlCopy ) . '/index'; + $variations[] = '/' . implode( '/', $explodedUrlCopy ) . '/index'; + $variations[] = '/' . implode( '/', $explodedUrlCopy ) . '/index/'; + array_pop( $explodedUrlCopy ); + } + + foreach ( $variations as $key => $url ) { + $regex = "#(.*)\s*?#is"; + if ( preg_match( $regex, $view ) ) { + $regSelect = $url; + break; + } + } + } + if ( ! empty( $regSelect ) ) { $regSelect = preg_quote( $regSelect ); - $regActive = "$1
  • "; + $regActive = "$1
  • "; $view = preg_replace( $regex, $regActive, $view ); - $parentRegex = "#(.*)class=\"(.*?)collapse(.*?)
  • \s*#is"; + $parentRegex = "#(.*)class=\"(.*?)collapse(.*?)
  • \s*#is"; if ( preg_match( $parentRegex, $view ) ) { - $expandRegex = "$1 class=\"$2collapse show$3
  • "; + $expandRegex = "$1 class=\"$2collapse show$3
  • "; $view = preg_replace( $parentRegex, $expandRegex, $view ); }