Menustructuur via intranet te beheren
This commit is contained in:
@@ -19,7 +19,7 @@ class Controller extends BaseController
|
|||||||
|
|
||||||
private function getDataFromFileAndConvert($file, $path, $class, $maxItems = 0)
|
private function getDataFromFileAndConvert($file, $path, $class, $maxItems = 0)
|
||||||
{
|
{
|
||||||
$data = json_decode(Storage::disk('local')->get($file));
|
$data = json_decode(Storage::get($file));
|
||||||
foreach ($path as $subobject) {
|
foreach ($path as $subobject) {
|
||||||
$data = $data->$subobject ?? [];
|
$data = $data->$subobject ?? [];
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@ class Controller extends BaseController
|
|||||||
$view->with('data', $this->getDataFromFileAndConvert('populair_nieuws.json', ['news'], '\Model\NewsItem'));
|
$view->with('data', $this->getDataFromFileAndConvert('populair_nieuws.json', ['news'], '\Model\NewsItem'));
|
||||||
});
|
});
|
||||||
View::composer('widgets.nustraks', function ($view) {
|
View::composer('widgets.nustraks', function ($view) {
|
||||||
$data = json_decode(Storage::disk('local')->get('nu_straks.json'))->schedule;
|
$data = json_decode(Storage::get('nu_straks.json'))->schedule;
|
||||||
$programs = [];
|
$programs = [];
|
||||||
foreach ($data as $item_data) {
|
foreach ($data as $item_data) {
|
||||||
$programs[] = $program = new \Model\Program($item_data->program);
|
$programs[] = $program = new \Model\Program($item_data->program);
|
||||||
@@ -57,7 +57,7 @@ class Controller extends BaseController
|
|||||||
|
|
||||||
// Need a bit of slack here, otherwise the current program may show up
|
// Need a bit of slack here, otherwise the current program may show up
|
||||||
$now = new \DateTimeImmutable('2 minutes ago');
|
$now = new \DateTimeImmutable('2 minutes ago');
|
||||||
$data = json_decode(Storage::disk('local')->get('zojuist.json'))->schedule;
|
$data = json_decode(Storage::get('zojuist.json'))->schedule;
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach (array_reverse($data) as $item_data) {
|
foreach (array_reverse($data) as $item_data) {
|
||||||
$recent = $program = new \Model\Program($item_data->program);
|
$recent = $program = new \Model\Program($item_data->program);
|
||||||
@@ -91,6 +91,9 @@ class Controller extends BaseController
|
|||||||
$this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast')
|
$this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast')
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
View::composer('widgets.menu', function($view) {
|
||||||
|
$view->with('items', json_decode(Storage::get('static/menu.json')));
|
||||||
|
});
|
||||||
|
|
||||||
View::share('disableBanners', env('DISABLE_BANNERS', false));
|
View::share('disableBanners', env('DISABLE_BANNERS', false));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,12 +48,12 @@ return [
|
|||||||
'root' => storage_path('app'),
|
'root' => storage_path('app'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'public' => [
|
//'public' => [
|
||||||
'driver' => 'local',
|
// 'driver' => 'local',
|
||||||
'root' => storage_path('app/public'),
|
// 'root' => storage_path('app/public'),
|
||||||
'url' => env('APP_URL').'/storage',
|
// 'url' => env('APP_URL').'/storage',
|
||||||
'visibility' => 'public',
|
// 'visibility' => 'public',
|
||||||
],
|
//],
|
||||||
|
|
||||||
's3' => [
|
's3' => [
|
||||||
'driver' => 's3',
|
'driver' => 's3',
|
||||||
|
|||||||
@@ -1,104 +1,44 @@
|
|||||||
<?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",
|
|
||||||
"Gooise Mythes Ontrafeld" => "/podcast/1106/gooise-mythes-ontrafeld",
|
|
||||||
"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",
|
|
||||||
"Redactie" => "/redactie",
|
|
||||||
"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
|
<?php
|
||||||
function isActive($link, $checksubmenus)
|
function isActive($link, $checksubmenus)
|
||||||
{
|
{
|
||||||
if (is_array($link)) {
|
|
||||||
if (!$checksubmenus) {
|
|
||||||
return false;
|
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)
|
function buildMenu($menu, $ismobile)
|
||||||
{
|
{
|
||||||
$result = "";
|
$result = "";
|
||||||
foreach ($menu as $title => $link) {
|
foreach ($menu as $item) {
|
||||||
if ($title == "") {
|
if ($item->titel == "") {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$submenu = is_array($link);
|
|
||||||
$isactive = isActive($link, !$ismobile);
|
$submenu = count($item->submenu) > 0;
|
||||||
|
$isactive = isActive($item->link, !$ismobile);
|
||||||
$icon = "";
|
$icon = "";
|
||||||
$isplayer = false;
|
$isplayer = false;
|
||||||
$isFile = false;
|
$isFile = false;
|
||||||
$liClass = "";
|
$liClass = "";
|
||||||
if (!$submenu && substr($link, 0, 8) == '/luister') {
|
if (!$submenu && substr($item->link, 0, 8) == '/luister') {
|
||||||
$icon = "fas fa-headphones";
|
$icon = "fas fa-headphones";
|
||||||
$isplayer = true;
|
$isplayer = true;
|
||||||
}
|
}
|
||||||
if (!$submenu && $link == '/kijk/live') {
|
if (!$submenu && $item->link == '/kijk/live') {
|
||||||
$icon = "fas fa-tv";
|
$icon = "fas fa-tv";
|
||||||
}
|
}
|
||||||
if (!$submenu && $link == '/kijk/studio') {
|
if (!$submenu && $item->link == '/kijk/studio') {
|
||||||
$liClass = "watch-studio";
|
$liClass = "watch-studio";
|
||||||
$icon = "fas fa-video";
|
$icon = "fas fa-video";
|
||||||
}
|
}
|
||||||
if (!$submenu && substr($link, 0, 23) == 'https://www.youtube.com') {
|
if (!$submenu && substr($item->link, 0, 23) == 'https://www.youtube.com') {
|
||||||
$icon = "fab fa-youtube";
|
$icon = "fab fa-youtube";
|
||||||
}
|
}
|
||||||
if (!$submenu && substr($link, strlen($link) - 4, 4) == '.pdf') {
|
if (!$submenu && substr($item->link, strlen($item->link) - 4, 4) == '.pdf') {
|
||||||
$icon = "fas fa-file-pdf";
|
$icon = "fas fa-file-pdf";
|
||||||
$isFile = true;
|
$isFile = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$submenulink = $submenu && isset($link[""]) ? $link[""] : "#";
|
$submenulink = $submenu && isset($item->link[""]) ? $item->link[""] : "#";
|
||||||
$target = substr($submenu ? $submenulink : $link, 0, 4) == "http" || $isFile ? "target='_blank'" : "";
|
$target = substr($submenu ? $submenulink : $item->link, 0, 4) == "http" || $isFile ? "target='_blank'" : "";
|
||||||
if ($icon) {
|
if ($icon) {
|
||||||
$icon = "<span class='$icon'></span> ";
|
$icon = "<span class='$icon'></span> ";
|
||||||
} else {
|
} else {
|
||||||
@@ -106,10 +46,10 @@ function buildMenu($menu, $ismobile)
|
|||||||
}
|
}
|
||||||
$result .=
|
$result .=
|
||||||
"<li class=\"" . ($submenu ? "has_submenu" : "") . ($isactive ? " selected" : "") . ($liClass ? " $liClass" : "") . "\">
|
"<li class=\"" . ($submenu ? "has_submenu" : "") . ($isactive ? " selected" : "") . ($liClass ? " $liClass" : "") . "\">
|
||||||
<a href=\"" . ($submenu ? $submenulink : $link) . "\" class=\"" . ($isplayer ? "player" : "") . "\" title=\"{$title}\" {$target}>{$icon}{$title}</a>";
|
<a href=\"" . ($submenu ? $submenulink : $item->link) . "\" class=\"" . ($isplayer ? "player" : "") . "\" title=\"{$item->titel}\" {$target}>{$icon}{$item->titel}</a>";
|
||||||
if ($submenu) {
|
if ($submenu) {
|
||||||
$result .= "\t\t\t<ul class=\"submenu\">\n"
|
$result .= "\t\t\t<ul class=\"submenu\">\n"
|
||||||
. buildMenu($link, $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";
|
||||||
@@ -124,7 +64,7 @@ function buildMenu($menu, $ismobile)
|
|||||||
<li class="{{isActive('/', false) || isActive('/nieuws', false) ? "selected" : ""}}">
|
<li class="{{isActive('/', false) || isActive('/nieuws', false) ? "selected" : ""}}">
|
||||||
<a href="/" title="Nieuws">Nieuws</a>
|
<a href="/" title="Nieuws">Nieuws</a>
|
||||||
</li>
|
</li>
|
||||||
{!! buildMenu($menu, false) !!}
|
{!! buildMenu($items, false) !!}
|
||||||
<li></li>
|
<li></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div></div>
|
<div></div>
|
||||||
@@ -143,7 +83,7 @@ function buildMenu($menu, $ismobile)
|
|||||||
<li class="{{isActive('/', false) || isActive('/nieuws', false) ? "selected" : ""}}">
|
<li class="{{isActive('/', false) || isActive('/nieuws', false) ? "selected" : ""}}">
|
||||||
<a href="/" title="Nieuws">Nieuws</a>
|
<a href="/" title="Nieuws">Nieuws</a>
|
||||||
</li>
|
</li>
|
||||||
{!! buildMenu($menu, true) !!}
|
{!! buildMenu($items, true) !!}
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user