Menu active links

This commit is contained in:
NH Gooi
2025-07-17 15:40:31 +02:00
parent 643efdb404
commit 11e1a3ea54

View File

@@ -1,7 +1,24 @@
<?php <?php
function isActive($link, $checksubmenus) function isActive($link, $submenus)
{ {
return false;
if(count($submenus) > 0) {
foreach ($submenus as $subitem) {
if (isActive($subitem->link, $subitem->submenu)) {
return true;
}
}
}
if($link == "#") {
return false;
}
if ($link == "/") {
return $_SERVER["REQUEST_URI"] == "/" || $_SERVER["REQUEST_URI"] == "";
}
return (substr($_SERVER["REQUEST_URI"], 0, strlen($link)) == $link);
} }
function buildMenu($menu, $ismobile) function buildMenu($menu, $ismobile)
@@ -13,7 +30,7 @@ function buildMenu($menu, $ismobile)
} }
$submenu = count($item->submenu) > 0; $submenu = count($item->submenu) > 0;
$isactive = isActive($item->link, !$ismobile); $isactive = isActive($item->link, $ismobile ? [] : $item->submenu);
$icon = ""; $icon = "";
$isplayer = false; $isplayer = false;
$isFile = false; $isFile = false;
@@ -52,7 +69,7 @@ function buildMenu($menu, $ismobile)
. buildMenu($item->submenu, $ismobile) . buildMenu($item->submenu, $ismobile)
. "\t\t\t</ul>\n"; . "\t\t\t</ul>\n";
} }
$result .= "\t\t</li>\n"; $result .= "\t\t</li>\n";
} }
return $result; return $result;
@@ -61,7 +78,7 @@ function buildMenu($menu, $ismobile)
<nav class="d-none d-md-flex"> <nav class="d-none d-md-flex">
<div></div> <div></div>
<ul class="menu d-none d-lg-block"> <ul class="menu d-none d-lg-block">
<li class="{{isActive('/', false) || isActive('/nieuws', false) ? "selected" : ""}}"> <li class="{{isActive('/', []) || isActive('/nieuws', []) ? "selected" : ""}}">
<a href="/" title="Nieuws">Nieuws</a> <a href="/" title="Nieuws">Nieuws</a>
</li> </li>
{!! buildMenu($items, false) !!} {!! buildMenu($items, false) !!}
@@ -80,7 +97,7 @@ function buildMenu($menu, $ismobile)
<a href="javascript:void(0)"><i class="fa-solid fa-xmark"></i></a> <a href="javascript:void(0)"><i class="fa-solid fa-xmark"></i></a>
</div> </div>
</li> </li>
<li class="{{isActive('/', false) || isActive('/nieuws', false) ? "selected" : ""}}"> <li class="{{isActive('/', []) || isActive('/nieuws', []) ? "selected" : ""}}">
<a href="/" title="Nieuws">Nieuws</a> <a href="/" title="Nieuws">Nieuws</a>
</li> </li>
{!! buildMenu($items, true) !!} {!! buildMenu($items, true) !!}