Compare commits
36 Commits
e551e55158
...
feature/ap
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9698f9b103 | ||
|
|
8d1e79f1b7 | ||
|
|
7f07a28b98 | ||
|
|
cff9948dda | ||
|
|
059b1ed47a | ||
|
|
0699269fb2 | ||
|
|
a3e8b05008 | ||
|
|
389e5c6523 | ||
| ba06608ee0 | |||
| 8da0481296 | |||
| 885ce2b2cc | |||
|
|
6d91e1d3ca | ||
|
|
5ebf7f20be | ||
|
|
cc1eba5959 | ||
|
|
3b55a1cf42 | ||
|
|
f4444d44e3 | ||
|
|
35713d2974 | ||
|
|
6044a670d7 | ||
|
|
173d9dcaf6 | ||
|
|
a7d1347319 | ||
|
|
92769463cd | ||
|
|
47eb0952d4 | ||
|
|
e7bae27951 | ||
|
|
50d6a97fce | ||
|
|
9d96efc022 | ||
|
|
539dd88d42 | ||
|
|
d9c933b79a | ||
|
|
84355b1121 | ||
|
|
70d25c3cea | ||
|
|
b628404977 | ||
|
|
e1823a1322 | ||
| 9364ebecad | |||
|
|
16808e6280 | ||
|
|
e194e93784 | ||
|
|
e0c11c50f5 | ||
| 34ca1486bd |
39
.env.example
Normal file
39
.env.example
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
APP_NAME="NH Gooi"
|
||||||
|
APP_ENV=production
|
||||||
|
APP_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
APP_DEBUG=false
|
||||||
|
APP_LOG_LEVEL=error
|
||||||
|
APP_URL=https://dev.nhgooi.nl
|
||||||
|
IMAGE_BASE_URL=https://dev.nhgooi.nl
|
||||||
|
|
||||||
|
API_URL=https://api.nhgooi.nl/
|
||||||
|
|
||||||
|
BROADCAST_DRIVER=log
|
||||||
|
CACHE_DRIVER=file
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
QUEUE_DRIVER=sync
|
||||||
|
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_DRIVER=smtp
|
||||||
|
MAIL_HOST=in-v3.mailjet.com
|
||||||
|
MAIL_PORT=25
|
||||||
|
MAIL_USERNAME=mailjet_username
|
||||||
|
MAIL_PASSWORD=mailjet_password
|
||||||
|
MAIL_ENCRYPTION=null
|
||||||
|
|
||||||
|
PUSHER_APP_ID=
|
||||||
|
PUSHER_APP_KEY=
|
||||||
|
PUSHER_APP_SECRET=
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=nhgooi.nl
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=dbname
|
||||||
|
DB_USERNAME=6fmstats
|
||||||
|
DB_PASSWORD=dbpass
|
||||||
|
|
||||||
|
CACHE_DRIVER=file
|
||||||
|
QUEUE_DRIVER=sync
|
||||||
@@ -27,11 +27,12 @@ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
|||||||
ADD docker/apache.conf /etc/apache2/sites-enabled/000-default.conf
|
ADD docker/apache.conf /etc/apache2/sites-enabled/000-default.conf
|
||||||
|
|
||||||
WORKDIR /var/www/html
|
WORKDIR /var/www/html
|
||||||
|
# COPY . /var/www/html
|
||||||
|
|
||||||
RUN mkdir -p storage/framework/{sessions,views,cache,cache/data} && \
|
RUN mkdir -p storage/framework/{sessions,views,cache,cache/data} && \
|
||||||
chown -R www-data:www-data storage/framework && \
|
chown -R www-data:www-data storage/framework && \
|
||||||
chmod -R 775 storage
|
chmod -R 775 storage
|
||||||
|
|
||||||
# RUN php artisan cache:clear && \
|
RUN php artisan cache:clear && \
|
||||||
# php artisan config:clear && \
|
php artisan config:clear && \
|
||||||
# php artisan view:clear
|
php artisan view:clear
|
||||||
|
|||||||
@@ -39,11 +39,6 @@ class Controller extends BaseController
|
|||||||
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
|
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
|
||||||
View::share('imgBase', env('IMAGE_BASE_URL', '/'));
|
View::share('imgBase', env('IMAGE_BASE_URL', '/'));
|
||||||
|
|
||||||
$blogs = $this->getDataFromFileAndConvert('blogs.json', [], '\Model\Blog', 1);
|
|
||||||
$activeBlog = count($blogs) && $blogs[0]->is_active ? $blogs[0] : null;
|
|
||||||
View::share('activeBlog', $activeBlog);
|
|
||||||
|
|
||||||
|
|
||||||
//View::share('onAir', file_get_contents(url('onair')));
|
//View::share('onAir', file_get_contents(url('onair')));
|
||||||
View::composer('widgets.laatstenieuws', function ($view) {
|
View::composer('widgets.laatstenieuws', function ($view) {
|
||||||
$view->with('data', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'));
|
$view->with('data', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'));
|
||||||
@@ -144,7 +139,7 @@ class Controller extends BaseController
|
|||||||
|
|
||||||
protected static function JsonToDateTime($obj)
|
protected static function JsonToDateTime($obj)
|
||||||
{
|
{
|
||||||
return is_object($obj) ? new \DateTime($obj->date, new \DateTimeZone($obj->timezone)) : new \DateTime($obj);
|
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)
|
public function __call($method, $arguments)
|
||||||
|
|||||||
@@ -22,13 +22,9 @@ class HomeController extends Controller
|
|||||||
$populair[] = new \Model\NewsItem($newsItem);
|
$populair[] = new \Model\NewsItem($newsItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
$podcasts = [];
|
$apiResult = $this->API('podcast/overzicht?aantal=15');
|
||||||
$apiResult = $this->API('podcast/overzicht?aantal=3');
|
$index = array_rand($apiResult->podcasts);
|
||||||
$podcast = new \Model\Podcast($apiResult->podcasts[0]);
|
$podcast = new \Model\Podcast($apiResult->podcasts[$index]);
|
||||||
foreach ($apiResult->podcasts as $_podcast) {
|
return view('home', ['populair' => $populair, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
|
||||||
$podcasts[] = new \Model\Podcast($_podcast);
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('home', ['populair' => $populair, 'podcasts' => $podcasts, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class PodcastController extends Controller
|
|||||||
$podcasts[] = new \Model\Podcast($podcast);
|
$podcasts[] = new \Model\Podcast($podcast);
|
||||||
}
|
}
|
||||||
|
|
||||||
return view($request->ajax() ? 'partial.podcastitems' : 'podcastseries', array_merge($viewData, ['podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken']));
|
return view($request->ajax() ? 'partial.podcastitems' : 'podcastseries', array_merge($viewData, ['podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken', 'isPodcast' => true]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function podcast(Request $request, $id)
|
public function podcast(Request $request, $id)
|
||||||
@@ -37,6 +37,15 @@ class PodcastController extends Controller
|
|||||||
parent::registerView($request, 'podcast', $id);
|
parent::registerView($request, 'podcast', $id);
|
||||||
$apiResult = $this->API('podcast/details/' . (int)$id);
|
$apiResult = $this->API('podcast/details/' . (int)$id);
|
||||||
$podcast = new \Model\Podcast($apiResult);
|
$podcast = new \Model\Podcast($apiResult);
|
||||||
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata]);
|
$podcasts = [];
|
||||||
|
if($podcast->program) {
|
||||||
|
$apiResult = $this->API('podcast/programma/' . (int)$podcast->program->id . '?pagina=1&aantal=5');
|
||||||
|
$podcasts = [];
|
||||||
|
foreach($apiResult->podcasts as $p)
|
||||||
|
{
|
||||||
|
$podcasts[] = new \Model\Podcast($p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata, 'podcasts' => $podcasts, 'isPodcast' => true]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ class RadioController extends Controller
|
|||||||
public function podcast(Request $request, $id, $title = '')
|
public function podcast(Request $request, $id, $title = '')
|
||||||
{
|
{
|
||||||
if($this->checkAPI('podcast/details/' . (int)$id) != "200"){
|
if($this->checkAPI('podcast/details/' . (int)$id) != "200"){
|
||||||
return view('podcastitem', array_merge($this->getSidebareData(), ['title' => $title, 'podcast' => null, 'metadata' => null, 'related' => [], 'searchURL' => 'gemist/zoeken']));
|
return view('podcastitem', array_merge($this->getSidebareData(), ['title' => $title, 'podcast' => null, 'metadata' => null, 'related' => [], 'searchURL' => 'gemist/zoeken', 'isPodcast' => false]));
|
||||||
}
|
}
|
||||||
|
|
||||||
parent::registerView($request, 'podcast', $id);
|
parent::registerView($request, 'podcast', $id);
|
||||||
@@ -71,7 +71,7 @@ class RadioController extends Controller
|
|||||||
$podcasts[] = new \Model\Podcast($_podcast);
|
$podcasts[] = new \Model\Podcast($_podcast);
|
||||||
}
|
}
|
||||||
|
|
||||||
return view($request->ajax() ? 'partial/podcastitems' : 'podcastitem', ['title' => $title, 'podcast' => $podcast, 'metadata' => $podcast->metadata, 'podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken']);
|
return view($request->ajax() ? 'partial/podcastitems' : 'podcastitem', ['title' => $title, 'podcast' => $podcast, 'metadata' => $podcast->metadata, 'podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken', 'isPodcast' => false]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function podcasts(Request $request, $programma = null)
|
public function podcasts(Request $request, $programma = null)
|
||||||
@@ -107,7 +107,7 @@ class RadioController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return view($request->ajax() ? 'partial/programitems' : 'programlist', ['programs' => array_reverse($programs)]);
|
return view($request->ajax() ? 'partial/programitems' : 'programlist', ['programs' => array_reverse($programs), 'isPodcast' => false]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getPodcastList(Request $request, $action, $viewData = [])
|
private function getPodcastList(Request $request, $action, $viewData = [])
|
||||||
@@ -120,7 +120,7 @@ class RadioController extends Controller
|
|||||||
$podcasts[] = new \Model\Podcast($podcast);
|
$podcasts[] = new \Model\Podcast($podcast);
|
||||||
}
|
}
|
||||||
|
|
||||||
return view($request->ajax() ? 'partial/podcastitems' : 'podcastlist', array_merge($viewData, ['id' => 'items-podcasts', 'podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken']));
|
return view($request->ajax() ? 'partial/podcastitems' : 'podcastlist', array_merge($viewData, ['id' => 'items-podcasts', 'podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken', 'isPodcast' => false]));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,11 +50,11 @@ class StreamController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
return view('listen', [
|
return view('listen', [
|
||||||
'source' => $this->API_URL . 'podcast/download' . $apiResult->url . '?auth=' . $podcast->auth,
|
'source' => $this->API_URL . 'podcast/stream/' . $apiResult->url,
|
||||||
'title' => $podcast->title,
|
'title' => $podcast->title,
|
||||||
'content' => $podcast->title,
|
'content' => $podcast->title,
|
||||||
'isStream' => false,
|
'isStream' => false,
|
||||||
'canDownload' => true ]);
|
'canDownload' => $this->API_URL . 'podcast/download/' . $apiResult->url ]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function program(Request $request, $year, $month, $day, $hour, $duration, $offset = 0) {
|
public function program(Request $request, $year, $month, $day, $hour, $duration, $offset = 0) {
|
||||||
@@ -69,7 +69,7 @@ class StreamController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
return view('listen', [
|
return view('listen', [
|
||||||
'source' => $this->API_URL . 'programma/download/' . $current->format('Y/m/d/H') . '/1',
|
'source' => $this->API_URL . 'programma/stream/' . $current->format('Y/m/d/H'),
|
||||||
'tabs' => $hours,
|
'tabs' => $hours,
|
||||||
'title' => 'Uitzending terugluisteren',
|
'title' => 'Uitzending terugluisteren',
|
||||||
'content' => 'de uitzending van ' . $current->format('d-m-Y, H') . ':00 uur',
|
'content' => 'de uitzending van ' . $current->format('d-m-Y, H') . ':00 uur',
|
||||||
@@ -88,10 +88,10 @@ class StreamController extends Controller
|
|||||||
|
|
||||||
public function kerkdienst(Request $request) {
|
public function kerkdienst(Request $request) {
|
||||||
return view('listen', [
|
return view('listen', [
|
||||||
'source' => $this->API_URL . 'kerkdienst/download',
|
'source' => $this->API_URL . 'kerkdienst/stream',
|
||||||
'title' => 'Kerkdienst gemist',
|
'title' => 'Kerkdienst gemist',
|
||||||
'content' => 'de kerkdienst van afgelopen zondag',
|
'content' => 'de kerkdienst van afgelopen zondag',
|
||||||
'isStream' => false,
|
'isStream' => false,
|
||||||
'canDownload' => true ]);
|
'canDownload' => $this->API_URL . 'kerkdienst/download' ]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
23
app/Models/Blog.php
Normal file
23
app/Models/Blog.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class Blog extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $description;
|
||||||
|
public $news_category;
|
||||||
|
public $start_date;
|
||||||
|
public $end_date;
|
||||||
|
public $is_active;
|
||||||
|
|
||||||
|
public $url;
|
||||||
|
|
||||||
|
public function __construct($data, $images = null, $podcast = null) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->start_date);
|
||||||
|
parent::ConvertToDateTime($this->end_date);
|
||||||
|
|
||||||
|
$this->url = "/blog/{$this->id}/" . parent::url_slug($this->title);
|
||||||
|
}
|
||||||
|
}
|
||||||
67
app/Models/CalendarEvent.php
Normal file
67
app/Models/CalendarEvent.php
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class CalendarEvent extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $region;
|
||||||
|
public $content;
|
||||||
|
public $starts;
|
||||||
|
public $ends;
|
||||||
|
public $images;
|
||||||
|
public $podcast;
|
||||||
|
public $video;
|
||||||
|
public $keywords;
|
||||||
|
public $url;
|
||||||
|
public $metadata;
|
||||||
|
public $tags;
|
||||||
|
|
||||||
|
public function __construct($data, $images = null, $podcast = null) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->starts);
|
||||||
|
parent::ConvertToDateTime($this->ends);
|
||||||
|
|
||||||
|
$this->keywords = null;
|
||||||
|
if(isset($data->keywords)) {
|
||||||
|
if(is_array($data->keywords)) {
|
||||||
|
$this->keywords = $data->keywords;
|
||||||
|
} else if(trim($data->keywords)) {
|
||||||
|
$this->keywords = explode(' ', $data->keywords);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($podcast)
|
||||||
|
{
|
||||||
|
$this->podcast = new \Model\Podcast($podcast);
|
||||||
|
} else if(isset($data->podcast) && $data->podcast) {
|
||||||
|
$this->podcast = new \Model\Podcast($data->podcast);
|
||||||
|
}
|
||||||
|
|
||||||
|
$images = ($images != null) ? $images
|
||||||
|
: (isset($data->images) ? $data->images : null);
|
||||||
|
if($images) {
|
||||||
|
$this->images = [];
|
||||||
|
foreach($images as $image) {
|
||||||
|
$this->images[] = new NewsImage($image, '/img/news/');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->url = "/agenda/{$this->id}/" . parent::url_slug($this->title);
|
||||||
|
$this->metadata = (new MetaData())
|
||||||
|
->set('title', $this->title)
|
||||||
|
->set('description', strip_tags($this->excerpt()))
|
||||||
|
->set('image', isset($this->images) && count($this->images) ? $this->images[0]->url : null )
|
||||||
|
->set('audio', isset($this->podcast) ? $this->podcast->url : null)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function excerpt() {
|
||||||
|
$hasImages = isset($this->images) && count($this->images) > 0;
|
||||||
|
$maxLength = $hasImages ? 200 : 500;
|
||||||
|
return '<p class="news-excerpt ' . ($hasImages ? 'short' : 'long') . '">' .
|
||||||
|
substr($this->content, 0, $maxLength) .
|
||||||
|
(strlen($this->content) > $maxLength ? '...' : '') .
|
||||||
|
'</p>';
|
||||||
|
}
|
||||||
|
}
|
||||||
61
app/Models/JobOpening.php
Normal file
61
app/Models/JobOpening.php
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class JobOpening extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $content;
|
||||||
|
public $starts;
|
||||||
|
public $ends;
|
||||||
|
public $images;
|
||||||
|
public $url;
|
||||||
|
|
||||||
|
public function __construct($data, $images = null, $podcast = null) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->starts);
|
||||||
|
parent::ConvertToDateTime($this->ends);
|
||||||
|
|
||||||
|
$this->keywords = null;
|
||||||
|
if(isset($data->keywords)) {
|
||||||
|
if(is_array($data->keywords)) {
|
||||||
|
$this->keywords = $data->keywords;
|
||||||
|
} else if(trim($data->keywords)) {
|
||||||
|
$this->keywords = explode(' ', $data->keywords);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($podcast)
|
||||||
|
{
|
||||||
|
$this->podcast = new \Model\Podcast($podcast);
|
||||||
|
} else if(isset($data->podcast) && $data->podcast) {
|
||||||
|
$this->podcast = new \Model\Podcast($data->podcast);
|
||||||
|
}
|
||||||
|
|
||||||
|
$images = ($images != null) ? $images
|
||||||
|
: (isset($data->images) ? $data->images : null);
|
||||||
|
if($images) {
|
||||||
|
$this->images = [];
|
||||||
|
foreach($images as $image) {
|
||||||
|
$this->images[] = new NewsImage($image, '/img/news/');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->url = "/vacatures/{$this->id}/" . parent::url_slug($this->title);
|
||||||
|
$this->metadata = (new MetaData())
|
||||||
|
->set('title', $this->title)
|
||||||
|
->set('description', strip_tags($this->excerpt()))
|
||||||
|
->set('image', isset($this->images) && count($this->images) ? $this->images[0]->url : null )
|
||||||
|
->set('audio', isset($this->podcast) ? $this->podcast->url : null)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function excerpt() {
|
||||||
|
$hasImages = count($this->images) > 0;
|
||||||
|
$maxLength = $hasImages ? 200 : 500;
|
||||||
|
return '<p class="news-excerpt ' . ($hasImages ? 'short' : 'long') . '">' .
|
||||||
|
substr($this->content, 0, $maxLength) .
|
||||||
|
(strlen($this->content) > $maxLength ? '...' : '') .
|
||||||
|
'</p>';
|
||||||
|
}
|
||||||
|
}
|
||||||
26
app/Models/Kerkdienst.php
Normal file
26
app/Models/Kerkdienst.php
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class KerkdienstInstance extends Model {
|
||||||
|
public $name;
|
||||||
|
public $start;
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->start);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Kerkdienst extends Model {
|
||||||
|
public $isRunning;
|
||||||
|
public $previous;
|
||||||
|
public $next;
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
// parent::__construct($data);
|
||||||
|
$this->isRunning = $data->isRunning;
|
||||||
|
$this->previous = new KerkdienstInstance($data->previous);
|
||||||
|
$this->next = new KerkdienstInstance($data->next);
|
||||||
|
}
|
||||||
|
}
|
||||||
35
app/Models/MetaData.php
Normal file
35
app/Models/MetaData.php
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class MetaData {
|
||||||
|
private $data = ['type' => 'article', 'locale' => 'nl-nl'];
|
||||||
|
|
||||||
|
public function set($prop, $val) {
|
||||||
|
if($val) {
|
||||||
|
$this->data[$prop] = $val;
|
||||||
|
}
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function append($prop, $val) {
|
||||||
|
if(array_key_exists($prop, $this->data)) {
|
||||||
|
$this->data[$prop] .= $val;
|
||||||
|
}
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prepend($prop, $val) {
|
||||||
|
if(array_key_exists($prop, $this->data)) {
|
||||||
|
$this->data[$prop] = $val . $this->data[$prop];
|
||||||
|
}
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function metaTags() {
|
||||||
|
foreach($this->data as $prop => $val) {
|
||||||
|
if($val) {
|
||||||
|
echo "<meta property=\"og:$prop\" content=\"" . htmlentities($val) . "\" />\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
64
app/Models/Model.php
Normal file
64
app/Models/Model.php
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class Model {
|
||||||
|
protected function ConvertToDateTime(&$field) {
|
||||||
|
if($field) {
|
||||||
|
// PHP7 JSON-encodes to {date: "", "timezone_type": ..., "timezone": "UTC" }
|
||||||
|
// In that case $field will be an object
|
||||||
|
if(is_object($field)) {
|
||||||
|
$field = ($field->timezone)
|
||||||
|
? new \DateTimeImmutable($field->date, new \DateTimeZone($field->timezone))
|
||||||
|
: (new \DateTimeImmutable($field->date));
|
||||||
|
} else {
|
||||||
|
// If $field is not an object, assume it's a plain, valid, string
|
||||||
|
$field = new \DateTime($field);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($field === false || $field->getTimestamp() <= 0) {
|
||||||
|
// If field had data but is invalid DateTime or is 0000-00-00 00:00, set it to null.
|
||||||
|
$field = null;
|
||||||
|
} else {
|
||||||
|
// If valid, return local timezone
|
||||||
|
$field->setTimezone(new \DateTimeZone("Europe/Amsterdam"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
$class = get_class($this);
|
||||||
|
foreach($data as $key => $val) {
|
||||||
|
if(property_exists($class, $key)) {
|
||||||
|
$this->$key = is_string($val) ? stripslashes($val) : $val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function url_slug($text) {
|
||||||
|
// Alles naar kleine letter
|
||||||
|
$text = strtolower($text);
|
||||||
|
|
||||||
|
// Vervang accent-tekens door niet-geaccentueerde versies
|
||||||
|
// $text = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $text);
|
||||||
|
$search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u");
|
||||||
|
$replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u");
|
||||||
|
$text = str_replace($search, $replace, $text);
|
||||||
|
|
||||||
|
// Verwijder alle woorden van 3 letters, behalve BEL (BEL-combinatie etc)
|
||||||
|
if(strlen($text) > 3) {
|
||||||
|
$text = preg_replace('/\b(?!bel|fm|nh)([a-z]{1,3})\b/u', '', $text);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vervang alles dat niet een woord-karakter is (letter, cijfer), een streepje of spatie
|
||||||
|
if(strlen($text) > 3) {
|
||||||
|
$text = preg_replace('/[^\w_\-\s]/', '', $text);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reeksen van één of meer spaties / streepjes vervangen door een enkel streepje
|
||||||
|
$text = preg_replace('/[\-\s]+/', '-', $text);
|
||||||
|
|
||||||
|
// Verwijder alle witruimte / streepjes aan begin en eind
|
||||||
|
return trim(strtolower($text), '-');
|
||||||
|
}
|
||||||
|
}
|
||||||
20
app/Models/NewsImage.php
Normal file
20
app/Models/NewsImage.php
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class NewsImage extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $author;
|
||||||
|
public $url;
|
||||||
|
|
||||||
|
public function __construct($data, $urlPrefix = '/') {
|
||||||
|
parent::__construct($data);
|
||||||
|
|
||||||
|
// Deserialisatie van JSON heeft url in data,
|
||||||
|
// lezen uit database heeft file en (als het goed is) urlPrefix
|
||||||
|
if(isset($data->file)) {
|
||||||
|
$this->url = $urlPrefix . $data->file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
118
app/Models/NewsItem.php
Normal file
118
app/Models/NewsItem.php
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
require_once "NewsImage.php";
|
||||||
|
require_once "NewsSource.php";
|
||||||
|
require_once "MetaData.php";
|
||||||
|
|
||||||
|
class NewsItem extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $author;
|
||||||
|
public $content;
|
||||||
|
public $published;
|
||||||
|
public $edited;
|
||||||
|
public $keywords;
|
||||||
|
|
||||||
|
public $source;
|
||||||
|
public $category;
|
||||||
|
public $theme;
|
||||||
|
public $region;
|
||||||
|
public $tags;
|
||||||
|
|
||||||
|
public $podcast;
|
||||||
|
public $images;
|
||||||
|
public $video;
|
||||||
|
|
||||||
|
public $url;
|
||||||
|
public $metadata;
|
||||||
|
|
||||||
|
public function __construct($data, $images = null, $podcast = null) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->published);
|
||||||
|
parent::ConvertToDateTime($this->edited);
|
||||||
|
|
||||||
|
if($this->edited && ($this->edited->getTimestamp() - $this->published->getTimestamp() < 1800 /* == 30 minutes */)) {
|
||||||
|
// If last edit was within grace period, consider it unedited (note: currently RES always saves edited == published on creation)
|
||||||
|
$this->edited = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->source = null;
|
||||||
|
if(isset($data->source))
|
||||||
|
{
|
||||||
|
if(is_object($data->source))
|
||||||
|
{
|
||||||
|
$this->source = new \Model\NewsSource($data->source->title, $data->source->url, $data->source->show);
|
||||||
|
} else if($data->source) {
|
||||||
|
$this->source = new \Model\NewsSource($data->source, $data->source_url, $data->showsource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($podcast) {
|
||||||
|
$this->podcast = new \Model\Podcast($podcast);
|
||||||
|
} else if(isset($data->podcast) && $data->podcast) {
|
||||||
|
$this->podcast = new \Model\Podcast($data->podcast);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->keywords = null;
|
||||||
|
if(isset($data->keywords)) {
|
||||||
|
if(is_array($data->keywords) || is_object($data->keywords)) {
|
||||||
|
$this->keywords = $data->keywords;
|
||||||
|
} else if(trim($data->keywords)) {
|
||||||
|
$this->keywords = explode(' ', $data->keywords);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->region)) {
|
||||||
|
if(is_object($data->region)) {
|
||||||
|
$this->region = new \Model\NewsRegion($data->region->title, $data->region->slug);
|
||||||
|
} else {
|
||||||
|
$this->region = new \Model\NewsRegion($data->region, $data->region_slug);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->theme)) {
|
||||||
|
if(is_object($data->theme)) {
|
||||||
|
$this->theme = new \Model\NewsRegion($data->theme->title, $data->theme->slug);
|
||||||
|
} else {
|
||||||
|
$this->theme = new \Model\NewsRegion($data->theme, $data->theme_slug);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->tags)) {
|
||||||
|
foreach($data->tags as $tag) {
|
||||||
|
$this->theme = new \Model\NewsRegion($tag->titel, $tag->slug);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$images = ($images != null) ? $images
|
||||||
|
: (isset($data->images) ? $data->images : null);
|
||||||
|
if($images) {
|
||||||
|
$this->images = [];
|
||||||
|
foreach($images as $image) {
|
||||||
|
$this->images[] = new NewsImage($image, '/img/news/');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->url = "/nieuws/{$this->id}/" . parent::url_slug($this->title);
|
||||||
|
$this->metadata = (new MetaData())
|
||||||
|
->set('title', $this->title)
|
||||||
|
->set('description', strip_tags($this->excerpt()))
|
||||||
|
->set('image', isset($this->images) && count($this->images) ? $this->images[0]->url : null )
|
||||||
|
->set('video', isset($this->video) ? $this->video : null)
|
||||||
|
->set('audio', isset($this->podcast) ? $this->podcast->url : null)
|
||||||
|
->set('article:published_time', $this->published->format('r'))
|
||||||
|
->set('article:modified_time', $this->edited ? $this->edited->format('r') : null)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function excerpt() {
|
||||||
|
$hasImages = isset($this->images) && count($this->images) > 0;
|
||||||
|
$maxLength = $hasImages ? 200 : 500;
|
||||||
|
return '<p class="news-excerpt ' . ($hasImages ? 'short' : 'long') . '">' .
|
||||||
|
substr($this->content, 0, $maxLength) .
|
||||||
|
(strlen($this->content) > $maxLength ? '...' : '') .
|
||||||
|
'</p>';
|
||||||
|
}
|
||||||
|
}
|
||||||
25
app/Models/NewsSource.php
Normal file
25
app/Models/NewsSource.php
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class NewsRegion {
|
||||||
|
public $title;
|
||||||
|
public $slug;
|
||||||
|
|
||||||
|
public function __construct($title, $slug = null) {
|
||||||
|
$this->title = $title;
|
||||||
|
$this->slug = $slug ? $slug : strtolower(str_replace(' ', '', $title));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class NewsSource {
|
||||||
|
public $title;
|
||||||
|
public $url;
|
||||||
|
public $show;
|
||||||
|
|
||||||
|
public function __construct($title, $url, $show) {
|
||||||
|
$this->title = $title;
|
||||||
|
$this->url = $url;
|
||||||
|
$this->show = $show;
|
||||||
|
}
|
||||||
|
}
|
||||||
94
app/Models/Podcast.php
Normal file
94
app/Models/Podcast.php
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
require_once "NewsImage.php";
|
||||||
|
|
||||||
|
class Podcast extends Model {
|
||||||
|
public $id;
|
||||||
|
public $title;
|
||||||
|
public $content;
|
||||||
|
protected $soundfilename;
|
||||||
|
public $created;
|
||||||
|
public $program;
|
||||||
|
public $url;
|
||||||
|
public $auth;
|
||||||
|
public $download;
|
||||||
|
public $duration;
|
||||||
|
public $image;
|
||||||
|
public $metadata;
|
||||||
|
public $waveform;
|
||||||
|
private $key;
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->created);
|
||||||
|
|
||||||
|
$this->url = '/' . $this->id . '/' . parent::url_slug($this->title) . '.mp3';
|
||||||
|
if($this->soundfilename) {
|
||||||
|
// Only generate when not constructing from a JSON object
|
||||||
|
$this->key = sha1($this->id . ':' . date('Y-m-d') . ':' . $this->soundfilename);
|
||||||
|
$this->auth = $this->key;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->program)) {
|
||||||
|
$this->program = null;
|
||||||
|
if(is_object($data->program)) {
|
||||||
|
$this->program = new \Model\Program($data->program);
|
||||||
|
} elseif($data->program) {
|
||||||
|
$this->program = new \Model\Program(['id' => $data->program, 'name' => $data->program_name, 'description' => $data->program_description]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->imagefile)) {
|
||||||
|
$imagedata = new \stdClass();
|
||||||
|
$imagedata->id = $this->id;
|
||||||
|
$imagedata->file = $data->imagefile;
|
||||||
|
$imagedata->title = $data->imagecaption;
|
||||||
|
$this->image = new NewsImage($imagedata, '/img/podcast/');
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->metadata, $data->metadata->waveform)){
|
||||||
|
$this->waveform = $data->metadata->waveform;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->metadata = (new MetaData())
|
||||||
|
->set('title', $this->title)
|
||||||
|
->set('description', strip_tags($this->excerpt()))
|
||||||
|
->set('image', isset($this->image) ? $this->image->url : null )
|
||||||
|
->set('audio', $this->url)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function titleWithoutProgram() {
|
||||||
|
if(!$this->program) { return $this->title; }
|
||||||
|
return trim(str_replace($this->program->name, '', $this->title), "- \t\n\r\0\x0B");
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isValidAuth($key) {
|
||||||
|
return ($key == $this->key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSoundfile() {
|
||||||
|
return '/var/audio/podcast/' . $this->soundfilename;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function formatDuration() {
|
||||||
|
$seconds = $this->duration / 1000;
|
||||||
|
$milliseconds = $this->duration % 1000;
|
||||||
|
|
||||||
|
$hours = ($seconds > 3600) ? floor($seconds / 3600) : 0;
|
||||||
|
$seconds %= 3600;
|
||||||
|
return str_pad($hours, 2, '0', STR_PAD_LEFT)
|
||||||
|
. gmdate(':i:s', $seconds)
|
||||||
|
;//. ($milliseconds ? ".$milliseconds" : '') ;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function excerpt() {
|
||||||
|
$maxLength = 500;
|
||||||
|
return '<p class="news-excerpt long">' .
|
||||||
|
substr($this->content, 0, $maxLength) .
|
||||||
|
(strlen($this->content) > $maxLength ? '...' : '') .
|
||||||
|
'</p>';
|
||||||
|
}
|
||||||
|
}
|
||||||
55
app/Models/Program.php
Normal file
55
app/Models/Program.php
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class Program extends Model {
|
||||||
|
public $id;
|
||||||
|
public $name;
|
||||||
|
public $tagline;
|
||||||
|
public $description;
|
||||||
|
public $email;
|
||||||
|
public $nonstop;
|
||||||
|
public $rerun;
|
||||||
|
public $priority;
|
||||||
|
public $image;
|
||||||
|
|
||||||
|
public $hosts;
|
||||||
|
public $recent;
|
||||||
|
public $next;
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
parent::__construct($data);
|
||||||
|
|
||||||
|
if(isset($data->suffix) && $data->suffix) {
|
||||||
|
$this->name .= ' ' . $data->suffix;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($this->recent && $this->recent) {
|
||||||
|
foreach($this->recent as &$recent) {
|
||||||
|
parent::ConvertToDateTime($recent->starts);
|
||||||
|
parent::ConvertToDateTime($recent->ends);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if($this->next && $this->next) {
|
||||||
|
foreach($this->next as &$next) {
|
||||||
|
parent::ConvertToDateTime($next->starts);
|
||||||
|
parent::ConvertToDateTime($next->ends);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->email) && ($mailComma = strpos($data->email, ',')) !== false) {
|
||||||
|
$this->email = substr($data->email, 0, $mailComma);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($data->state)) {
|
||||||
|
$this->nonstop = $data->state == 0;
|
||||||
|
$this->rerun = $data->state == 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->url = "/{$this->id}/" . parent::url_slug($this->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isSpecial() {
|
||||||
|
return ($this->priority < 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
10
app/Models/ProgramHost.php
Normal file
10
app/Models/ProgramHost.php
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class ProgramHost extends Model {
|
||||||
|
public $id;
|
||||||
|
public $name;
|
||||||
|
public $email;
|
||||||
|
}
|
||||||
|
|
||||||
47
app/Models/Track.php
Normal file
47
app/Models/Track.php
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model;
|
||||||
|
|
||||||
|
class Track extends Model {
|
||||||
|
public $start;
|
||||||
|
public $itemCode;
|
||||||
|
public $title;
|
||||||
|
public $artist;
|
||||||
|
public $duration;
|
||||||
|
public $ends;
|
||||||
|
public $isLayout;
|
||||||
|
|
||||||
|
public function __construct($data) {
|
||||||
|
parent::__construct($data);
|
||||||
|
parent::ConvertToDateTime($this->start);
|
||||||
|
parent::ConvertToDateTime($this->ends);
|
||||||
|
$isLayout = $this->isLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static $IDENTS = ['UURSLUITER' => 'Nieuws', 'NIEUWSOPEN ' => 'Nieuws', 'ANWB' => 'Verkeersinformatie', 'REGIO' => 'Regionieuws', 'CB' => 'Reclame'];
|
||||||
|
|
||||||
|
public function isLayout() {
|
||||||
|
foreach(self::$IDENTS as $ident => $display) {
|
||||||
|
if(substr($this->itemCode, 0, strlen($ident)) == $ident || substr($this->title, 0, strlen($ident)) == $ident) {
|
||||||
|
$this->title = $display;
|
||||||
|
$this->artist = "";
|
||||||
|
$this->itemCode = '_' . $this->itemCode;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(strlen($this->itemCode) > 0 && ($this->itemCode[0] == 'V')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function ends($ends = null) {
|
||||||
|
$this->ends = $ends;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function secondsRemaining() {
|
||||||
|
return ($this->ends) ? ($this->ends->getTimestamp() - time()) : -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
"Database\\Factories\\": "database/factories/",
|
"Database\\Factories\\": "database/factories/",
|
||||||
"Database\\Seeders\\": "database/seeders/",
|
"Database\\Seeders\\": "database/seeders/",
|
||||||
"Helpers\\": "app/Helpers",
|
"Helpers\\": "app/Helpers",
|
||||||
"Model\\": "/srv/api/common/classes"
|
"Model\\": "app/Models"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ ServerTokens Prod
|
|||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
ServerName localhost
|
ServerName localhost
|
||||||
ServerAdmin support@websight.nl
|
ServerAdmin support@websight.nl
|
||||||
DocumentRoot /var/www/html/public
|
DocumentRoot /var/www/html
|
||||||
|
|
||||||
<Directory /var/www/html/public/>
|
<Directory /var/www/html/>
|
||||||
Options -Indexes +FollowSymLinks +MultiViews
|
Options -Indexes +FollowSymLinks +MultiViews
|
||||||
AllowOverride All
|
AllowOverride All
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
@@ -23,7 +23,7 @@ ServerTokens Prod
|
|||||||
<VirtualHost *:443>
|
<VirtualHost *:443>
|
||||||
ServerName localhost
|
ServerName localhost
|
||||||
ServerAdmin support@websight.nl
|
ServerAdmin support@websight.nl
|
||||||
DocumentRoot /var/www/html/public
|
DocumentRoot /var/www/html
|
||||||
|
|
||||||
SSLEngine on
|
SSLEngine on
|
||||||
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
|
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||||
@@ -32,7 +32,7 @@ ServerTokens Prod
|
|||||||
SSLProtocol All -SSLv2 -SSLv3
|
SSLProtocol All -SSLv2 -SSLv3
|
||||||
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
|
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
|
||||||
|
|
||||||
<Directory /var/www/html/public/>
|
<Directory /var/www/html/>
|
||||||
Options -Indexes +FollowSymLinks +MultiViews
|
Options -Indexes +FollowSymLinks +MultiViews
|
||||||
AllowOverride All
|
AllowOverride All
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
|
|||||||
22
public/css/style.css
vendored
22
public/css/style.css
vendored
@@ -319,7 +319,7 @@ div.pp_default .pp_close:hover {
|
|||||||
padding: 3px 9px 3px 6px;
|
padding: 3px 9px 3px 6px;
|
||||||
margin: 8px auto;
|
margin: 8px auto;
|
||||||
}
|
}
|
||||||
.top_menu_container ul.right_menu li:last-child, .menu_mobile_container ul.right_menu li:last-child {
|
.top_menu_container ul.right_menu li.search, .menu_mobile_container ul.right_menu li.search {
|
||||||
border: none;
|
border: none;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
@@ -1231,7 +1231,8 @@ div.pp_default .pp_close:hover {
|
|||||||
.post_container .post_body h3 {
|
.post_container .post_body h3 {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
}
|
}
|
||||||
.post_container .post_body .sentence {
|
.post_container .post_body .sentence,
|
||||||
|
.box.featured .sentence {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
line-height: 1.3;
|
line-height: 1.3;
|
||||||
@@ -1240,7 +1241,8 @@ div.pp_default .pp_close:hover {
|
|||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
.post_container .post_body .sentence span {
|
.post_container .post_body .sentence span,
|
||||||
|
.box.featured .sentence span {
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
}
|
}
|
||||||
.post_container .post_body blockquote {
|
.post_container .post_body blockquote {
|
||||||
@@ -1318,8 +1320,10 @@ div.pp_default .pp_close:hover {
|
|||||||
float: left;
|
float: left;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
.post_tags li a {
|
.post_tags li a,
|
||||||
|
#schedule .onair {
|
||||||
display: block;
|
display: block;
|
||||||
|
width: 4rem;
|
||||||
padding: 6px 15px 7px;
|
padding: 6px 15px 7px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
background-image: linear-gradient(to left, #0d1ca3, #45aaf8);
|
background-image: linear-gradient(to left, #0d1ca3, #45aaf8);
|
||||||
@@ -1335,6 +1339,16 @@ div.pp_default .pp_close:hover {
|
|||||||
#schedule a {
|
#schedule a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
@keyframes tilt-shaking {
|
||||||
|
0% { transform: rotate(0deg); }
|
||||||
|
25% { transform: rotate(5deg); }
|
||||||
|
50% { transform: rotate(0deg); }
|
||||||
|
75% { transform: rotate(-5deg); }
|
||||||
|
100% { transform: rotate(0deg); }
|
||||||
|
}
|
||||||
|
.onair {
|
||||||
|
animation: tilt-shaking 1s linear infinite;
|
||||||
|
}
|
||||||
#schedule .program-title {
|
#schedule .program-title {
|
||||||
font-family: Montserrat, serif;
|
font-family: Montserrat, serif;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
|||||||
@@ -1,91 +0,0 @@
|
|||||||
|
|
||||||
.site_container {
|
|
||||||
max-width: 1440px;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
.header {
|
|
||||||
height: 110px;
|
|
||||||
}
|
|
||||||
.header .logo {
|
|
||||||
margin-left: 135px;
|
|
||||||
}
|
|
||||||
.header .logo img {
|
|
||||||
height: 75px;
|
|
||||||
}
|
|
||||||
.menu_container {
|
|
||||||
height: 75px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
background-image: linear-gradient(to right, #0102b0, #4090e3);
|
|
||||||
}
|
|
||||||
.top_menu_container {
|
|
||||||
height: 50px;
|
|
||||||
}
|
|
||||||
.menu_container .menu {
|
|
||||||
list-style-type: none;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
position: relative;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
.menu_container .menu li {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.menu_container .menu li ul {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.menu_container .menu li a {
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
padding: 5px 20px 5px 40px;
|
|
||||||
text-decoration: none;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: bold;
|
|
||||||
background: white;
|
|
||||||
}
|
|
||||||
.menu_container .menu li.selected a,.menu_container .menu li:hover a {
|
|
||||||
color: white;
|
|
||||||
background: transparent;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.menu_container .menu li.selected a:before, .menu_container .menu li:hover a:before {
|
|
||||||
content: '';
|
|
||||||
display: block;
|
|
||||||
width: 33px;
|
|
||||||
height: 25px;
|
|
||||||
background-image: URL('/images/menu-corner-1.svg');
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
.menu_container .menu li.selected a:after, .menu_container .menu li:hover a:after {
|
|
||||||
content: '';
|
|
||||||
display: block;
|
|
||||||
width: 10px;
|
|
||||||
height: 12px;
|
|
||||||
background-image: URL('/images/menu-corner-2.svg');
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
right: -1px;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
.menu_container .menu li:first-child {
|
|
||||||
width: 135px;
|
|
||||||
display: block;
|
|
||||||
background: white;
|
|
||||||
height: 25px;
|
|
||||||
}
|
|
||||||
div ul li:last-child {
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
div ul li:last-child:after {
|
|
||||||
content: '\a0';
|
|
||||||
z-index: -1;
|
|
||||||
background: white;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
margin-left: -10px;
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 944 B After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.7 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -12,7 +12,7 @@
|
|||||||
<ul class="bread_crumb">
|
<ul class="bread_crumb">
|
||||||
<li><a title="Home" href="/">Home</a></li>
|
<li><a title="Home" href="/">Home</a></li>
|
||||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||||
<li><a title="Regio-agenda" href="{{route('agenda')}}">Regio-agenda</a></li>
|
<li><a title="Streekagenda" href="{{route('agenda')}}">Streekagenda</a></li>
|
||||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||||
<li>Details</li>
|
<li>Details</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<div class="post single small_image">
|
<div class="post single small_image">
|
||||||
<ul class="post_details clearfix">
|
<ul class="post_details clearfix">
|
||||||
@if($event->region)
|
@if($event->region)
|
||||||
<li class="detail category"><i class="fa-solid fa-location-dot"></i> Regio <a title="{{$event->region}}">{{$event->region}}</a></li>
|
<li class="detail category"><i class="fa-solid fa-location-dot"></i> <a title="{{$event->region}}">{{$event->region}}</a></li>
|
||||||
@endif
|
@endif
|
||||||
<li class="detail date">
|
<li class="detail date">
|
||||||
<i class="fa-regular fa-clock"></i>
|
<i class="fa-regular fa-clock"></i>
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
<div class="announcement">
|
<div class="announcement">
|
||||||
<div>
|
<div>
|
||||||
<audio controls>
|
<audio controls>
|
||||||
<source src="{{ $url = url( $apiUrl . 'podcast/download/' . $event->podcast->url . "?auth=" . $event->podcast->auth )}}" type="audio/mpeg" />
|
<source src="{{ $url = url( $apiUrl . 'podcast/stream/' . $event->podcast->url . "?auth=" . $event->podcast->auth )}}" type="audio/mpeg" />
|
||||||
</audio>
|
</audio>
|
||||||
</div>
|
</div>
|
||||||
<ul class="post_details clearfix">
|
<ul class="post_details clearfix">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
@extends('layouts/sidebar')
|
@extends('layouts/sidebar')
|
||||||
|
|
||||||
@section('title')
|
@section('title')
|
||||||
Regioagenda
|
Streekagenda
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('page_class')
|
@section('page_class')
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
@if(!count($events))
|
@if(!count($events))
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="page_body margin_bottom">
|
<div class="page_body margin_bottom">
|
||||||
<p>Er zijn geen items in de regioagenda. Iets te melden? Mail het naar {{Html::mailto("info@nhgooi.nl")}}
|
<p>Er zijn geen items in de streekagenda. Iets te melden? Mail het naar {{Html::mailto("info@nhgooi.nl")}}
|
||||||
.</p>
|
.</p>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -19,9 +19,20 @@
|
|||||||
<div class="page_body">
|
<div class="page_body">
|
||||||
<div class="row ">
|
<div class="row ">
|
||||||
<div class="col-12 col-md">
|
<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>
|
<h3>Contactinformatie</h3>
|
||||||
|
|
||||||
<p>Neem contact op met NH Gooi, de streekomroep voor Hilversum, Huizen, Blaricum, Eemnes en Laren.</p>
|
<p>Neem contact op met NH Gooi, de streekomroep voor Gooi & Vechtstreek.</p>
|
||||||
|
|
||||||
<p>Wij zijn te ontvangen in heel Gooi en Eemland. <br>
|
<p>Wij zijn te ontvangen in heel Gooi en Eemland. <br>
|
||||||
<a href="{{url('frequenties')}}" class="action_button">
|
<a href="{{url('frequenties')}}" class="action_button">
|
||||||
@@ -62,30 +73,6 @@
|
|||||||
{{Html::mailto('petra.debeij@nhgooi.nl')}}<br><br>
|
{{Html::mailto('petra.debeij@nhgooi.nl')}}<br><br>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-12 col-md">
|
|
||||||
<h3>WhatsApp de redactie / Nieuwsupdate</h3>
|
|
||||||
<p class="intro">Elke dag het nieuws uit 't Gooi in een appje op je telefoon: dat kan met onze
|
|
||||||
nieuwsdienst via WhatsApp.</p>
|
|
||||||
<p>Door je aan te melden ontvang je elke werkdag aan het eind van de middag het meest aansprekende
|
|
||||||
nieuws uit 't Gooi op je mobiel. Dan ben je als eerste op de hoogte van wat er speelt in jouw buurt
|
|
||||||
en wat er leeft in de regio. </p>
|
|
||||||
<p>Is er nieuws dat je meteen moet weten, zoals een grote brand of een wethouder die opstapt? Dan
|
|
||||||
ontvang je meteen een extra berichtje. </p>
|
|
||||||
<p><strong>Aanmelden</strong><br>Aanmelden voor de NH Gooi-nieuwsdienst via WhatsApp doe je door 'NH
|
|
||||||
GOOI AAN' te appen naar 088-8505651.</p>
|
|
||||||
<p>Met dat nummer heb je ook meteen contact met de redactie. Heb je een goeie tip of zelf een foto
|
|
||||||
gemaakt van actueel nieuws? Dan kun je ons zelf ook appen of even bellen. </p>
|
|
||||||
<p style="background-color: #bad4ff; padding: 10px;"><strong>Hoe werkt het?<br></strong>Aanmelden voor
|
|
||||||
de WhatsApp-nieuwsdienst van NH Gooi kan door een appje te sturen met de tekst 'NH GOOI AAN' naar
|
|
||||||
088-8505651. Aanmelden en berichten ontvangen is gratis.<br><br>Je ontvangt dan één keer per dag een
|
|
||||||
appje met het meest aansprekende Gooise nieuws. Is er nieuws dat je meteen moet weten, dan ontvang
|
|
||||||
je een extra berichtje. <br>Wil je geen berichtjes meer ontvangen? Dan stuur je 'NH GOOI UIT'
|
|
||||||
naar hetzelfde telefoonnummer. <br><br><em>Door je aan te melden ga je er mee akkoord dat NH
|
|
||||||
Nieuws je telefoonnummer opslaat om je elke dag een berichtje te kunnen sturen. </em></p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -14,6 +14,27 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="page_body">
|
<div class="page_body">
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<p>Bij NHGooi hechten we veel waarde aan uw privacy en de gebruiksvriendelijkheid van onze website. Daarom maken we gebruik van cookies om uw ervaring op onze website te verbeteren. Hieronder leest u meer over ons cookiebeleid en hoe wij cookies inzetten.</p>
|
||||||
|
|
||||||
|
<h2>1. Wat zijn cookies?</h2>
|
||||||
|
<p>Cookies zijn kleine tekstbestanden die op uw computer of mobiele apparaat worden opgeslagen wanneer u onze website bezoekt. Deze cookies helpen ons om uw voorkeuren te onthouden en om onze website beter te laten functioneren.</p>
|
||||||
|
|
||||||
|
<h2>2. Welke cookies gebruiken we?</h2>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Functionele cookies:</strong> Deze cookies zijn essentieel voor het correct functioneren van onze website. Ze zorgen ervoor dat basisfuncties zoals paginanavigatie en toegang tot beveiligde delen van de website werken. Zonder deze cookies kan de website niet naar behoren functioneren.</li>
|
||||||
|
<li><strong>Analytische cookies:</strong> Met deze cookies kunnen we het gebruik van onze website analyseren en verbeteren. Ze helpen ons te begrijpen hoe bezoekers onze website gebruiken, zodat we de functionaliteit en content kunnen optimaliseren. We gebruiken hiervoor bijvoorbeeld Google Analytics.</li>
|
||||||
|
<li><strong>Advertentie- en trackingcookies:</strong> Deze cookies worden gebruikt om advertenties relevanter voor u te maken. Ze kunnen ook worden gebruikt om de effectiviteit van een advertentiecampagne te meten. Deze cookies worden door derde partijen geplaatst, zoals advertentienetwerken, en kunnen uw internetgedrag volgen.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>3. Beheer van cookies</h2>
|
||||||
|
<p>Bij uw eerste bezoek aan onze website wordt u gevraagd om akkoord te gaan met het plaatsen van cookies. U kunt uw cookievoorkeuren op elk moment wijzigen via de instellingen van uw browser. Houd er echter rekening mee dat het uitschakelen van cookies invloed kan hebben op de functionaliteit van onze website.</p>
|
||||||
|
|
||||||
|
<h2>4. Uw privacy</h2>
|
||||||
|
<p>Uw privacy is voor ons van groot belang. Raadpleeg onze <a href="/privacy-verklaring">privacyverklaring</a> voor meer informatie over hoe wij omgaan met uw persoonlijke gegevens.</p>
|
||||||
|
|
||||||
|
<h2>5. Vragen?</h2>
|
||||||
|
<p>Als u vragen heeft over ons cookiebeleid, neem dan gerust contact met ons op via <a href="mailto:info@nhgooi.nl">info@nhgooi.nl</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -170,12 +170,28 @@
|
|||||||
|
|
||||||
@if ($podcast)
|
@if ($podcast)
|
||||||
<?php $url = route('gemist.fragment') . $podcast->url; ?>
|
<?php $url = route('gemist.fragment') . $podcast->url; ?>
|
||||||
<h4 class="box_header"><span>Uitgelicht</span></h4>
|
<h4 class="box_header"><span>Uitgelicht fragment</span></h4>
|
||||||
<div class="box featured">
|
<div class="box featured">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 col-md-6">
|
<div class="col-12 col-md-6">
|
||||||
<a href="{{$url}}" title="{{$podcast->title}}">
|
<a href="{{$url}}" title="{{$podcast->title}}">
|
||||||
<img src="{{$podcast->image && $podcast->image->url ? $imgBase . $podcast->image->url : '/images/noimage.png'}}"/>
|
<img src="{{($hasImage = $podcast->image && $podcast->image->url) ? $imgBase . $podcast->image->url : '/images/noimage.png'}}"/>
|
||||||
|
<div class="sentence">
|
||||||
|
<?php
|
||||||
|
$sentence = [];
|
||||||
|
if ($hasImage) {
|
||||||
|
$sentence[] = '<span class="text">' . $podcast->image->title . '</span>';
|
||||||
|
} elseif (isset($podcast->image->title) && $podcast->image->title) {
|
||||||
|
$sentence[] = '<span class="text">' . $podcast->image->title . '</span>';
|
||||||
|
}
|
||||||
|
if (isset($podcast->image->author) && $podcast->image->author) {
|
||||||
|
$sentence[] = '<span class="author">' . $podcast->image->author . '</span>';
|
||||||
|
}
|
||||||
|
$sentence = join('<span class="separator">|</span>', $sentence);
|
||||||
|
?>
|
||||||
|
{!!$sentence!!}
|
||||||
|
</div>
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 col-md-6">
|
<div class="col-12 col-md-6">
|
||||||
|
|||||||
@@ -26,160 +26,44 @@
|
|||||||
@parent
|
@parent
|
||||||
|
|
||||||
<div class="post_body ">
|
<div class="post_body ">
|
||||||
<h2 class="first">Wat doen wij?</h2>
|
|
||||||
<p>NH Gooi is de streekomroep voor het Gooi. We maken radio- en televisieprogramma’s,
|
|
||||||
podcasts en een website met nieuws en verhalen uit je achtertuin. Muziek, informatie,
|
|
||||||
cultuur en ontspanning staan centraal in onze uitzendingen, maar altijd met een link naar
|
|
||||||
het Gooi. NH Gooi is volop in ontwikkeling en wil haar activiteiten uitbouwen.</p>
|
|
||||||
|
|
||||||
|
<h2>Wat doen wij?</h2>
|
||||||
|
<p>NH Gooi is dé streekomroep voor het Gooi. We maken radio- en televisieprogramma’s, 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>
|
<blockquote>
|
||||||
Ik kwam hier als programmeur en nu maak ik met een collega, inmiddels vriend, elke week een
|
Ik kwam hier als programmeur en nu maak ik met een collega, inmiddels vriend, elke week een kleinkunstprogramma
|
||||||
kleinkunstprogramma
|
<span class="author">— Mischa, programmamaker en technicus</span>
|
||||||
|
|
||||||
<span class="author">— Mischa, programmamaker en technicus</span>
|
|
||||||
</blockquote>
|
</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>
|
||||||
|
|
||||||
<p>Lijkt het je leuk om mee te bouwen aan de streekomroep van en voor het Gooi? Dan ben je aan het juiste
|
<h2>Huidige (vrijwillige) vacatures</h2>
|
||||||
adres. NH Gooi is volop in ontwikkeling en biedt kansen voor iedereen die wil meebouwen aan
|
|
||||||
onze organisatie. En dat allemaal in het mediacentrum van ons land.</p>
|
|
||||||
|
|
||||||
<p>Wil je programma's maken voor radio en/of televisie, verslaggever worden, podcasts maken? Ben
|
<h3>Programma’s en content</h3>
|
||||||
jij de techneut of ICT-er die zorgt dat alle techniek en verbindingen goed blijven werken? Of vind je
|
|
||||||
het juist leuk om met een klein team mee te denken en te zorgen dat we nog bekender worden?
|
|
||||||
Bijna alles is mogelijk en altijd onder begeleiding of samen met anderen.</p>
|
|
||||||
|
|
||||||
<p>Wat wij van jou vragen is dat je nieuwsgierig bent, goed kunt samenwerken en graag op zoek gaat
|
|
||||||
naar de verhalen uit het Gooi. Meer weten?
|
|
||||||
<a href="/vacatures/ontmoet-ons" title="Kennismakingsbijeenkomst">Schrijf je nu in voor een
|
|
||||||
kennismaking</a> en laat je inspireren, het verplicht je tot niets.</p>
|
|
||||||
<h2 class="first">Maak kennis met ons!</h2>
|
|
||||||
<!-- <p>Kom op 27 november kennismaken met NH Gooi!</p> -->
|
|
||||||
<p>Laat je uitnodigen voor een kennismaking</p>
|
|
||||||
|
|
||||||
<a class="btn" style="width: fit-content" href="/vacatures/ontmoet-ons" title="Kennismakingsbijeenkomst">
|
|
||||||
<span>Aanmelden</span>
|
|
||||||
</a>
|
|
||||||
<div class="clearfix"></div>
|
|
||||||
|
|
||||||
@if(count($jobs))
|
|
||||||
<h2 class="first">Wie zoeken wij?</h2>
|
|
||||||
<ul>
|
<ul>
|
||||||
@foreach($jobs as $job)
|
<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, programma’s 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>
|
<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 studio’s werkend te houden en te verbeteren? Kun je goed overweg met het opnemen en monteren van promo’s, spotjes en andere audio- en videoproducten? Dan zoeken we jou!</li>
|
||||||
<a class="read_more" href="{{$job->url}}" title="Reageer direct op de vacature {{$job->title}}">
|
|
||||||
<span>{{$job->title}}</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endforeach
|
|
||||||
</ul>
|
</ul>
|
||||||
<div class="clearfix"></div>
|
|
||||||
<div style="margin: 1em; border-bottom: solid 1px #333;"></div>
|
|
||||||
<h2>Niet wat je zoekt?</h2>
|
|
||||||
@endif
|
|
||||||
<a class="btn" style="width: fit-content" href="mailto:meebouwen@nhgooi.nl?subject=Open sollicitatie"
|
|
||||||
title="Mail direct je reactie op deze vacature.">
|
|
||||||
<span>Open sollicitatie</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<div class="clearfix"></div>
|
|
||||||
<blockquote>
|
<blockquote>
|
||||||
Je krijgt bij NH Gooi de kans om jezelf te ontwikkelen. Ik mocht al heel snel mijn eigen programma maken
|
Je krijgt bij NHGooi de kans om jezelf te ontwikkelen. Ik mocht al heel snel mijn eigen programma maken
|
||||||
<span class="author">— Yannick, programmamaker</span>
|
<span class="author">— Yannick, programmamaker</span>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
|
<h3>Bestuur, staf en organisatie</h3>
|
||||||
<h3 class="page_margin_top">Veelgestelde vragen</h3>
|
|
||||||
|
|
||||||
<div class="vraag">
|
|
||||||
<h4 class="vraag-header">Wat kan NH Gooi mij bieden?</h4>
|
|
||||||
<div class="antwoord">
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Een baan als vrijwilliger met toekomst. Veel (ex)collega’s zijn in dienst bij landelijke of
|
<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>
|
||||||
regionale omroepen.
|
<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, foto’s, 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 Petra de Beij: <a href="mailto:petra.deBeij@NHGooi.nl">petra.deBeij@NHGooi.nl</a>.</li>
|
||||||
</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 programma’s 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>
|
||||||
<li>De kans om mee te bouwen aan onze organisatie en programma’s.</li>
|
|
||||||
<li>Een enthousiast team met veel kennis</li>
|
|
||||||
<li>Meer plannen dan we op dit moment kunnen uitvoeren</li>
|
|
||||||
<li>Een organisatie waar je je talenten kan ontdekken</li>
|
|
||||||
<li>Workshops en bijeenkomsten met collega’s</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="vraag">
|
<h2>Vrijwillig maar niet vrijblijvend</h2>
|
||||||
<h4 class="vraag-header">Aan welke voorwaarden moet ik voldoen?</h4>
|
<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>
|
||||||
<div class="antwoord">
|
<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>
|
||||||
Je hebt een band met het Gooi.
|
<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>
|
||||||
Je kunt zelfstandig werken
|
|
||||||
Je bent nieuwsgierig en ondernemend
|
|
||||||
Je wilt graag bij een omroep werken
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="vraag">
|
|
||||||
<h4 class="vraag-header">Kan ik me zonder ervaring ook bij NH Gooi aanmelden?</h4>
|
|
||||||
<div class="antwoord">
|
|
||||||
Ja, de wil om te leren en een flinke dosis enthousiasme is genoeg.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="vraag">
|
|
||||||
<h4 class="vraag-header">Kan ik ook meerdere dingen doen bij NH Gooi?</h4>
|
|
||||||
<div class="antwoord">
|
|
||||||
Ja, dat is geen probleem. Bij NH Gooi is (bijna) alles mogelijk. Het belangrijkste is dat je enthousiast
|
|
||||||
bent en je er echt voor in wil zetten.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="vraag">
|
|
||||||
<h4 class="vraag-header">Ik vind het leuk om mee richting te geven aan NH Gooi, kan dat ook?</h4>
|
|
||||||
<div class="antwoord">
|
|
||||||
Absoluut! Voor de verschillende onderdelen zoeken we ook coördinatoren die mede richting willen geven en
|
|
||||||
anderen kan ondersteunen en stimuleren.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<blockquote>
|
<blockquote>
|
||||||
Produceren, presenteren, reportages maken, monteren; ik kon het allemaal leren bij NH Gooi. Wil je iets met
|
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
|
||||||
radio, ben je van 'wel vrijwillig, maar niet vrijblijvend?' Dan wil ik graag mijn ervaringen met je delen
|
<span class="author">— Michel Stoeltie</span>
|
||||||
<span class="author">— Michel Stoeltie</span>
|
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<div class="vraag">
|
|
||||||
<h4 class="vraag-header">Ik ben 62 jaar, kan ik me dan ook aanmelden?</h4>
|
|
||||||
<div class="antwoord">
|
|
||||||
Uiteraard, wij hebben collega’s van 18 tot 72 jaar
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="vraag">
|
|
||||||
<h4 class="vraag-header">Ik heb een parttimebaan, kan ik me aanmelden?</h4>
|
|
||||||
<div class="antwoord">
|
|
||||||
Ja, als je wilt inzetten voor NH Gooi en we kunnen op je rekenen, dan ben je welkom.
|
|
||||||
Hoeveel tijd je beschikbaar hebt en wanneer is minder belangrijk.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="vraag">
|
|
||||||
<h4 class="vraag-header">Als ik meedoe, hoeveel uur per week ben ik dan bezig?</h4>
|
|
||||||
<div class="antwoord">
|
|
||||||
Of je veel of weinig tijd hebt, dat maakt niet uit. Wel vinden we het belangrijk, als je je in wilt
|
|
||||||
zetten,
|
|
||||||
dat we op je kunnen rekenen.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="vraag">
|
|
||||||
<h4 class="vraag-header">Wat kan ik verwachten van de begeleiding?</h4>
|
|
||||||
<div class="antwoord">
|
|
||||||
Je wordt begeleid door een of meer collega’s van NH Gooi. Dit is afhankelijk wat en hoeveel je voor NH
|
|
||||||
Gooi
|
|
||||||
wilt en kunt doen.
|
|
||||||
Jouw begeleider
|
|
||||||
Is jouw vraagbaak en kent de organisatie en weet wie je kunt benaderen voor specifieke vragen
|
|
||||||
Zet je op het spoor van dingen en mensen die voor jou interessant zijn
|
|
||||||
Maar is geen persoonlijk assistent.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<audio controls>
|
<audio controls>
|
||||||
<source src="{{ url( $apiUrl . 'kerkdienst/download' ) }}" type="audio/mpeg" />
|
<source src="{{ url( $apiUrl . 'kerkdienst/stream' ) }}" type="audio/mpeg" />
|
||||||
</audio>
|
</audio>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -10,7 +10,8 @@
|
|||||||
<!--style-->
|
<!--style-->
|
||||||
<link href='//fonts.googleapis.com/css?family=Roboto:300,400,700' rel='stylesheet' type='text/css'>
|
<link href='//fonts.googleapis.com/css?family=Roboto:300,400,700' rel='stylesheet' type='text/css'>
|
||||||
<link href='//fonts.googleapis.com/css?family=Roboto+Condensed:300,400,700' rel='stylesheet' type='text/css'>
|
<link href='//fonts.googleapis.com/css?family=Roboto+Condensed:300,400,700' rel='stylesheet' type='text/css'>
|
||||||
<!--<link rel="stylesheet" type="text/css" href="/css/reset.css">
|
{{--
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/reset.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/css/superfish.css">
|
<link rel="stylesheet" type="text/css" href="/css/superfish.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/css/jquery.qtip.css">
|
<link rel="stylesheet" type="text/css" href="/css/jquery.qtip.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/css/style.css">
|
<link rel="stylesheet" type="text/css" href="/css/style.css">
|
||||||
@@ -19,11 +20,12 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="/css/responsive.css">
|
<link rel="stylesheet" type="text/css" href="/css/responsive.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/css/odometer-theme-default.css">
|
<link rel="stylesheet" type="text/css" href="/css/odometer-theme-default.css">
|
||||||
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css">
|
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/css/nhgooi.css">-->
|
<link rel="stylesheet" type="text/css" href="/css/nhgooi.css">
|
||||||
|
--}}
|
||||||
<link rel="stylesheet" type="text/css" href="/css/prettyPhoto.css">
|
<link rel="stylesheet" type="text/css" href="/css/prettyPhoto.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/css/bootstrap-grid.min.css">
|
<link rel="stylesheet" type="text/css" href="/css/bootstrap-grid.min.css">
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
<link rel="stylesheet" type="text/css" href="/css/style.css">
|
<link rel="stylesheet" type="text/css" href="/css/style.css?<?= filemtime("../public/css/style.css"); ?>" />
|
||||||
<meta property="fb:app_id" content="133349980094758" />
|
<meta property="fb:app_id" content="133349980094758" />
|
||||||
<meta property="og:site_name" content="NH Gooi" />
|
<meta property="og:site_name" content="NH Gooi" />
|
||||||
<?php if(isset($metadata)) {
|
<?php if(isset($metadata)) {
|
||||||
@@ -35,9 +37,11 @@
|
|||||||
} ?>
|
} ?>
|
||||||
@stack('styles')
|
@stack('styles')
|
||||||
<link rel="shortcut icon" href="/favicon.ico">
|
<link rel="shortcut icon" href="/favicon.ico">
|
||||||
|
{{--
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||||
|
--}}
|
||||||
<link rel="manifest" href="/site.webmanifest">
|
<link rel="manifest" href="/site.webmanifest">
|
||||||
<!--rss-->
|
<!--rss-->
|
||||||
<link rel="alternate" type="application/rss+xml" title="Abonneren op NH Gooi Nieuws" href="{{env('API_URL')}}rss/nieuws" />
|
<link rel="alternate" type="application/rss+xml" title="Abonneren op NH Gooi Nieuws" href="{{env('API_URL')}}rss/nieuws" />
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
<a href="https://wa.me/31888505651" target="_blank">Tip <i class="fa-solid fa-circle-plus"></i></a>
|
<a href="https://wa.me/31888505651" target="_blank">Tip <i class="fa-solid fa-circle-plus"></i></a>
|
||||||
</li>
|
</li>
|
||||||
@if(isset($searchURL))
|
@if(isset($searchURL))
|
||||||
<li>
|
<li class="search">
|
||||||
<form class="search_form" action="{{url($searchURL)}}">
|
<form class="search_form" action="{{url($searchURL)}}">
|
||||||
<input type="text" name="query" placeholder="Zoeken..."
|
<input type="text" name="query" placeholder="Zoeken..."
|
||||||
value="{{isset($query) ? $query : null}}" class="search_input">
|
value="{{isset($query) ? $query : null}}" class="search_input">
|
||||||
@@ -67,13 +67,13 @@
|
|||||||
<a class="player with_svg_icon" href="{{url('luister/live')}}"><span>Luister live radio </span>{!!file_get_contents(__DIR__ . '/../../../public/images/icons/radio.svg')!!}</a>
|
<a class="player with_svg_icon" href="{{url('luister/live')}}"><span>Luister live radio </span>{!!file_get_contents(__DIR__ . '/../../../public/images/icons/radio.svg')!!}</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="with_svg_icon" href="{{url('kijk/studio')}}"><span>Kijk live tv </span>{!!file_get_contents(__DIR__ . '/../../../public/images/icons/television-2.svg')!!}</a>
|
<a class="with_svg_icon" href="{{url('kijk/live')}}"><span>Kijk live tv </span>{!!file_get_contents(__DIR__ . '/../../../public/images/icons/television-2.svg')!!}</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="https://wa.me/31888505651" style="{{!isset($searchURL) ? 'margin-top: 3px' : ''}}" target="_blank"><span>Tip de streekredactie </span><i style="margin-top: 2px" class="fa-solid fa-circle-plus"></i></a>
|
<a href="https://wa.me/31888505651" style="{{!isset($searchURL) ? 'margin-top: 3px' : ''}}" target="_blank"><span>Tip de streekredactie </span><i style="margin-top: 2px" class="fa-solid fa-circle-plus"></i></a>
|
||||||
</li>
|
</li>
|
||||||
@if(isset($searchURL))
|
@if(isset($searchURL))
|
||||||
<li>
|
<li class="search">
|
||||||
<form class="search_form" action="{{url($searchURL)}}">
|
<form class="search_form" action="{{url($searchURL)}}">
|
||||||
<input type="text" name="query" placeholder="Zoeken..."
|
<input type="text" name="query" placeholder="Zoeken..."
|
||||||
value="{{isset($query) ? $query : null}}" class="search_input">
|
value="{{isset($query) ? $query : null}}" class="search_input">
|
||||||
@@ -93,13 +93,6 @@
|
|||||||
|
|
||||||
<div class="page @yield('page_container_class')">
|
<div class="page @yield('page_container_class')">
|
||||||
<a name="top"></a>
|
<a name="top"></a>
|
||||||
@if($activeBlog != null)
|
|
||||||
<p style="float: left; border: solid 1px #1f3977; border-radius: 10px; padding: 0 10px 0.4em 10px; margin: 10px 0 10px 0; width: 100%;">
|
|
||||||
<b>Live-blog:</b> {{$activeBlog->title}}
|
|
||||||
<a href="{{$activeBlog->url}}" class="action_button" style="float: none; margin-left: 1em;"><span
|
|
||||||
class="fa fa-rss"></span><span>Volg het live-blog</span></a>
|
|
||||||
</p>
|
|
||||||
@endif
|
|
||||||
@yield('page')
|
@yield('page')
|
||||||
</div><!--/.page-->
|
</div><!--/.page-->
|
||||||
|
|
||||||
@@ -110,17 +103,18 @@
|
|||||||
<div class="col-12 col-md-3">
|
<div class="col-12 col-md-3">
|
||||||
<h4 class="box_header"><span>NH Gooi</span></h4>
|
<h4 class="box_header"><span>NH Gooi</span></h4>
|
||||||
<p class="about">
|
<p class="about">
|
||||||
NH Gooi is de streekomroep voor Gooi & Vechtstreek. Wij bieden een gevarieerd programma op
|
NH Gooi is de streekomroep voor Gooi & Vechtstreek. Wij brengen nieuws en achtergronden
|
||||||
radio, podcasts, tv en online met muziek, achtergronden en actueel regionieuws.
|
op onze website, radio en televisie. Daarnaast brengen we boeiende en belangrijke podcasts
|
||||||
|
en een gevariëerd programma-aanbod op al onze media-kanalen.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 col-md-3">
|
<div class="col-12 col-md-3">
|
||||||
<h4 class="box_header"><span style="height: 30px;display: block;width: 0;"></span></h4>
|
<h4 class="box_header"><span style="height: 30px;display: block;width: 0;"></span></h4>
|
||||||
<p class="about">
|
<p class="about">
|
||||||
Altijd op de hoogte blijven van nieuws en achtergronden uit de regio? <a href="{{url('app')}}">Download onze app</a>.
|
Altijd op de hoogte blijven van nieuws en achtergronden uit de regio? <span class="fas fa-mobile"></span> <a href="{{url('app')}}">Download onze app</a>.
|
||||||
</p>
|
</p>
|
||||||
<p class="about">
|
<p class="about">
|
||||||
<a href="{{url('frequenties')}}">Klik hier</a> waar je ons kunt zien en horen.
|
<span class="fa fa-list"></span> <a href="{{url('frequenties')}}">Bekijk hier</a> waar je ons kunt zien en horen.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 col-md-3">
|
<div class="col-12 col-md-3">
|
||||||
|
|||||||
@@ -42,8 +42,8 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@if(!$isStream && $canDownload)
|
@if(!$isStream && $canDownload !== false)
|
||||||
<a href="{{$source}}" class="action_button">
|
<a href="{{$canDownload}}" class="action_button">
|
||||||
<span class="fa fa-download"></span><span>Download .mp3-bestand</span>
|
<span class="fa fa-download"></span><span>Download .mp3-bestand</span>
|
||||||
</a>
|
</a>
|
||||||
@endif
|
@endif
|
||||||
@@ -52,7 +52,6 @@
|
|||||||
<span class="fa fa-music"></span><span>Schakel naar live-uitzending</span>
|
<span class="fa fa-music"></span><span>Schakel naar live-uitzending</span>
|
||||||
</a>
|
</a>
|
||||||
@endif
|
@endif
|
||||||
</p>
|
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
<div class="podcast_items">
|
<div class="podcast_items">
|
||||||
<h4 class="box_header small"><span>Fragment gemist</span></h4>
|
<h4 class="box_header small"><span>Fragment gemist</span></h4>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
@include('partial/podcastitems', ['showTime' => false, 'showImage' => false, 'podcasts' => $podcasts])
|
@include('partial/podcastitems', ['showTime' => false, 'showImage' => false, 'podcasts' => $podcasts, 'isPodcast' => false])
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
<div class="announcement">
|
<div class="announcement">
|
||||||
<div>
|
<div>
|
||||||
<audio controls>
|
<audio controls>
|
||||||
<source src="{{ $url = url( $apiUrl . "podcast/download" . $item->podcast->url . "?auth=" . $item->podcast->auth )}}" type="audio/mpeg" />
|
<source src="{{ $url = url( $apiUrl . "podcast/stream" . $item->podcast->url . "?auth=" . $item->podcast->auth )}}" type="audio/mpeg" />
|
||||||
</audio>
|
</audio>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<div>
|
<div>
|
||||||
@foreach($podcasts as $podcast)
|
@foreach($podcasts as $podcast)
|
||||||
<?php
|
<?php
|
||||||
$url = route('gemist.fragment') . $podcast->url;
|
$url = ($isPodcast ? '/podcast/aflevering' : '/gemist/fragment') . $podcast->url;
|
||||||
$popoutUrl = route('luister.podcast') . $podcast->url . '?auth=' . $podcast->auth;
|
$popoutUrl = route('luister.podcast') . $podcast->url . '?auth=' . $podcast->auth;
|
||||||
?>
|
?>
|
||||||
<div class="box full-width featured">
|
<div class="box full-width featured">
|
||||||
@@ -15,16 +15,16 @@
|
|||||||
<h2 class="post_title"><a href="{{$url}}" title="{{$podcast->title}}">{!!$podcast->titleWithoutProgram()!!}</a></h2>
|
<h2 class="post_title"><a href="{{$url}}" title="{{$podcast->title}}">{!!$podcast->titleWithoutProgram()!!}</a></h2>
|
||||||
<div class="sub_title">
|
<div class="sub_title">
|
||||||
@if ($podcast->program)
|
@if ($podcast->program)
|
||||||
<a class="program_name" href="{{ route('programma') . $podcast->program->url }}"
|
<a class="program_name" href="/{{ ($isPodcast ? 'podcast' : 'programma') . $podcast->program->url }}"
|
||||||
title="{{$podcast->program->name}}">{{$podcast->program->name}}</a>
|
title="{{$podcast->program->name}}">{{$podcast->program->name}}</a>
|
||||||
@endif
|
@endif
|
||||||
<span class="post_date" title="{{Formatter::relativeDate($podcast->created)}}">
|
<span class="post_date" title="{{Formatter::relativeDate($podcast->created)}}">
|
||||||
<i class="fa-regular fa-clock"></i> {{Formatter::relativeDate($podcast->created)}}
|
<i class="fa-regular fa-clock"></i> {{Formatter::relativeDate($podcast->created)}}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="clipText clipText-7" title="{{strip_tags($podcast->content)}}">
|
<div class="clipText clipText-7" title="{{strip_tags($podcast->content)}}">
|
||||||
{!!$podcast->content!!}
|
{!!$podcast->content!!}
|
||||||
</p>
|
</div>
|
||||||
<a class="action_button btn player" href="{{$popoutUrl}}">
|
<a class="action_button btn player" href="{{$popoutUrl}}">
|
||||||
<span class="fa fa-external-link-alt"></span>
|
<span class="fa fa-external-link-alt"></span>
|
||||||
<span>Luister in nieuw venster</span>
|
<span>Luister in nieuw venster</span>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ $actionButton = array_merge([
|
|||||||
?>
|
?>
|
||||||
<ul id="{{$id ?? ''}}" class="{{$ul['class']}}">
|
<ul id="{{$id ?? ''}}" class="{{$ul['class']}}">
|
||||||
@foreach($podcasts as $podcast)
|
@foreach($podcasts as $podcast)
|
||||||
<?php $url = route('gemist.fragment') . $podcast->url; ?>
|
<?php $url = ($isPodcast ? '/podcast/aflevering' : '/gemist/fragment') . $podcast->url; ?>
|
||||||
<li style="{{$li['style']}}" class="post {{$li['class']}}">
|
<li style="{{$li['style']}}" class="post {{$li['class']}}">
|
||||||
<div style="{{$content['style']}}" class="post_content {{$content['class']}}">
|
<div style="{{$content['style']}}" class="post_content {{$content['class']}}">
|
||||||
<h2 class="post_title">
|
<h2 class="post_title">
|
||||||
@@ -43,9 +43,9 @@ $actionButton = array_merge([
|
|||||||
</a>
|
</a>
|
||||||
@endif
|
@endif
|
||||||
@if($body['show'])
|
@if($body['show'])
|
||||||
<p class="post_body {{$body['class']}}">
|
<div class="post_body {{$body['class']}}">
|
||||||
{!!$podcast->content!!}
|
{!!$podcast->content!!}
|
||||||
</p>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
@if(isset($showAction) && $showAction)
|
@if(isset($showAction) && $showAction)
|
||||||
<div class="action_button {{$actionButton['class']}}">
|
<div class="action_button {{$actionButton['class']}}">
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
<a class="box full-width full-height" href="{{route('programma') . $item['program']->url}}"
|
<a class="box full-width full-height" href="{{route('programma') . $item['program']->url}}"
|
||||||
title="{{$item['program']->name . ($item['program']->tagline ? "\n" . $item['program']->tagline : "")}}">
|
title="{{$item['program']->name . ($item['program']->tagline ? "\n" . $item['program']->tagline : "")}}">
|
||||||
<img src="{{$item['program']->image ?? 'images/noimage.png'}}">
|
<img src="{{$item['program']->image ?? 'images/noimage.png'}}">
|
||||||
<div class="program-title">
|
|
||||||
@if($isCurrent)
|
@if($isCurrent)
|
||||||
<div class="current-marker"><span>On air</span></div>
|
<div href="{{route('luister.live')}}" class="onair" title="Nu live!">Nu live!</div>
|
||||||
@endif
|
@endif
|
||||||
|
<div class="program-title">
|
||||||
{{$item['program']->name}}
|
{{$item['program']->name}}
|
||||||
</div>
|
</div>
|
||||||
<div class="program-times"><i class="fa-regular fa-clock"></i>
|
<div class="program-times"><i class="fa-regular fa-clock"></i>
|
||||||
@@ -26,5 +26,5 @@
|
|||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
|
||||||
|
|
||||||
|
@endforeach
|
||||||
|
|||||||
@@ -3,10 +3,12 @@
|
|||||||
@include('widgets/mediaplayer')
|
@include('widgets/mediaplayer')
|
||||||
|
|
||||||
@section('title')
|
@section('title')
|
||||||
@if ($podcast)
|
@if($podcast)
|
||||||
Fragment gemist
|
{{ $podcast->title }}
|
||||||
|
@elseif($isPodcast)
|
||||||
|
NH Gooi Podcast
|
||||||
@else
|
@else
|
||||||
Fragment {{$title}} niet gevonden
|
Fragment gemist
|
||||||
@endif
|
@endif
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@@ -18,14 +20,18 @@
|
|||||||
<ul class="bread_crumb">
|
<ul class="bread_crumb">
|
||||||
<li><a title="Home" href="/">Home</a></li>
|
<li><a title="Home" href="/">Home</a></li>
|
||||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||||
<li><a title="Fragment gemist" href="{{route('gemist')}}">Fragment gemist</a></li>
|
@if($isPodcast)
|
||||||
|
<li>NH Gooi podcast</li>
|
||||||
|
@else
|
||||||
|
<li><a title="Home" href="/gemist/fragment">Fragment gemist</a></li>
|
||||||
|
@endif
|
||||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||||
@if($podcast && $podcast->program)
|
@if($podcast && $podcast->program)
|
||||||
<li><a title="{{$podcast->program->name}}"
|
<li><a title="{{$podcast->program->name}}"
|
||||||
href="{{route('gemist.programma') . $podcast->program->url}}">{{$podcast->program->name}}</a></li>
|
href="{{route('gemist.programma') . $podcast->program->url}}">{{$podcast->program->name}}</a></li>
|
||||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||||
@endif
|
@endif
|
||||||
<li>Fragment</li>
|
<li>{{ $podcast->title }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@@ -84,6 +90,7 @@
|
|||||||
@if ($podcast)
|
@if ($podcast)
|
||||||
<?php
|
<?php
|
||||||
$audioUrl = url($apiUrl . 'podcast/download' . $podcast->url . "?auth=" . $podcast->auth);
|
$audioUrl = url($apiUrl . 'podcast/download' . $podcast->url . "?auth=" . $podcast->auth);
|
||||||
|
$streamUrl = url($apiUrl . 'podcast/stream' . $podcast->url . "?auth=" . $podcast->auth);
|
||||||
$popoutUrl = route('luister.podcast') . $podcast->url . '?auth=' . $podcast->auth;
|
$popoutUrl = route('luister.podcast') . $podcast->url . '?auth=' . $podcast->auth;
|
||||||
?>
|
?>
|
||||||
|
|
||||||
@@ -91,7 +98,6 @@
|
|||||||
<div class="row news_post">
|
<div class="row news_post">
|
||||||
<div class="col-12 col-md content_container">
|
<div class="col-12 col-md content_container">
|
||||||
<div class="box full-width post single small_image md_margin_top">
|
<div class="box full-width post single small_image md_margin_top">
|
||||||
<h1 class="page_title">{{$podcast->title}}</h1>
|
|
||||||
<div class="post_body">
|
<div class="post_body">
|
||||||
<ul class="post_details clearfix">
|
<ul class="post_details clearfix">
|
||||||
<li class="detail date">
|
<li class="detail date">
|
||||||
@@ -100,14 +106,14 @@
|
|||||||
</li>
|
</li>
|
||||||
@if($podcast->program)
|
@if($podcast->program)
|
||||||
<li class="detail author">
|
<li class="detail author">
|
||||||
<a href="{{ route('programma') . $podcast->program->url }}">{{ $podcast->program->name }}</a>
|
<a href="/{{ ($isPodcast ? 'podcast' : 'programma') . $podcast->program->url }}">{{ $podcast->program->name }}</a>
|
||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="announcement">
|
<div class="announcement">
|
||||||
<audio controls>
|
<audio controls>
|
||||||
<source src="{{$audioUrl}}" type="audio/mpeg"/>
|
<source src="{{$streamUrl}}" type="audio/mpeg"/>
|
||||||
</audio>
|
</audio>
|
||||||
<div class="clearfix">
|
<div class="clearfix">
|
||||||
<a class="action_button btn" href="{{$audioUrl}}" title="Download dit fragment als MP3">
|
<a class="action_button btn" href="{{$audioUrl}}" title="Download dit fragment als MP3">
|
||||||
@@ -150,15 +156,15 @@
|
|||||||
<div data-tabs>
|
<div data-tabs>
|
||||||
<div class="tabs">
|
<div class="tabs">
|
||||||
<h4 data-tab-content-id="tab_more_fragmenten"
|
<h4 data-tab-content-id="tab_more_fragmenten"
|
||||||
class="box_header small flex-grow-1 active"><span>Meer fragmenten</span>
|
class="box_header small flex-grow-1 active"><span>Meer {{$isPodcast ? 'afleveringen' : 'fragmenten'}}</span>
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="tab_more_fragmenten" class="box tab_content podcast_items active">
|
<div id="tab_more_fragmenten" class="box tab_content podcast_items active">
|
||||||
@include('partial/podcastitems', ['id' => 'items-podcasts', 'showTime' => false, 'showImage' => false, 'podcasts' => $podcasts])
|
@include('partial/podcastitems', ['id' => 'items-podcasts', 'showTime' => false, 'showImage' => false, 'podcasts' => $podcasts, 'isPodcast' => $isPodcast])
|
||||||
<a class="btn auto_width" id="meer-nieuws-more-podcast" href="#"
|
<a class="btn auto_width" id="meer-nieuws-more-podcast" href="#"
|
||||||
data-loadmorenews='{"container":["#items-podcasts"]}'>
|
data-loadmorenews='{"container":["#items-podcasts"]}'>
|
||||||
<span class="fas fa-spinner fa-spin" id="loading"></span>
|
<span class="fas fa-spinner fa-spin" id="loading"></span>
|
||||||
Meer fragmenten
|
Meer {{$isPodcast ? 'afleveringen' : 'fragmenten'}}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -79,7 +79,8 @@
|
|||||||
'class' => 'd-flex flex-column justify-content-end flex-grow-1'
|
'class' => 'd-flex flex-column justify-content-end flex-grow-1'
|
||||||
],
|
],
|
||||||
'showAction' => true,
|
'showAction' => true,
|
||||||
'podcasts' => array_slice($podcasts, 0, 8)])
|
'podcasts' => array_slice($podcasts, 0, 8),
|
||||||
|
'isPodcast' => $isPodcast])
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@else
|
@else
|
||||||
@@ -98,7 +99,7 @@
|
|||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="tab_more_fragmenten" class="box tab_content podcast_items active">
|
<div id="tab_more_fragmenten" class="box tab_content podcast_items active">
|
||||||
@include('partial/podcastitems', ['id' => 'items-podcasts', 'showTime' => false, 'showImage' => false, 'podcasts' => array_slice($podcasts, 8)])
|
@include('partial/podcastitems', ['id' => 'items-podcasts', 'showTime' => false, 'showImage' => false, 'podcasts' => array_slice($podcasts, 8), 'isPodcast' => $isPodcast])
|
||||||
<a class="btn auto_width" id="meer-nieuws-more-podcast" href="#"
|
<a class="btn auto_width" id="meer-nieuws-more-podcast" href="#"
|
||||||
data-loadmorenews='{"container":["#items-podcasts"]}'>
|
data-loadmorenews='{"container":["#items-podcasts"]}'>
|
||||||
<span class="fas fa-spinner fa-spin" id="loading"></span>
|
<span class="fas fa-spinner fa-spin" id="loading"></span>
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
@extends('layouts/full')
|
@extends('layouts/full')
|
||||||
|
|
||||||
@section('title')
|
@section('title')
|
||||||
Fragment gemist
|
@if(isset($program))
|
||||||
|
{{ $program->name }}
|
||||||
|
@else
|
||||||
|
NH Gooi Podcast
|
||||||
|
@endif
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('page_class')
|
@section('page_class')
|
||||||
@@ -12,14 +16,12 @@
|
|||||||
<ul class="bread_crumb ">
|
<ul class="bread_crumb ">
|
||||||
<li><a title="Home" href="/">Home</a></li>
|
<li><a title="Home" href="/">Home</a></li>
|
||||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||||
<li><a title="Fragment gemist" href="{{route('gemist')}}">Fragment gemist</a></li>
|
<li>NH Gooi podcast</li>
|
||||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
|
||||||
@if(isset($program))
|
@if(isset($program))
|
||||||
<li><a title="{{$program->name}}"
|
|
||||||
href="{{route('gemist.programma') . $program->url}}">{{$program->name}}</a></li>
|
|
||||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||||
|
<li><a title="{{$program->name}}"
|
||||||
|
href="/podcast{{$program->url}}">{{$program->name}}</a></li>
|
||||||
@endif
|
@endif
|
||||||
<li>Fragmenten</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@@ -28,8 +30,7 @@
|
|||||||
<div class="row news_post">
|
<div class="row news_post">
|
||||||
<div class="col-12 col-md content_container md_padding_top_80">
|
<div class="col-12 col-md content_container md_padding_top_80">
|
||||||
@if(isset($program))
|
@if(isset($program))
|
||||||
<div class="box full-width post single">
|
<div class="no-box full-width post single">
|
||||||
<h1 class="page_title">{{$program->name}}</h1>
|
|
||||||
<div class="post_body">
|
<div class="post_body">
|
||||||
<div class="content_box clearfix section_margin_top">
|
<div class="content_box clearfix section_margin_top">
|
||||||
<div class="post_content page_margin_top_section ">
|
<div class="post_content page_margin_top_section ">
|
||||||
@@ -43,12 +44,12 @@
|
|||||||
|
|
||||||
<div class="page_layout clearfix">
|
<div class="page_layout clearfix">
|
||||||
<div class="grid" id="items">
|
<div class="grid" id="items">
|
||||||
@include('partial/podcastdirectitems', ['podcasts' => array_slice($podcasts, 0, 2)])
|
@include('partial/podcastdirectitems', ['podcasts' => array_slice($podcasts, 0, 2), 'isPodcast' => $isPodcast])
|
||||||
</div><!--/.row-->
|
</div><!--/.row-->
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
<div class="box full-width">
|
<div class="box full-width">
|
||||||
<p class="page_body">Er zijn geen fragmenten beschikbaar.</p>
|
<p class="page_body">Er zijn geen items beschikbaar.</p>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
@@ -62,7 +63,7 @@
|
|||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="tab_more_fragmenten" class="box tab_content podcast_items active">
|
<div id="tab_more_fragmenten" class="box tab_content podcast_items active">
|
||||||
@include('partial/podcastitems', ['id' => 'items-podcasts', 'showTime' => false, 'showImage' => false, 'podcasts' => array_slice($podcasts, 2)])
|
@include('partial/podcastitems', ['id' => 'items-podcasts', 'showTime' => false, 'showImage' => false, 'podcasts' => array_slice($podcasts, 2), 'isPodcast' => $isPodcast])
|
||||||
<a class="btn auto_width" id="meer-nieuws-more-podcast" href="#"
|
<a class="btn auto_width" id="meer-nieuws-more-podcast" href="#"
|
||||||
data-loadmorenews='{"container":["#items-podcasts"]}'>
|
data-loadmorenews='{"container":["#items-podcasts"]}'>
|
||||||
<span class="fas fa-spinner fa-spin" id="loading"></span>
|
<span class="fas fa-spinner fa-spin" id="loading"></span>
|
||||||
|
|||||||
@@ -15,5 +15,38 @@
|
|||||||
@section('content')
|
@section('content')
|
||||||
<div class="page_body">
|
<div class="page_body">
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<p>Bij NHGooi respecteren we uw privacy en zorgen we ervoor dat uw persoonlijke gegevens vertrouwelijk worden behandeld. Deze privacyverklaring legt uit welke gegevens we verzamelen, hoe we deze gebruiken en beschermen, en wat uw rechten zijn.</p>
|
||||||
|
|
||||||
|
<h2>1. Welke gegevens verzamelen we?</h2>
|
||||||
|
<p>Wij kunnen de volgende persoonsgegevens verzamelen:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Naam</li>
|
||||||
|
<li>E-mailadres</li>
|
||||||
|
<li>Telefoonnummer</li>
|
||||||
|
<li>Adresgegevens</li>
|
||||||
|
<li>Gebruiksgegevens van de website (zoals IP-adres en browserinformatie)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>2. Hoe gebruiken we uw gegevens?</h2>
|
||||||
|
<p>Wij gebruiken uw gegevens voor de volgende doeleinden:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Verlenen en verbeteren van onze diensten</li>
|
||||||
|
<li>Contact opnemen voor servicegerichte of marketingdoeleinden</li>
|
||||||
|
<li>Analyseren van websitegebruik voor verbetering van onze diensten en website</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>3. Bescherming van uw gegevens</h2>
|
||||||
|
<p>Wij nemen passende technische en organisatorische maatregelen om uw persoonsgegevens te beschermen tegen verlies, misbruik en onbevoegde toegang.</p>
|
||||||
|
|
||||||
|
<h2>4. Delen van gegevens</h2>
|
||||||
|
<p>Wij delen uw persoonsgegevens niet met derden, tenzij dit noodzakelijk is voor de uitvoering van onze diensten of als wij wettelijk verplicht zijn dit te doen.</p>
|
||||||
|
|
||||||
|
<h2>5. Uw rechten</h2>
|
||||||
|
<p>U heeft het recht om uw persoonsgegevens in te zien, te corrigeren of te verwijderen. Daarnaast kunt u bezwaar maken tegen de verwerking van uw persoonsgegevens of vragen om beperking van de verwerking.</p>
|
||||||
|
|
||||||
|
<h2>6. Contact</h2>
|
||||||
|
<p>Voor vragen over deze privacyverklaring of uw persoonsgegevens kunt u contact met ons opnemen via <a href="mailto:info@nhgooi.nl">info@nhgooi.nl</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -129,7 +129,7 @@
|
|||||||
<div id="host" class="box">
|
<div id="host" class="box">
|
||||||
<ul class="list">
|
<ul class="list">
|
||||||
@foreach($hosts as $host)
|
@foreach($hosts as $host)
|
||||||
<li><i class="fa-solid fa-user-tie"></i> {{ Html::mailto($host->email . '@nhgooi.nl', $host->name, ['class' => 'action_button']) }}</li>
|
<li><i class="fa-solid fa-user-tie"></i> {{ $host->name }}</li>
|
||||||
@endforeach
|
@endforeach
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<h2>Contact met de redactie</h2>
|
<h2>Contact met de redactie</h2>
|
||||||
<p>Heb jij een tip voor onze streekredactie? Bel of app de tiplijn:
|
<p>Heb jij een tip voor onze streekredactie? Bel of app de tiplijn:
|
||||||
<a href="tel:06 - 42 91 36 37" target="_blank">06 - 42 91 36 37</a>, stuur een
|
<a href="tel:06 - 42 91 36 37" target="_blank">06 - 42 91 36 37</a>, stuur een
|
||||||
<a href="mailto:info@nhgooi.nl">mail</a> of kom lang op de Gooise Brink,
|
<a href="mailto:info@nhgooi.nl">mail</a> of kom langs op de Gooise Brink,
|
||||||
Kerkstraat 63/27 in Hilversum</p>
|
Kerkstraat 63/27 in Hilversum</p>
|
||||||
<a class="read_more" href="{{url('contact')}}">Lees meer <i class="fa-solid fa-angle-right"></i></a>
|
<a class="read_more" href="{{url('contact')}}">Contactinformatie <i class="fa-solid fa-angle-right"></i></a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -23,11 +23,11 @@
|
|||||||
"Podcasts" => array(
|
"Podcasts" => array(
|
||||||
"" => "/podcast",
|
"" => "/podcast",
|
||||||
"NH Gooi Spreekuur" => "/podcast/1091/nh-gooi-spreekuur",
|
"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",
|
"Hilversum in de oorlog" => "/podcast/1097/hilversum-in-de-oorlog",
|
||||||
"Duurzaam Gooi" => "/podcast/1076/podcast-duurzaam-gooi"
|
|
||||||
),
|
),
|
||||||
"Gemist" => "/gemist/programma",
|
"Gemist" => "/gemist/programma",
|
||||||
"Regioagenda" => "/agenda",
|
"Streekagenda" => "/agenda",
|
||||||
"Over NH Gooi" => array(
|
"Over NH Gooi" => array(
|
||||||
"" => "/contact",
|
"" => "/contact",
|
||||||
"Contact" => "/contact",
|
"Contact" => "/contact",
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
"Klachtenregeling" => "/klachten",
|
"Klachtenregeling" => "/klachten",
|
||||||
"Rol en ambities lokale nieuwsvoorziening" => "/uploads/Eigen rol en ambities NH Gooi binnen de lokale nieuwsvoorziening.pdf",
|
"Rol en ambities lokale nieuwsvoorziening" => "/uploads/Eigen rol en ambities NH Gooi binnen de lokale nieuwsvoorziening.pdf",
|
||||||
"Frequenties" => "/frequenties",
|
"Frequenties" => "/frequenties",
|
||||||
"App" => "/app"
|
"NH Gooi-app" => "/app"
|
||||||
),
|
),
|
||||||
"Adverteren" => "/adverteren"
|
"Adverteren" => "/adverteren"
|
||||||
);
|
);
|
||||||
@@ -119,13 +119,9 @@ 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) ? "selected" : ""}}">
|
<li class="{{isActive('/', false) || isActive('/nieuws', false) ? "selected" : ""}}">
|
||||||
<a href="/" title="Home">Home</a>
|
<a href="/" title="Nieuws">Nieuws</a>
|
||||||
</li>
|
</li>
|
||||||
<?php /*@php($newsUrl = '/nieuws')
|
|
||||||
<li class="{{isActive($newsUrl, false) ? "selected" : ""}}">
|
|
||||||
<a href="{{$newsUrl}}" title="Nieuws">Nieuws</a>
|
|
||||||
</li>*/ ?>
|
|
||||||
{!! buildMenu($menu, false) !!}
|
{!! buildMenu($menu, false) !!}
|
||||||
<li></li>
|
<li></li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -142,12 +138,8 @@ 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) ? "selected" : ""}}">
|
<li class="{{isActive('/', false) || isActive('/nieuws', false) ? "selected" : ""}}">
|
||||||
<a href="/" title="Home">Home</a>
|
<a href="/" title="Nieuws">Nieuws</a>
|
||||||
</li>
|
|
||||||
@php($newsUrl = '/nieuws')
|
|
||||||
<li class="{{isActive($newsUrl, false) ? "selected" : ""}}">
|
|
||||||
<a href="{{$newsUrl}}" title="Nieuws">Nieuws</a>
|
|
||||||
</li>
|
</li>
|
||||||
{!! buildMenu($menu, true) !!}
|
{!! buildMenu($menu, true) !!}
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -33,9 +33,11 @@
|
|||||||
$(document).on('onAirUpdated', function (evt, data) {
|
$(document).on('onAirUpdated', function (evt, data) {
|
||||||
var title = data.current ? data.current.title : '';
|
var title = data.current ? data.current.title : '';
|
||||||
var artist = data.current ? data.current.artist : '';
|
var artist = data.current ? data.current.artist : '';
|
||||||
if (data.inProgram) {
|
if (!data.current) {
|
||||||
title = data.program.name;
|
// title = data.program.name;
|
||||||
artist = data.program.tagline;
|
// artist = data.program.tagline;
|
||||||
|
$nowPlaying.container.slideUp();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
$nowPlaying.title.text(title).attr('title', title);
|
$nowPlaying.title.text(title).attr('title', title);
|
||||||
$nowPlaying.artist.text(artist).attr('title', artist);
|
$nowPlaying.artist.text(artist).attr('title', artist);
|
||||||
|
|||||||
@@ -69,10 +69,10 @@ Route::get('/gemist/fragment/{id}/{title}', 'RadioController@podcast')->where(['
|
|||||||
Route::get('/gemist/programma', 'RadioController@terugluisteren')->name('gemist.programma');
|
Route::get('/gemist/programma', 'RadioController@terugluisteren')->name('gemist.programma');
|
||||||
Route::get('/gemist/programma/{programma}/{title}', 'RadioController@podcasts')->where(['programma' => '\d+']);
|
Route::get('/gemist/programma/{programma}/{title}', 'RadioController@podcasts')->where(['programma' => '\d+']);
|
||||||
|
|
||||||
Route::get('/podcast/{programma}/{title}', 'PodcastController@podcasts')->where(['programma' => '\d+']);
|
Route::get('/podcast/{programma}/{title}', 'PodcastController@podcasts')->where(['programma' => '\d+'])->name('podcast.overzicht');
|
||||||
Route::get('/podcast/fragment/{id}/{title}', 'RadioController@podcast')->where(['id' => '\d+', 'title' => '.*']);
|
Route::get('/podcast/fragment/{id}/{title}', 'RadioController@podcast')->where(['id' => '\d+', 'title' => '.*']);
|
||||||
Route::get('/podcast/aflevering/{id}/{title}', 'PodcastController@podcast')->where(['id' => '\d+']);
|
Route::get('/podcast/aflevering/{id}/{title}', 'PodcastController@podcast')->where(['id' => '\d+']);
|
||||||
Route::get('/podcast/zoeken/{query}', 'RadioController@searchpodcast')->name('gemist.zoeken');
|
Route::get('/podcast/zoeken/{query}', 'RadioController@searchpodcast')->name('podcast.zoeken');
|
||||||
Route::get('/podcast/zoeken', function(Illuminate\Http\Request $request) {
|
Route::get('/podcast/zoeken', function(Illuminate\Http\Request $request) {
|
||||||
if($query = $request->get('query', null)) {
|
if($query = $request->get('query', null)) {
|
||||||
return redirect('/podcast/zoeken/' . urlencode($query));
|
return redirect('/podcast/zoeken/' . urlencode($query));
|
||||||
|
|||||||
26
vendor/composer/autoload_classmap.php
vendored
26
vendor/composer/autoload_classmap.php
vendored
@@ -2646,19 +2646,19 @@ return array(
|
|||||||
'Mockery\\Undefined' => $vendorDir . '/mockery/mockery/library/Mockery/Undefined.php',
|
'Mockery\\Undefined' => $vendorDir . '/mockery/mockery/library/Mockery/Undefined.php',
|
||||||
'Mockery\\VerificationDirector' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationDirector.php',
|
'Mockery\\VerificationDirector' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationDirector.php',
|
||||||
'Mockery\\VerificationExpectation' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationExpectation.php',
|
'Mockery\\VerificationExpectation' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationExpectation.php',
|
||||||
'Model\\Blog' => '/srv/api/common/classes/Blog.php',
|
'Model\\Blog' => $baseDir . '/app/Models/Blog.php',
|
||||||
'Model\\CalendarEvent' => '/srv/api/common/classes/CalendarEvent.php',
|
'Model\\CalendarEvent' => $baseDir . '/app/Models/CalendarEvent.php',
|
||||||
'Model\\JobOpening' => '/srv/api/common/classes/JobOpening.php',
|
'Model\\JobOpening' => $baseDir . '/app/Models/JobOpening.php',
|
||||||
'Model\\Kerkdienst' => '/srv/api/common/classes/Kerkdienst.php',
|
'Model\\Kerkdienst' => $baseDir . '/app/Models/Kerkdienst.php',
|
||||||
'Model\\MetaData' => '/srv/api/common/classes/MetaData.php',
|
'Model\\MetaData' => $baseDir . '/app/Models/MetaData.php',
|
||||||
'Model\\Model' => '/srv/api/common/classes/Model.php',
|
'Model\\Model' => $baseDir . '/app/Models/Model.php',
|
||||||
'Model\\NewsImage' => '/srv/api/common/classes/NewsImage.php',
|
'Model\\NewsImage' => $baseDir . '/app/Models/NewsImage.php',
|
||||||
'Model\\NewsItem' => '/srv/api/common/classes/NewsItem.php',
|
'Model\\NewsItem' => $baseDir . '/app/Models/NewsItem.php',
|
||||||
'Model\\NewsSource' => '/srv/api/common/classes/NewsSource.php',
|
'Model\\NewsSource' => $baseDir . '/app/Models/NewsSource.php',
|
||||||
'Model\\Podcast' => '/srv/api/common/classes/Podcast.php',
|
'Model\\Podcast' => $baseDir . '/app/Models/Podcast.php',
|
||||||
'Model\\Program' => '/srv/api/common/classes/Program.php',
|
'Model\\Program' => $baseDir . '/app/Models/Program.php',
|
||||||
'Model\\ProgramHost' => '/srv/api/common/classes/ProgramHost.php',
|
'Model\\ProgramHost' => $baseDir . '/app/Models/ProgramHost.php',
|
||||||
'Model\\Track' => '/srv/api/common/classes/Track.php',
|
'Model\\Track' => $baseDir . '/app/Models/Track.php',
|
||||||
'Monolog\\Attribute\\AsMonologProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php',
|
'Monolog\\Attribute\\AsMonologProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php',
|
||||||
'Monolog\\DateTimeImmutable' => $vendorDir . '/monolog/monolog/src/Monolog/DateTimeImmutable.php',
|
'Monolog\\DateTimeImmutable' => $vendorDir . '/monolog/monolog/src/Monolog/DateTimeImmutable.php',
|
||||||
'Monolog\\ErrorHandler' => $vendorDir . '/monolog/monolog/src/Monolog/ErrorHandler.php',
|
'Monolog\\ErrorHandler' => $vendorDir . '/monolog/monolog/src/Monolog/ErrorHandler.php',
|
||||||
|
|||||||
2
vendor/composer/autoload_psr4.php
vendored
2
vendor/composer/autoload_psr4.php
vendored
@@ -56,7 +56,7 @@ return array(
|
|||||||
'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src/PhpOption'),
|
'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src/PhpOption'),
|
||||||
'NunoMaduro\\Collision\\' => array($vendorDir . '/nunomaduro/collision/src'),
|
'NunoMaduro\\Collision\\' => array($vendorDir . '/nunomaduro/collision/src'),
|
||||||
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
|
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
|
||||||
'Model\\' => array('/srv/api/common/classes'),
|
'Model\\' => array($baseDir . '/app/Models'),
|
||||||
'League\\MimeTypeDetection\\' => array($vendorDir . '/league/mime-type-detection/src'),
|
'League\\MimeTypeDetection\\' => array($vendorDir . '/league/mime-type-detection/src'),
|
||||||
'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'),
|
'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'),
|
||||||
'League\\Config\\' => array($vendorDir . '/league/config/src'),
|
'League\\Config\\' => array($vendorDir . '/league/config/src'),
|
||||||
|
|||||||
28
vendor/composer/autoload_static.php
vendored
28
vendor/composer/autoload_static.php
vendored
@@ -381,7 +381,7 @@ class ComposerStaticInit5216a35d72a5119d2f4646cd700f802d
|
|||||||
),
|
),
|
||||||
'Model\\' =>
|
'Model\\' =>
|
||||||
array (
|
array (
|
||||||
0 => '/srv/api/common/classes',
|
0 => __DIR__ . '/../..' . '/app/Models',
|
||||||
),
|
),
|
||||||
'League\\MimeTypeDetection\\' =>
|
'League\\MimeTypeDetection\\' =>
|
||||||
array (
|
array (
|
||||||
@@ -3169,19 +3169,19 @@ class ComposerStaticInit5216a35d72a5119d2f4646cd700f802d
|
|||||||
'Mockery\\Undefined' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Undefined.php',
|
'Mockery\\Undefined' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Undefined.php',
|
||||||
'Mockery\\VerificationDirector' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationDirector.php',
|
'Mockery\\VerificationDirector' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationDirector.php',
|
||||||
'Mockery\\VerificationExpectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationExpectation.php',
|
'Mockery\\VerificationExpectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationExpectation.php',
|
||||||
'Model\\Blog' => '/srv/api/common/classes/Blog.php',
|
'Model\\Blog' => __DIR__ . '/../..' . '/app/Models/Blog.php',
|
||||||
'Model\\CalendarEvent' => '/srv/api/common/classes/CalendarEvent.php',
|
'Model\\CalendarEvent' => __DIR__ . '/../..' . '/app/Models/CalendarEvent.php',
|
||||||
'Model\\JobOpening' => '/srv/api/common/classes/JobOpening.php',
|
'Model\\JobOpening' => __DIR__ . '/../..' . '/app/Models/JobOpening.php',
|
||||||
'Model\\Kerkdienst' => '/srv/api/common/classes/Kerkdienst.php',
|
'Model\\Kerkdienst' => __DIR__ . '/../..' . '/app/Models/Kerkdienst.php',
|
||||||
'Model\\MetaData' => '/srv/api/common/classes/MetaData.php',
|
'Model\\MetaData' => __DIR__ . '/../..' . '/app/Models/MetaData.php',
|
||||||
'Model\\Model' => '/srv/api/common/classes/Model.php',
|
'Model\\Model' => __DIR__ . '/../..' . '/app/Models/Model.php',
|
||||||
'Model\\NewsImage' => '/srv/api/common/classes/NewsImage.php',
|
'Model\\NewsImage' => __DIR__ . '/../..' . '/app/Models/NewsImage.php',
|
||||||
'Model\\NewsItem' => '/srv/api/common/classes/NewsItem.php',
|
'Model\\NewsItem' => __DIR__ . '/../..' . '/app/Models/NewsItem.php',
|
||||||
'Model\\NewsSource' => '/srv/api/common/classes/NewsSource.php',
|
'Model\\NewsSource' => __DIR__ . '/../..' . '/app/Models/NewsSource.php',
|
||||||
'Model\\Podcast' => '/srv/api/common/classes/Podcast.php',
|
'Model\\Podcast' => __DIR__ . '/../..' . '/app/Models/Podcast.php',
|
||||||
'Model\\Program' => '/srv/api/common/classes/Program.php',
|
'Model\\Program' => __DIR__ . '/../..' . '/app/Models/Program.php',
|
||||||
'Model\\ProgramHost' => '/srv/api/common/classes/ProgramHost.php',
|
'Model\\ProgramHost' => __DIR__ . '/../..' . '/app/Models/ProgramHost.php',
|
||||||
'Model\\Track' => '/srv/api/common/classes/Track.php',
|
'Model\\Track' => __DIR__ . '/../..' . '/app/Models/Track.php',
|
||||||
'Monolog\\Attribute\\AsMonologProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php',
|
'Monolog\\Attribute\\AsMonologProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php',
|
||||||
'Monolog\\DateTimeImmutable' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/DateTimeImmutable.php',
|
'Monolog\\DateTimeImmutable' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/DateTimeImmutable.php',
|
||||||
'Monolog\\ErrorHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/ErrorHandler.php',
|
'Monolog\\ErrorHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/ErrorHandler.php',
|
||||||
|
|||||||
Reference in New Issue
Block a user