adjust active page selection order

This commit is contained in:
Joey Kimsey
2025-02-01 23:36:54 -05:00
parent 83974a0b84
commit c8c2e70ec8

View File

@ -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 = "#(.*)<li(?: class=\")?(.*?)(?:\")?>\s*?<a href=\"$url\"(?: class=\")?(.*?)(?:\")>?#is";
$regex = "#(.*)<li(?: class=\")?(.*?)(?:\")?>\s*?<a href=\"$url\"(?: class=\")?(.*?)(?:\")(.*?)>#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 = "#(.*)<li(?: class=\")?(.*?)(?:\")?>\s*?<a href=\"$url\"(?: class=\")?(.*?)(?:\")(.*?)>#is";
if ( preg_match( $regex, $view ) ) {
$regSelect = $url;
break;
}
}
}
if ( ! empty( $regSelect ) ) {
$regSelect = preg_quote( $regSelect );
$regActive = "$1<li class=\"$2\"><a href=\"$regSelect\" class=\"$3 active\">";
$regActive = "$1<li class=\"$2\"><a href=\"$regSelect\" class=\"$3 active\"$4>";
$view = preg_replace( $regex, $regActive, $view );
$parentRegex = "#(.*)class=\"(.*?)collapse(.*?)<li class=\"nav-item\">\s*<a href=\"$regSelect\" class=\"submenu (.*?)\">#is";
$parentRegex = "#(.*)class=\"(.*?)collapse(.*?)<li class=\"nav-item\">\s*<a href=\"$regSelect\" class=\"submenu (.*?)\"(.*?)>#is";
if ( preg_match( $parentRegex, $view ) ) {
$expandRegex = "$1 class=\"$2collapse show$3<li class=\"nav-item\"><a href=\"$regSelect\" class=\"submenu active $4\">";
$expandRegex = "$1 class=\"$2collapse show$3<li class=\"nav-item\"><a href=\"$regSelect\" class=\"submenu active $4\"$5>";
$view = preg_replace( $parentRegex, $expandRegex, $view );
}