8 Commits

Author SHA1 Message Date
NH Gooi
b0ae121363 Fix images starting with / or not 2025-11-20 13:52:46 +01:00
NH Gooi
8c22515397 Merge remote-tracking branch 'dev/dev' 2025-11-20 13:47:40 +01:00
NH Gooi
30bfd34ee3 Support for image block in own article 2025-11-19 22:09:49 +01:00
NH Gooi
d46dc081ef Remove tvgids -> statisch 2025-07-17 21:42:12 +02:00
NH Gooi
acc2260745 Menu styling tweak 2025-07-17 15:57:39 +02:00
NH Gooi
11e1a3ea54 Menu active links 2025-07-17 15:40:31 +02:00
NH Gooi
643efdb404 Menustructuur via intranet te beheren 2025-07-17 14:01:44 +02:00
NH Gooi
e3564b524f Statische pagina's naar CMS (nu werkend) 2025-07-16 21:24:15 +02:00
13 changed files with 137 additions and 512 deletions

View File

@@ -19,7 +19,7 @@ class Controller extends BaseController
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) {
$data = $data->$subobject ?? [];
}
@@ -47,7 +47,7 @@ class Controller extends BaseController
$view->with('data', $this->getDataFromFileAndConvert('populair_nieuws.json', ['news'], '\Model\NewsItem'));
});
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 = [];
foreach ($data as $item_data) {
$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
$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;
foreach (array_reverse($data) as $item_data) {
$recent = $program = new \Model\Program($item_data->program);
@@ -91,6 +91,9 @@ class Controller extends BaseController
$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));
}
@@ -149,6 +152,7 @@ class Controller extends BaseController
return is_object($obj) ? new \DateTime($obj->date, new \DateTimeZone($obj->timezone)) : \Carbon\Carbon::parse($obj)->setTimezone(date_default_timezone_get());
}
/*
public function __call($method, $arguments)
{
if (substr($method, 0, 5) == 'view_') {
@@ -160,6 +164,7 @@ class Controller extends BaseController
return abort(404);
}
*/
public function getSidebareData()
{
@@ -180,6 +185,10 @@ class Controller extends BaseController
public function static_page($slug)
{
if (view()->exists($slug)) {
return view($slug);
}
$page = $this->API('statisch/' . $slug);
if ($page == null) {
return abort(404);

View File

@@ -48,12 +48,12 @@ return [
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
//'public' => [
// 'driver' => 'local',
// 'root' => storage_path('app/public'),
// 'url' => env('APP_URL').'/storage',
// 'visibility' => 'public',
//],
's3' => [
'driver' => 's3',

12
public/css/style.css vendored
View File

@@ -303,6 +303,18 @@ div.pp_default .pp_close:hover {
margin-left: -10px;
}
.submenu li.selected a {
color: #0f259d !important;
}
.mobile-menu .submenu li.selected a,
.mobile-menu .submenu li:hover a,
.mobile-menu .submenu li.hover a {
color: white !important;
background: linear-gradient(to right, #0f259d, #5ba8f4);
}
.top_menu_container, .menu_mobile_container {
height: 50px;
max-width: 1170px;

View File

@@ -8,8 +8,6 @@
<ul class="bread_crumb">
<li><a title="Home" href="/">Home</a></li>
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
<li><a title="NH Gooi" href="{{route('contact')}}">NH Gooi</a></li>
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
<li>Adverteren</li>
</ul>
@endsection

View File

@@ -1,66 +0,0 @@
@extends('layouts/full')
@section('title')
Neem contact op
@endsection
@section('breadcrumb')
<ul class="bread_crumb">
<li><a title="Home" href="/">Home</a></li>
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
<li><a title="NH Gooi" href="{{route('contact')}}">NH Gooi</a></li>
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
<li>Neem contact op</li>
</ul>
@endsection
@section('content')
<div class="page_body">
<div class="row ">
<div class="col-12 col-md">
<p>NH Gooi is de publieke streekomroep van Gooi en Vechtstreek. We houden je 24 uur per dag
op de hoogte van al het nieuws, betrouwbaar en snel. Dat doen we via een eigen nieuws-
app, onze website en social media, maar ook op radio en televisie. Daarnaast brengen we
een gevarieerd aanbod van podcasts, radio- en televisieprogramma's.</p>
<p>Ons team van journalisten en programmamakers bestaat uit betaalde krachten, vrijwilligers
en stagiaires. We vinden het belangrijk mensen op te leiden en een goede plek te bieden
voor talent.</p>
<p>De redactie van NH Gooi is journalistiek onafhankelijk en wordt geleid door de chef redactie.</p>
<h3>Contactinformatie</h3>
<p>Neem contact op met NH Gooi, de streekomroep voor Gooi &amp; Vechtstreek.</p>
<p>Wij zijn te ontvangen in heel Gooi en Eemland. <br>
<a href="{{url('frequenties')}}" class="action_button">
<span class="fa fa-list"></span>
<span>Frequenties</span>
</a>
</p>
<p class="page_margin_top">
<b>NHGooi</b><br>
Postbus 83<br>
1270 AB Huizen<br>
Tel: <a href="tel:+31356424776">035-6424774</a><br>
KvK: 41194132<br>
<br>
<b>Bezoekadres / Studio:</b><br>
IJsselmeerstraat 3B<br>
1271 AA Huizen<br><br>
<p>
<b>NHGooi Radio</b><br>
IJsselmeerstraat 3B<br/>
1271 AA, Huizen<br/>
studio: <a href="tel:+31356424776">035-6424776</a><br/>
KvK: 41194132<br>
</p>
</div>
</div>
</div>
@endsection

View File

@@ -1,41 +0,0 @@
@extends('layouts/full')
@section('title')
Frequenties
@endsection
@section('breadcrumb')
<ul class="bread_crumb">
<li><a title="Home" href="/">Home</a></li>
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
<li><a title="NH Gooi" href="{{route('contact')}}">NH Gooi</a></li>
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
<li>Frequenties</li>
</ul>
@endsection
@section('content')
<div class="page_body">
<h2 class="page_margin_top">NH Gooi Radio</h2>
<p>NH Gooi Radio hoor je in heel Gooi en Eemland op <b>92.0 FM</b>.
<p>Of luister via je digitale ontvanger:
<ul class="list no_border spacing">
<li class="bullet style_2">Bij KPN op <b>kanaal 1079</b>.</li>
<li class="bullet style_2">Bij Ziggo op <b>kanaal 915</b>.</li>
</ul>
</p>
<h2 class="page_margin_top">NH Gooi TV</h2>
<p>NH Gooi TV zie je op de kabel:</p>
<ul class="list no_border spacing">
<li class="bullet style_2">Bij KPN op <b>kanaal 1379</b>.</li>
<li class="bullet style_2">Bij Ziggo op <b>kanaal 47</b>.</li>
</ul>
<h2 class="page_margin_top">Of luister via TuneIn</h2>
<iframe src="https://tunein.com/embed/player/s76591/" style="width:100%; height:100px;" scrolling="no"
frameborder="no"></iframe>
</div>
@endsection

View File

@@ -1,69 +0,0 @@
@extends('layouts/sidebar')
@section('title')
Vacatures
@endsection
@section('breadcrumb')
<ul class="bread_crumb">
<li><a title="Home" href="/">Home</a></li>
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
<li>Vacatures</li>
</ul>
@endsection
@section('page_container_class')
grey_background
@endsection
@section('site_container_class')
grey_background
@endsection
@section('container_class')
news_post post_container
@endsection
@section('content')
@parent
<div class="post_body ">
<h2>Wat doen wij?</h2>
<p>NH Gooi is streekomroep voor het Gooi. We maken radio- en televisieprogrammas, podcasts en bieden een website vol nieuws en verhalen uit jouw streek. Onze uitzendingen draaien om muziek, informatie, cultuur en ontspanning, allemaal met een duidelijke link naar het Gooi. Met meer dan 60 (vrijwillige) medewerkers zijn we volop in ontwikkeling en willen we onze activiteiten verder uitbouwen.</p>
<p>Wil jij meebouwen aan de streekomroep van en voor het Gooi? Heb je een stevige motivatie en misschien al wat ervaring? Dan ben je bij ons aan het juiste adres. NH Gooi biedt kansen voor iedereen die wil bijdragen aan onze organisatie. En dat allemaal in het mediahart van Nederland.</p>
<blockquote>
Ik kwam hier als programmeur en nu maak ik met een collega, inmiddels vriend, elke week een nieuwsprogramma.
<span class="author"> Mischa, programmamaker en technicus</span>
</blockquote>
<p>Als vrijwilliger van NH Gooi kan je gebruik maken van de opleidingsmogelijkheden die via de NLPO worden aangeboden. Kijk bijvoorbeeld eens op de <a href="https://www.nlpo.nl/opleidingen/">website van de NLPO</a> over het huidige aanbod. Ook organiseren we samen met onze mediapartner NH trainingen en cursussen.</p>
<h2>Huidige (vrijwillige) vacatures</h2>
<h3>Programmas en content</h3>
<ul>
<li><strong>Contentmakers audio en video, voor en achter de schermen:</strong> Wil je programma's maken voor radio en/of televisie, verslaggever worden of podcasts maken? Wij zoeken mensen die het leuk vinden om te filmen, te monteren, te regisseren, redactie te voeren, programmas te maken nieuws te lezen etc. Wil je een mooi vak leren, je kennis uitbreiden, vlieguren maken of misschien anderen jouw vak leren? Kom bij onze fijne club.</li>
<li><strong>Technisch medewerkers (ICT, audio- en videotechniek):</strong> Ben jij de techneut of ICT'er die zorgt dat alle techniek en verbindingen goed blijven werken? Vind je het leuk om onze website te beheren, onze (muziek)programmering in onze computersystemen te verwerken, en/of de studios werkend te houden en te verbeteren? Kun je goed overweg met het opnemen en monteren van promos, spotjes en andere audio- en videoproducten? Dan zoeken we jou!</li>
</ul>
<blockquote>
Je krijgt bij NHGooi de kans om jezelf te ontwikkelen. Ik mocht al heel snel mijn eigen programma maken
<span class="author"> Yannick, oud-programmamaker, inmiddels werkzaam bij de regionale omroep</span>
</blockquote>
<h3>Bestuur, staf en organisatie</h3>
<ul>
<li><strong>Diverse coördinatoren:</strong> NH Gooi is een organisatie van ruim 60 vrijwilligers die samen radio, televisie, podcasts en online producties maken. Met de ambitie om in 2025 het <a href="https://www.nlpo.nl/keurmerk-nederlands-streekomroepen/">keurmerk Nederlandse Streekomroepen</a> te behalen, streven we naar verdere professionalisering van onze interne organisatie en besturingsstructuur. We zoeken gemotiveerde vrijwilligers met coördinerende ervaring. Denk aan coördinator audio, video, externe producties, techniek, vrijwilligers/medewerkerszaken en commercie. Stuur je reactie met korte motivatie naar <a href="mailto:meebouwen@NHGooi.nl">meebouwen@NHGooi.nl</a>.</li>
<li><strong>Buurt- & clubambassadeurs:</strong> NH Gooi is de stem van het Gooi. We laten graag zien en horen wat er speelt in het Gooi, door en voor inwoners van de Gooi en Vechtstreek. We brengen zo veel mogelijk nieuws en informatie uit alle kernen van het Gooi. Ook willen graag de informatie van clubs, verenigingen en andere, maatschappelijke, organisatie voor het voetlicht brengen. We zoeken ambassadeurs per kern/wijk en club/vereniging/organisatie die verslag willen doen van gebeurtenissen in hun omgeving of club. Of je nu tips doorgeeft aan de redactie of zelf verslag doet via een artikel, fotos, audio of video alles is mogelijk. Afhankelijk van jouw kennis, kunde en talent bepalen we samen wat mogelijk is. Sollicitaties met korte motivatie kunnen naar onze chef-redactie Marco Willemse: {{ Html::mailto('marco.willemse@nhgooi.nl') }}</li>
<li><strong>Lid van het PBO:</strong> Het PBO is het programmabeleidbepalend orgaan van onze omroep. Het PBO komt minimaal drie keer per jaar bij elkaar om het media-aanbodbeleid vast te stellen en te controleren of onze programmas voldoen aan de wettelijke normen. De leden vertegenwoordigen diverse stromingen binnen onze gemeenten, zodat we een directe binding hebben met ons publiek. Als je betrokken bent bij een van de stromingen in de Gooise samenleving (zoals sport, maatschappelijke zorg, kunst en cultuur, kerkgenootschappen, onderwijs, etnische minderheden, jongeren, ouderen, etc.) en wilt deelnemen aan het PBO, neem dan contact op via <a href="mailto:bestuur@nhgooi.nl">bestuur@nhgooi.nl</a>.</li>
</ul>
<h2>Vrijwillig maar niet vrijblijvend</h2>
<p>Werken aan radio-, televisie-, podcast- en onlineproducties en het draaiende houden van onze organisatie is enorm leuk en inspirerend. Dit vraagt echter expertise, inzet en vasthoudendheid. NH Gooi is een vrijwilligersorganisatie, maar dat betekent niet dat we onderdoen voor een beroepsorganisatie. We vinden het belangrijk dat we op je kunnen rekenen. Vrijwillig is immers niet vrijblijvend. </p>
<p>We vragen dat je nieuwsgierig bent, goed kunt samenwerken en gemotiveerd bent om je in te zetten voor NH Gooi. En met wat ervaring heb je een streepje voor! En wil je nieuwe dingen leren? Dan kun je gebruik maken van de opleidingsmogelijkheden.</p>
<p>Neem contact met ons op via <a href="mailto:meebouwen@nhgooi.nl">meebouwen@nhgooi.nl</a> en geef aan waar je interesse ligt, welke ervaring je hebt en wat je motivatie is om mee te bouwen aan NH Gooi.</p>
<blockquote>
Produceren, presenteren, reportages maken, monteren; ik kon het allemaal leren bij NH Gooi. Wil je iets met radio, ben je van 'wel vrijwillig, maar niet vrijblijvend?' Dan wil ik graag mijn ervaringen met je delen
<span class="author"> Michel Stoeltie</span>
</blockquote>
</div>
@endsection

View File

@@ -1,101 +0,0 @@
@extends('layouts/full')
@section('title')
Klachtenregeling NHGooi
@endsection
@section('breadcrumb')
<ul class="bread_crumb">
<li><a title="Home" href="/">Home</a></li>
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
<li><a title="NH Gooi" href="{{route('contact')}}">NH Gooi</a></li>
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
<li>Klachtenregeling NHGooi</li>
</ul>
@endsection
@section('content')
<div class="page_body">
<h2 class="page_margin_top">Klachtenregeling</h2>
<p>
Het kan voorkomen dat u als bezoeker van onze website en/of sociale mediakanalen, luisteraar van
ons radiostation of kijker van ons televisiekanaal het niet eens bent met wat NHGooi heeft bericht,
bijvoorbeeld omdat NHGooi volgens u de journalistieke beginselen niet in acht heeft genomen. Het
kan ook zijn dat u een andere klacht heeft die betrekking heeft op het handelen van NHGooi.
U kunt een klacht indienen bij NHGooi. Wij starten dan een procedure om uw klacht zo snel en
effectief mogelijk te behandelen. Wij nemen enkel klachten in behandeling die direct betrekking
hebben op NHGooi.
</p>
<p>Als u een klacht bij NHGooi indient, zorgen wij er voor dat u binnen vijf werkdagen een bevestiging
van ons krijgt. Mocht u geen bericht ontvangen, dan verzoeken wij u een reminder te sturen, mogelijk
is er dan iets misgegaan bij de bezorging/ontvangst van de klacht.</p>
<h3>Het indienen van een klacht en het verloop van de procedure</h3>
<p>Hieronder kunt u lezen hoe u een klacht kunt indienen en hoe vervolgens de procedure bij NHGooi
verloopt.</p>
<h4>1. Klacht</h4>
<p>U maakt een e-mail of brief waarin u zo duidelijk mogelijk uw (negatieve) ervaring beschrijft.
Zorg dat in uw brief of in uw e-mail in ieder geval het volgende is opgenomen:
<ul class="bullets">
<li> Omschrijving van uw klacht;</li>
<li> De persoon of personen waarmee u contact heeft gehad (indien van toepassing);</li>
<li> Uw contactgegevens;</li>
<li> De actie die wij volgens u naar aanleiding van uw klacht zouden moeten ondernemen;</li>
</ul>
<p>Anonieme klachten nemen wij in beginsel niet in behandeling, tenzij klager inhoudelijk kan
onderbouwen dat er voor hem of haar zwaarwegende redenen zijn om de klacht anoniem in te
dienen en er een geanonimiseerd email of postadres wordt opgegeven.</p>
<h4>2. Stuur een aangetekende brief of e-mail</h4>
<p>U stuurt een e-mail of aangetekende brief naar onderstaande gegevens:</p>
<ul class="bullets">
<li>Emailadres: info@nhgooi.nl</li>
<li>Postadres: Postbus 83, 1270 AB Huizen</li>
</ul>
<h4>3. Bevestiging</h4>
<p>U krijgt van ons binnen 5 werkdagen een bevestiging van ontvangst;
<h4>4. Afhandeling</h4>
<p>Wij nemen uw klacht altijd serieus en reageren binnen 30 dagen na de datum waarop wij de
klacht hebben ontvangen. Mocht het niet haalbaar zijn om de klacht binnen de genoemde
termijn van 30 dagen af te handelen, dan informeren wij u over de datum waarop de klacht
alsnog wordt afgehandeld.</p>
<p>De klacht wordt geanalyseerd en geëvalueerd, zodat de oorzaak van de klacht wordt
achterhaald. Op basis van de analyse en evaluatie wordt zo nodig</p>
<ul class="bullets">
<li> een corrigerende maatregel genomen om de klacht op te lossen en/of</li>
<li> een preventieve maatregel genomen ter voorkoming (van herhaling).</li>
</ul>
<p>Wanneer er naar aanleiding van uw klacht een corrigerende en/of preventieve maatregel is
genomen, dan koppelen wij dit naar u terug. Uiteraard informeren wij u ook als wij tot de
conclusie komen dat de klacht ongegrond is.</p>
<h4>5. Contact</h4>
<p>Indien wenselijk nemen wij contact met u op om de klacht en/of de afhandeling te bespreken.
Graag aangeven of u wilt dat wij tijdens en\of na de afhandeling van de klacht contact met u
opnemen.
</p>
</div>
<style>
.bullets {
color: black;
font-size: 100%;
margin-bottom: 1em;
}
.bullets li {
padding-top: 9px;
padding-bottom: 10px;
background-repeat: no-repeat;
background-position: left 10px;
padding-left: 25px;
background-image: url("/images/icons/other/bullet_style_2.png");
}
</style>
@endsection

View File

@@ -30,39 +30,24 @@
<div class="author">{{$block->data->caption}}</div>
</blockquote>
@elseif($block->type == "image")
<?php
if(isset($block->data->image->imageWide))
$image = $block->data->image->imageWide;
else if(isset($block->data->image->crop))
$image = $block->data->image->crop;
else if(isset($block->data->image->crops) && isset($block->data->image->crops->{'16:9'}))
foreach($block->data->image->crops->{'16:9'} as $image) break;
else if(isset($block->data->image->imageHigh))
$image = $block->data->image->imageHigh;
else $image = null;
?>
@if($image)
<a class="post_image page_margin_top prettyPhoto" rel="prettyPhoto" href="{{$image}}"
title="{{$block->data->image->title}} &copy; {{$block->data->image->author}}">
<img src="{{$image}}" class="attachment-small-slider-thumb size-small-slider-thumb wp-post-image"
alt="{{$block->data->image->title}}" title="" style="display: block;">
<a class="post_image page_margin_top prettyPhoto" rel="prettyPhoto" href="/{{$block->data->url}}"
title="{{$block->data->title}} &copy; {{$block->data->title}}">
<img src="/{{ltrim($block->data->url, '/')}}" class="attachment-small-slider-thumb size-small-slider-thumb wp-post-image"
alt="{{$block->data->title}}" title="" style="display: block;">
</a>
<div class="sentence">
<?php
$sentence = [];
if (isset($block->data->image->caption) && $block->data->image->caption) {
$sentence[] = '<span class="text">' . $block->data->image->caption . '</span>';
} elseif (isset($block->data->image->title) && $block->data->image->title) {
$sentence[] = '<span class="text">' . $block->data->image->title . '</span>';
if (isset($block->data->title) && $block->data->title) {
$sentence[] = '<span class="text">' . $block->data->title . '</span>';
}
if (isset($block->data->image->author) && $block->data->image->author) {
$sentence[] = '<span class="author">' . $block->data->image->author . '</span>';
if (isset($block->data->author) && $block->data->author) {
$sentence[] = '<span class="author">' . $block->data->author . '</span>';
}
$sentence = join('<span class="separator">|</span>', $sentence);
?>
{!!$sentence!!}
</div>
@endif
@elseif($block->type == "video" || $block->type == "headerVideo")
@include('widgets/mediaplayer')
<?php

View File

@@ -1,35 +0,0 @@
@extends('layouts/full')
@section('title')
Nieuwsredactie
@endsection
@section('breadcrumb')
<ul class="bread_crumb">
<li><a title="Home" href="/">Home</a></li>
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
<li><a title="NH Gooi" href="{{route('contact')}}">NH Gooi</a></li>
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
<li>Nieuwsredactie</li>
</ul>
@endsection
@section('content')
<div class="page_body">
<p>De redactie van NHGooi staat onder leiding van chef-redactie en eindredacteur Marco Willemse. Samen met een professioneel team van betaalde redacteuren werkt hij dagelijks aan het maken van onafhankelijk, relevant en toegankelijk nieuws voor Gooi &amp; Vechtstreek.</p>
<p>Onze redactie wordt ondersteund door een enthousiaste groep vrijwilligers en studenten. Samen zorgen zij voor actuele berichtgeving via onze online kanalen, radio en televisie. We streven naar een redactie die steeds beter aansluit op de diversiteit van onze regio en bouwen stap voor stap aan een herkenbare en toegankelijke nieuwsvoorziening voor alle inwoners.</p>
<p>Benieuwd waar wij journalistiek voor staan? Lees meer over onze visie en werkwijze in <a href="uploads/Rol en ambitie - NHGooi als onafhankelijke streekomroep voor Gooi 2025.pdf"><span class="fa fa-download"></span> Rol en ambities binnen de lokale nieuwsvoorziening van NHGooi</a>.</p>
<hr />
<p>
<b>Chef redactie</b><br>
Marco Willemse<br>
{{Html::mailto('marco.willemse@nhgooi.nl')}}<br><br>
</p>
</div>
@endsection

View File

@@ -1,17 +0,0 @@
@extends('layouts/full')
@section('title')
Televisieprogrammering
@endsection
@section('content')
<div class="page_body">
<p>NHGooi TV zendt iedere dag de NH Gooi Nieuwscarrousel uit. De nieuwscarrousel start steeds op het hele uur en bestaat uit reportages uit Gooi en Vechtstreek, gericht op de kijkers van NH Gooi. Daarnaast vind je op NHGooi TV achtergronden, lokale reportages, cultuur, sport en politiek. NHGooi TV brengt verhalen uit alle hoeken van Gooi &amp; Vechtstreek, met programmas die zijn gemaakt door onze redactie of in samenwerking met regionale partners. De programmering sluit aan bij onze publieke opdracht en is gericht op herkenning, betrokkenheid en actualiteit.</p>
<p>De programmering van NH Gooi TV wordt af en toe aangevuld met speciale programmas, zoals bijvoorbeeld een talkshow of een registratie van een plaatselijk muziekfestijn. Deze programmas worden aangekondigd op onze website.</p>
<p><a href="/kijk/live">Kijk hier online naar NHGooi TV</a>.</p>
</div>
@endsection

View File

@@ -1,149 +1,105 @@
<?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
function isActive($link, $checksubmenus)
function isActive($link, $submenus)
{
if (is_array($link)) {
if (!$checksubmenus) {
return false;
}
foreach ($link as $item => $link) {
if (isActive($link, $checksubmenus)) {
return true;
}
}
if(count($submenus) > 0) {
foreach ($submenus as $subitem) {
if (isActive($subitem->link, $subitem->submenu)) {
return true;
}
}
}
return false;
}
if($link == "#") {
return false;
}
if ($link == "/") {
return $_SERVER["REQUEST_URI"] == "/" || $_SERVER["REQUEST_URI"] == "";
}
}
return (substr($_SERVER["REQUEST_URI"], 0, strlen($link)) == $link);
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;
$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($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;
}
$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($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";
}
$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;
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>
<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('/', false) || isActive('/nieuws', false) ? "selected" : ""}}">
<a href="/" title="Nieuws">Nieuws</a>
</li>
{!! buildMenu($menu, true) !!}
</ul>
</nav>
<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>

View File

@@ -87,35 +87,29 @@ Route::get('/kijk/studio', 'StreamController@studio')->name('kijk.studio');
Route::get('/kerkdienst', 'KerkdienstController@main')->name('kerkdienst');
Route::get('/kerkdienst/luister', 'StreamController@kerkdienst')->name('luister.kerkdienst');
Route::get('/contact', 'Controller@view_contact')->name('contact');
Route::get('/frequenties', 'Controller@view_frequenties')->name('frequenties');
Route::get('/adverteren', 'Controller@view_adverteren')->name('adverteren');
Route::get('/klachten', 'Controller@view_klachten')->name('klachten');
Route::get('/app', 'Controller@view_app')->name('app');
Route::get('/redactie', 'Controller@view_redactie')->name('redactie');
Route::get('/disclaimer', 'Controller@view_disclaimer')->name('disclaimer');
Route::get('/privacy-verklaring', 'Controller@view_privacy_verklaring')->name('privacy_verklaring');
Route::get('/cookie-statement', 'Controller@view_cookie_statement')->name('cookie_statement');
Route::get('/vacatures/ontmoet-ons', 'JobsController@bijeenkomst');
Route::post('/vacatures/ontmoet-ons', 'JobsController@aanmelden');
Route::get('/vacatures', 'JobsController@overview')->name('vacatures');
Route::get('/vacatures/{id}/{title}', 'JobsController@show')->where(['id' => '\d+'])->name('vacature');
//Route::get('/vacatures/ontmoet-ons', 'JobsController@bijeenkomst');
//Route::post('/vacatures/ontmoet-ons', 'JobsController@aanmelden');
//Route::get('/vacatures', 'JobsController@overview')->name('vacatures');
//Route::get('/vacatures/{id}/{title}', 'JobsController@show')->where(['id' => '\d+'])->name('vacature');
Route::any('/winterse50', function() { return redirect('/programma/1080/winterse-50'); });
//Route::any('/winterse50', function() { return redirect('/programma/1080/winterse-50'); });
Route::any('/vol-luisterlijst', 'SpecialController@luisterlijst_stem');
Route::any('/vol-luisterlijst', 'Controller@view_luisterlijst_2021');
Route::any('/luisterlijst/2019', 'Controller@view_luisterlijst_2019');
Route::any('/luisterlijst/2021', 'Controller@view_luisterlijst_2021');
Route::any('/luisterlijst', 'Controller@view_luisterlijst_2021');
//Route::any('/vol-luisterlijst', 'SpecialController@luisterlijst_stem');
//Route::any('/vol-luisterlijst', 'Controller@view_luisterlijst_2021');
//Route::any('/luisterlijst/2019', 'Controller@view_luisterlijst_2019');
//Route::any('/luisterlijst/2021', 'Controller@view_luisterlijst_2021');
//Route::any('/luisterlijst', 'Controller@view_luisterlijst_2021');
Route::any('/debat', 'Controller@view_debat');
Route::any('/kijk/gids', 'Controller@view_tvgids');
//Route::any('/debat', 'Controller@view_debat');
//Route::any('/kijk/gids', 'Controller@view_tvgids');
Route::get('/special/stmaarten', function() { return file_get_contents('http://api-dev.6fm.nl/special/stmaarten'); });
Route::get('/kabelkrant', function() { return view('kabelkrant'); });
// Catch all route
//Route::get('{slug}', 'Controller@static_page')->where('slug', '^.*');
// Catch all route for API-based static routes
Route::get('{slug}', 'Controller@static_page')->where('slug', '^.*')->name('static_page');