Files
nhgooi.nl/resources/views/widgets/menu.blade.php
2025-07-17 15:57:39 +02:00

106 lines
3.5 KiB
PHP
Executable File

<?php
function isActive($link, $submenus)
{
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)
{
$result = "";
foreach ($menu as $item) {
if ($item->titel == "") {
continue;
}
$submenu = count($item->submenu) > 0;
$isactive = isActive($item->link, $item->submenu);
$icon = "";
$isplayer = false;
$isFile = false;
$liClass = "";
if (!$submenu && substr($item->link, 0, 8) == '/luister') {
$icon = "fas fa-headphones";
$isplayer = true;
}
if (!$submenu && $item->link == '/kijk/live') {
$icon = "fas fa-tv";
}
if (!$submenu && $item->link == '/kijk/studio') {
$liClass = "watch-studio";
$icon = "fas fa-video";
}
if (!$submenu && substr($item->link, 0, 23) == 'https://www.youtube.com') {
$icon = "fab fa-youtube";
}
if (!$submenu && substr($item->link, strlen($item->link) - 4, 4) == '.pdf') {
$icon = "fas fa-file-pdf";
$isFile = true;
}
$submenulink = $submenu && isset($item->link[""]) ? $item->link[""] : "#";
$target = substr($submenu ? $submenulink : $item->link, 0, 4) == "http" || $isFile ? "target='_blank'" : "";
if ($icon) {
$icon = "<span class='$icon'></span>&nbsp;";
} else {
$icon = "";
}
$result .=
"<li class=\"" . ($submenu ? "has_submenu" : "") . ($isactive ? " selected" : "") . ($liClass ? " $liClass" : "") . "\">
<a href=\"" . ($submenu ? $submenulink : $item->link) . "\" class=\"" . ($isplayer ? "player" : "") . "\" title=\"{$item->titel}\" {$target}>{$icon}{$item->titel}</a>";
if ($submenu) {
$result .= "\t\t\t<ul class=\"submenu\">\n"
. buildMenu($item->submenu, $ismobile)
. "\t\t\t</ul>\n";
}
$result .= "\t\t</li>\n";
}
return $result;
}
?>
<nav class="d-none d-md-flex">
<div></div>
<ul class="menu d-none d-lg-block">
<li class="{{isActive('/', []) || isActive('/nieuws', []) ? "selected" : ""}}">
<a href="/" title="Nieuws">Nieuws</a>
</li>
{!! buildMenu($items, false) !!}
<li></li>
</ul>
<div></div>
</nav>
<div class="mobile_menu_container">
<nav id="mobile_menu_nav">
<ul class="mobile-menu">
<li class="logo_close_button">
<div class="logo">
<a href="{{url('/')}}"><img src="/images/logo-NHGooi.svg"/></a>
</div>
<div class="mobile_close_menu_button">
<a href="javascript:void(0)"><i class="fa-solid fa-xmark"></i></a>
</div>
</li>
<li class="{{isActive('/', []) || isActive('/nieuws', []) ? "selected" : ""}}">
<a href="/" title="Nieuws">Nieuws</a>
</li>
{!! buildMenu($items, true) !!}
</ul>
</nav>
</div>