Files
nhgooi.nl/resources/views/widgets/menu.blade.php

149 lines
4.5 KiB
PHP

<?php $menu = array(
"Radio" => array(
"" => "/gids",
"Luister live" => "/luister/live",
"Kijk in de studio" => "/kijk/studio",
"Regionieuws" => "/luister/regionieuws",
"Programmagids" => "/gids",
"Programma gemist" => "/gemist/programma",
"Fragment gemist" => "/gemist/fragment"
),
// "Zondagsdienst" => "/kerkdienst"),
"TV" => array(
"" => "/kijk/live",
"Kijk live" => "/kijk/live",
"TV-programmering" => "/kijk/gids",
),
// "NHGOOI TV @ YouTube" => "https://www.youtube.com/channel/UC0qLwqmXiLoL5PrLlgB6B4Q"),
// "Evenementen" => array(
// "Debatten gemeenteraad" => "/debat"),
// "24 uur Scherp de Zeis (4 december)" => "/programma/1030/scherp-zeis",
// "Winterse 50 (25 december)" => "/programma/1080/winterse-50",
// "Vroeger of Later Luisterlijst (2 januari)" => "/vol-luisterlijst"),
"Podcasts" => array(
"" => "/podcast",
"NH Gooi Spreekuur" => "/podcast/1091/nh-gooi-spreekuur",
"NH Gooi Wijsneuzen" => "/podcast/1098/nh-gooi-wijsneuzen",
"Hilversum in de oorlog" => "/podcast/1097/hilversum-in-de-oorlog",
),
"Gemist" => "/gemist/programma",
"Streekagenda" => "/agenda",
"Over NH Gooi" => array(
"" => "/contact",
"Contact" => "/contact",
"Vacatures" => "/vacatures",
"Klachtenregeling" => "/klachten",
"Rol en ambities lokale nieuwsvoorziening" => "/uploads/Eigen rol en ambities NH Gooi binnen de lokale nieuwsvoorziening.pdf",
"Frequenties" => "/frequenties",
"NH Gooi-app" => "/app"
),
"Adverteren" => "/adverteren"
);
?>
<?php
function isActive($link, $checksubmenus)
{
if (is_array($link)) {
if (!$checksubmenus) {
return false;
}
foreach ($link as $item => $link) {
if (isActive($link, $checksubmenus)) {
return true;
}
}
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 $title => $link) {
if ($title == "") {
continue;
}
$submenu = is_array($link);
$isactive = isActive($link, !$ismobile);
$icon = "";
$isplayer = false;
$isFile = false;
$liClass = "";
if (!$submenu && substr($link, 0, 8) == '/luister') {
$icon = "fas fa-headphones";
$isplayer = true;
}
if (!$submenu && $link == '/kijk/live') {
$icon = "fas fa-tv";
}
if (!$submenu && $link == '/kijk/studio') {
$liClass = "watch-studio";
$icon = "fas fa-video";
}
if (!$submenu && substr($link, 0, 23) == 'https://www.youtube.com') {
$icon = "fab fa-youtube";
}
if (!$submenu && substr($link, strlen($link) - 4, 4) == '.pdf') {
$icon = "fas fa-file-pdf";
$isFile = true;
}
$submenulink = $submenu && isset($link[""]) ? $link[""] : "#";
$target = substr($submenu ? $submenulink : $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 : $link) . "\" class=\"" . ($isplayer ? "player" : "") . "\" title=\"{$title}\" {$target}>{$icon}{$title}</a>";
if ($submenu) {
$result .= "\t\t\t<ul class=\"submenu\">\n"
. buildMenu($link, $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('/', false) || isActive('/nieuws', false) ? "selected" : ""}}">
<a href="/" title="Nieuws">Nieuws</a>
</li>
{!! buildMenu($menu, 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('/', false) || isActive('/nieuws', false) ? "selected" : ""}}">
<a href="/" title="Nieuws">Nieuws</a>
</li>
{!! buildMenu($menu, true) !!}
</ul>
</nav>
</div>