Compare commits
38 Commits
fix-layout
...
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 | ||
|
|
e551e55158 | ||
|
|
2799b1843f | ||
|
|
52f38b4c00 | ||
|
|
e2f114a7a8 | ||
|
|
cc58f5931c | ||
|
|
23d88ac143 | ||
|
|
56adc60788 | ||
|
|
2db970e8c6 | ||
|
|
80256669b1 | ||
|
|
738107515c |
@@ -6,12 +6,6 @@ use \Illuminate\Http\Request;
|
||||
|
||||
class CalendarController extends Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function show(Request $request, $id)
|
||||
{
|
||||
parent::registerView($request, 'agenda', $id);
|
||||
@@ -25,7 +19,7 @@ class CalendarController extends Controller
|
||||
{
|
||||
$apiResult = $this->API('agenda/overzicht');
|
||||
$calendar = [];
|
||||
foreach($apiResult as $calendarItem)
|
||||
foreach($apiResult->events as $calendarItem)
|
||||
{
|
||||
$calendar[] = new \Model\CalendarEvent($calendarItem);
|
||||
}
|
||||
|
||||
@@ -22,14 +22,14 @@ class Controller extends BaseController
|
||||
$data = json_decode(Storage::disk('local')->get($file));
|
||||
foreach ($path as $subobject) {
|
||||
$data = $data->$subobject;
|
||||
}
|
||||
}
|
||||
$items = [];
|
||||
foreach ($data as $item_data) {
|
||||
$items[] = new $class($item_data);
|
||||
if ($maxItems && count($items) == $maxItems) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $items;
|
||||
}
|
||||
@@ -39,27 +39,20 @@ class Controller extends BaseController
|
||||
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
|
||||
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::composer('widgets.laatstenieuws', function ($view) {
|
||||
$view->with('data', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'));
|
||||
});
|
||||
View::composer('widgets.populairnieuws', function ($view) {
|
||||
$view->with('data', $this->getDataFromFileAndConvert('populair_nieuws.json', [], '\Model\NewsItem'));
|
||||
$view->with('data', $this->getDataFromFileAndConvert('populair_nieuws.json', ['news'], '\Model\NewsItem'));
|
||||
});
|
||||
View::composer('widgets.nustraks', function ($view) {
|
||||
$data = json_decode(Storage::disk('local')->get('nu_straks.json'))->schedule;
|
||||
$programs = [];
|
||||
foreach ($data as $item_data) {
|
||||
$programs[] = $program = new \Model\Program($item_data->program);
|
||||
$program->start = new \DateTimeImmutable($item_data->start->date,
|
||||
new \DateTimeZone($item_data->start->timezone));
|
||||
$program->end = new \DateTimeImmutable($item_data->end->date,
|
||||
new \DateTimeZone($item_data->end->timezone));
|
||||
$program->start = self::JsonToDateTime($item_data->start);
|
||||
$program->end = self::JsonToDateTime($item_data->end);
|
||||
}
|
||||
|
||||
// Need a bit of slack here, otherwise the current program may show up
|
||||
@@ -68,10 +61,8 @@ class Controller extends BaseController
|
||||
$i = 0;
|
||||
foreach (array_reverse($data) as $item_data) {
|
||||
$recent = $program = new \Model\Program($item_data->program);
|
||||
$recent->start = new \DateTimeImmutable($item_data->start->date,
|
||||
new \DateTimeZone($item_data->start->timezone));
|
||||
$recent->end = new \DateTimeImmutable($item_data->end->date,
|
||||
new \DateTimeZone($item_data->end->timezone));
|
||||
$recent->start = self::JsonToDateTime($item_data->start);
|
||||
$recent->end = self::JsonToDateTime($item_data->end);
|
||||
if (($recent->end < $now) && (!$recent->nonstop) && (!$recent->rerun)) {
|
||||
$view->with('recent', $recent);
|
||||
break;
|
||||
@@ -92,7 +83,7 @@ class Controller extends BaseController
|
||||
});
|
||||
View::composer('widgets.menu', function ($view) {
|
||||
$view->with('news', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'))
|
||||
->with('popular', $this->getDataFromFileAndConvert('populair_nieuws.json', [], '\Model\NewsItem', 3))
|
||||
->with('popular', $this->getDataFromFileAndConvert('populair_nieuws.json', ['news'], '\Model\NewsItem', 3))
|
||||
->with('podcasts',
|
||||
$this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast'));
|
||||
});
|
||||
@@ -118,16 +109,16 @@ class Controller extends BaseController
|
||||
|
||||
protected function API($url)
|
||||
{
|
||||
// if (strpos($url, 'nieuws/overzicht') !== false) {
|
||||
// return json_decode(file_get_contents(__DIR__ . '/../../../storage/app/laatste_nieuws.json'));
|
||||
// }
|
||||
// return [];
|
||||
|
||||
$arrContextOptions = [
|
||||
'ssl' => [
|
||||
"verify_peer" => false,
|
||||
"verify_peer_name" => false,
|
||||
],
|
||||
],
|
||||
'http' => [
|
||||
'method' => 'GET',
|
||||
'header' => 'X-Api-Key: ' . sha1(request()->server('REMOTE_ADDR')) . "\r\n"
|
||||
. 'X-User-Agent: ' . request()->server('HTTP_USER_AGENT') . "\r\n"
|
||||
]
|
||||
];
|
||||
|
||||
return json_decode(file_get_contents($this->API_URL . $url, false, stream_context_create($arrContextOptions)));
|
||||
@@ -148,7 +139,7 @@ class Controller extends BaseController
|
||||
|
||||
protected static function JsonToDateTime($obj)
|
||||
{
|
||||
return new \DateTime($obj->date, new \DateTimeZone($obj->timezone));
|
||||
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)
|
||||
@@ -166,8 +157,8 @@ class Controller extends BaseController
|
||||
public function getSidebareData()
|
||||
{
|
||||
$populair = [];
|
||||
$apiResult = $this->API('nieuws/populair?aantal=5');
|
||||
foreach ($apiResult as $_newsItem) {
|
||||
$apiResult = $this->API('nieuws/populair?aantal=5');
|
||||
foreach ($apiResult->news as $_newsItem) {
|
||||
$populair[] = new \Model\NewsItem($_newsItem);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,21 +14,17 @@ class HomeController extends Controller
|
||||
$news = [];
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
$news[] = new \Model\NewsItem($newsItem);
|
||||
}
|
||||
}
|
||||
|
||||
$populair = [];
|
||||
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . '&aantal=5');
|
||||
foreach ($apiResult as $newsItem) {
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
$populair[] = new \Model\NewsItem($newsItem);
|
||||
}
|
||||
|
||||
$podcasts = [];
|
||||
$apiResult = $this->API('podcast/overzicht?aantal=3');
|
||||
$podcast = new \Model\Podcast($apiResult->podcasts[0]);
|
||||
foreach ($apiResult->podcasts as $_podcast) {
|
||||
$podcasts[] = new \Model\Podcast($_podcast);
|
||||
}
|
||||
|
||||
return view('home', ['populair' => $populair, 'podcasts' => $podcasts, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
|
||||
$apiResult = $this->API('podcast/overzicht?aantal=15');
|
||||
$index = array_rand($apiResult->podcasts);
|
||||
$podcast = new \Model\Podcast($apiResult->podcasts[$index]);
|
||||
return view('home', ['populair' => $populair, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,12 +29,12 @@ class JobsController extends Controller
|
||||
private function listJobs(Request $request, $url, $title = null)
|
||||
{
|
||||
$page = (int)$request->get('pagina', 1);
|
||||
$apiResult = $this->API('vacatures/' . $url . '?pagina=' . (int)max(1, $page));
|
||||
#$apiResult = $this->API('vacatures/' . $url . '?pagina=' . (int)max(1, $page));
|
||||
$jobs = [];
|
||||
foreach($apiResult->jobs as $jobsItem)
|
||||
{
|
||||
$jobs[] = new \Model\JobOpening($jobsItem);
|
||||
}
|
||||
#foreach($apiResult->jobs as $jobsItem)
|
||||
#{
|
||||
# $jobs[] = new \Model\JobOpening($jobsItem);
|
||||
#}
|
||||
|
||||
return view('jobslist', array_merge($this->getSidebareData(), ['title' => $title, 'jobs' => $jobs]));
|
||||
//return view($request->ajax() ? 'partial/jobslist_small' : ($title == null ? 'home' : 'jobslist'), ['title' => $title, 'jobs' => $jobs, 'searchURL' => 'vacatures/zoeken']);
|
||||
|
||||
@@ -27,7 +27,7 @@ class NewsController extends Controller
|
||||
break;
|
||||
|
||||
case 2:
|
||||
$source = $apiResult->source;
|
||||
$source = $apiResult->source->article;
|
||||
$newsItem->published = self::TimestampToDateTime($source->created);
|
||||
$newsItem->edited = self::TimestampToDateTime($source->updated);
|
||||
$newsItem->author = $source->author;
|
||||
@@ -65,21 +65,26 @@ class NewsController extends Controller
|
||||
$id = $request->get('id', '');
|
||||
$populair = [];
|
||||
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1, $page) . '&aantal=5');
|
||||
foreach ($apiResult as $_newsItem) {
|
||||
foreach ($apiResult->news as $_newsItem) {
|
||||
$populair[] = new \Model\NewsItem($_newsItem);
|
||||
}
|
||||
|
||||
return view('partial/newslist_small', ['id' => $id, 'news' => $populair]);
|
||||
}
|
||||
|
||||
public function taglist(Request $request, $tag)
|
||||
{
|
||||
return $this->listNews($request, 'tag/' . $tag, ucfirst($tag));
|
||||
}
|
||||
|
||||
public function regionlist(Request $request, $region)
|
||||
{
|
||||
return $this->listNews($request, 'regio/' . $region, ucfirst($region));
|
||||
return $this->listNews($request, 'tag/' . $region, ucfirst($region));
|
||||
}
|
||||
|
||||
public function themelist(Request $request, $theme)
|
||||
{
|
||||
return $this->listNews($request, 'thema/' . $theme, ucfirst($theme));
|
||||
return $this->listNews($request, 'tag/' . $theme, ucfirst($theme));
|
||||
}
|
||||
|
||||
public function search(Request $request, $query)
|
||||
@@ -145,7 +150,7 @@ class NewsController extends Controller
|
||||
}
|
||||
$apiResult = $this->API('nieuws/populair?pagina=' . (int)max(1,
|
||||
$page) . ($total ? '&aantal=' . $total : ''));
|
||||
foreach ($apiResult as $newsItem) {
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
$populair[] = new \Model\NewsItem($newsItem);
|
||||
}
|
||||
|
||||
@@ -172,7 +177,7 @@ class NewsController extends Controller
|
||||
{
|
||||
$apiResult = $this->API('nieuws/populair');
|
||||
$news = [];
|
||||
foreach ($apiResult as $newsItem) {
|
||||
foreach ($apiResult->news as $newsItem) {
|
||||
$news[] = new \Model\NewsItem($newsItem);
|
||||
}
|
||||
|
||||
|
||||
@@ -29,14 +29,23 @@ class PodcastController extends Controller
|
||||
$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)
|
||||
{
|
||||
parent::registerView($request, 'podcast', $id);
|
||||
$apiResult = $this->API('podcast/details/' . (int)$id);
|
||||
$podcast = new \Model\Podcast($apiResult);
|
||||
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata]);
|
||||
$podcast = new \Model\Podcast($apiResult);
|
||||
$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 = '')
|
||||
{
|
||||
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);
|
||||
@@ -71,7 +71,7 @@ class RadioController extends Controller
|
||||
$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)
|
||||
@@ -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 = [])
|
||||
@@ -120,7 +120,7 @@ class RadioController extends Controller
|
||||
$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]));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -30,6 +30,17 @@ class StreamController extends Controller
|
||||
return view('watch', ['title' => 'Kijk NH Gooi Tv Studio', 'stream' => 'https://studiocam.nhgooi.nl/studiocam/live/index.m3u8']);
|
||||
}
|
||||
|
||||
public function inline(Request $request, $id)
|
||||
{
|
||||
$apiResult = $this->API('podcast/details/' . (int)$id);
|
||||
$podcast = new \Model\Podcast($apiResult);
|
||||
if(sha1($id . ':' . date('Y-m-d')) != $request->get('auth')) {
|
||||
// return view('widgets/podcastplayer', ['podcast' => null]);
|
||||
}
|
||||
|
||||
return view('widgets/podcastplayer', ['podcast' => $podcast]);
|
||||
}
|
||||
|
||||
public function podcast(Request $request, $id)
|
||||
{
|
||||
$apiResult = $this->API('podcast/details/' . (int)$id);
|
||||
@@ -39,11 +50,11 @@ class StreamController extends Controller
|
||||
}
|
||||
|
||||
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,
|
||||
'content' => $podcast->title,
|
||||
'isStream' => false,
|
||||
'canDownload' => true ]);
|
||||
'canDownload' => $this->API_URL . 'podcast/download/' . $apiResult->url ]);
|
||||
}
|
||||
|
||||
public function program(Request $request, $year, $month, $day, $hour, $duration, $offset = 0) {
|
||||
@@ -58,7 +69,7 @@ class StreamController extends Controller
|
||||
}
|
||||
|
||||
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,
|
||||
'title' => 'Uitzending terugluisteren',
|
||||
'content' => 'de uitzending van ' . $current->format('d-m-Y, H') . ':00 uur',
|
||||
@@ -77,10 +88,10 @@ class StreamController extends Controller
|
||||
|
||||
public function kerkdienst(Request $request) {
|
||||
return view('listen', [
|
||||
'source' => $this->API_URL . 'kerkdienst/download',
|
||||
'source' => $this->API_URL . 'kerkdienst/stream',
|
||||
'title' => 'Kerkdienst gemist',
|
||||
'content' => 'de kerkdienst van afgelopen zondag',
|
||||
'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\\Seeders\\": "database/seeders/",
|
||||
"Helpers\\": "app/Helpers",
|
||||
"Model\\": "/srv/api/common/classes"
|
||||
"Model\\": "app/Models"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
|
||||
30
public/css/style.css
vendored
30
public/css/style.css
vendored
@@ -319,7 +319,7 @@ div.pp_default .pp_close:hover {
|
||||
padding: 3px 9px 3px 6px;
|
||||
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;
|
||||
line-height: 1;
|
||||
}
|
||||
@@ -725,6 +725,8 @@ div.pp_default .pp_close:hover {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
display: flex;
|
||||
gap: 3px;
|
||||
}
|
||||
.blog_grid .post .slider_content_box .post_details .category a {
|
||||
padding: 6px 11px 7px;
|
||||
@@ -1229,7 +1231,8 @@ div.pp_default .pp_close:hover {
|
||||
.post_container .post_body h3 {
|
||||
font-size: 15px;
|
||||
}
|
||||
.post_container .post_body .sentence {
|
||||
.post_container .post_body .sentence,
|
||||
.box.featured .sentence {
|
||||
font-size: 12px;
|
||||
font-style: italic;
|
||||
line-height: 1.3;
|
||||
@@ -1238,7 +1241,8 @@ div.pp_default .pp_close:hover {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
.post_container .post_body .sentence span {
|
||||
.post_container .post_body .sentence span,
|
||||
.box.featured .sentence span {
|
||||
padding: 0 5px;
|
||||
}
|
||||
.post_container .post_body blockquote {
|
||||
@@ -1316,8 +1320,10 @@ div.pp_default .pp_close:hover {
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.post_tags li a {
|
||||
.post_tags li a,
|
||||
#schedule .onair {
|
||||
display: block;
|
||||
width: 4rem;
|
||||
padding: 6px 15px 7px;
|
||||
border-radius: 3px;
|
||||
background-image: linear-gradient(to left, #0d1ca3, #45aaf8);
|
||||
@@ -1333,6 +1339,16 @@ div.pp_default .pp_close:hover {
|
||||
#schedule a {
|
||||
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 {
|
||||
font-family: Montserrat, serif;
|
||||
font-size: 14px;
|
||||
@@ -1647,4 +1663,10 @@ a, a:hover, a:active {
|
||||
}
|
||||
}
|
||||
|
||||
.podcast-player .content {
|
||||
border: solid 1px #333;
|
||||
border-radius: 5px;
|
||||
padding: 0.4rem;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=style.css.map */
|
||||
|
||||
2
public/css/style.min.css
vendored
2
public/css/style.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
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 |
2
public/js/functions.min.js
vendored
2
public/js/functions.min.js
vendored
File diff suppressed because one or more lines are too long
1
public/js/main.js
vendored
1
public/js/main.js
vendored
@@ -1 +0,0 @@
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<ul class="bread_crumb">
|
||||
<li><a title="Home" href="/">Home</a></li>
|
||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||
<li><a title="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>Details</li>
|
||||
</ul>
|
||||
@@ -24,7 +24,7 @@
|
||||
<div class="post single small_image">
|
||||
<ul class="post_details clearfix">
|
||||
@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
|
||||
<li class="detail date">
|
||||
<i class="fa-regular fa-clock"></i>
|
||||
@@ -41,7 +41,7 @@
|
||||
<div class="announcement">
|
||||
<div>
|
||||
<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>
|
||||
</div>
|
||||
<ul class="post_details clearfix">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@extends('layouts/sidebar')
|
||||
|
||||
@section('title')
|
||||
Regioagenda
|
||||
Streekagenda
|
||||
@endsection
|
||||
|
||||
@section('page_class')
|
||||
@@ -28,7 +28,7 @@
|
||||
@if(!count($events))
|
||||
@section('content')
|
||||
<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>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -37,40 +37,9 @@
|
||||
@section('content')
|
||||
@parent
|
||||
<div data-tabs class="page_body">
|
||||
<div class="tabs">
|
||||
<h4 data-tab-content-id="tab_previous" class="box_header small flex-grow-1"><span>Eerder</span></h4>
|
||||
<h4 data-tab-content-id="tab_current_week" class="box_header small flex-grow-1 active"><span>Komende week</span></h4>
|
||||
<h4 data-tab-content-id="tab_everything" class="box_header small flex-grow-1"><span>Toon alles</span></h4>
|
||||
<h4 data-tab-content-id="tab_next" class="box_header small"><span>Later</span></h4>
|
||||
</div>
|
||||
|
||||
@php($tabs = [
|
||||
[
|
||||
'id' => 'tab_previous',
|
||||
'start' => new DateTime('1-1-1990'),
|
||||
'end' => new DateTime('sunday previous week'),
|
||||
],
|
||||
[
|
||||
'id' => 'tab_current_week',
|
||||
'start' => new DateTime('monday this week'),
|
||||
'end' => new DateTime('sunday this week'),
|
||||
],
|
||||
[
|
||||
'id' => 'tab_everything',
|
||||
'start' => new DateTime('1-1-1990'),
|
||||
'end' => new DateTime('31-12-3000'),
|
||||
],
|
||||
[
|
||||
'id' => 'tab_next',
|
||||
'start' => new DateTime('monday next week'),
|
||||
'end' => new DateTime('31-12-3000'),
|
||||
]
|
||||
])
|
||||
@foreach($tabs as $tab)
|
||||
<div style="padding: 0" class="tab_content{{$tab['id'] == 'tab_current_week' ? ' active' : ''}}" id="{{$tab['id']}}">
|
||||
<div style="padding: 0" class="tab_content active" id="agenda">
|
||||
@php($count = 0)
|
||||
@foreach($events as $event)
|
||||
@if($event->starts >= $tab['start'] && $event->ends <= $tab['end'])
|
||||
@php($count++)
|
||||
<?php $url = route('agenda.details', ['id' => $event->id, 'title' => $event->title]); ?>
|
||||
<div class="box featured">
|
||||
@@ -83,8 +52,10 @@
|
||||
<div class="col-12 col-md-6">
|
||||
<h2 class="post_title"><a href="{{$url}}" title="{{$event->title}}">{!!$event->title!!}</a></h2>
|
||||
<div class="sub_title" style="flex-wrap: wrap">
|
||||
<ul class="post_tags" style="width: 100%; margin: 0 0 8px 0;height: 25px;">
|
||||
<li><a style="padding: 3px 8px 3px" title="{{$event->region}}">{{$event->region}}</a></li>
|
||||
<ul class="post_tags" style="width: 100%; margin: 0 0 8px 0;height: 25px;">
|
||||
@foreach($event->tags as $tag)
|
||||
<li><a style="padding: 3px 8px 3px" title="{{$tag->title}}">{{$tag->title}}</a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
<span class="post_date" style="line-height: 1.17; height: 14px;" title="{{Formatter::relativeDate($event->starts, 'W d m y?')}}">
|
||||
<i class="fa-regular fa-clock"></i> {{Formatter::relativeDate($event->starts, 'W d m y?')}}
|
||||
@@ -99,14 +70,12 @@
|
||||
<a class="btn fit_content" href="{{$url}}">Lees verder</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
@if($count == 0)
|
||||
<p>Er zijn geen items gevonden. Iets te melden? Mail het naar <a href="mailto:info@nhgooi.nl">info@nhgooi.nl</a>.</p>
|
||||
@endif
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@endif
|
||||
|
||||
@@ -18,7 +18,18 @@
|
||||
|
||||
<div class="page_body">
|
||||
<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>
|
||||
|
||||
<p>Neem contact op met NH Gooi, de streekomroep voor Gooi & Vechtstreek.</p>
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
</a>
|
||||
<div class="slider_content_box">
|
||||
<ul class="post_details simple">
|
||||
@if($item->region)
|
||||
@foreach($item->tags as $tag)
|
||||
<li class="category">
|
||||
<a title="Regio: {{$item->region->title}}"
|
||||
href="{{route('nieuws.regio', ['region' => $item->region->slug])}}"
|
||||
class="over_image">{{$item->region->title}}</a>
|
||||
<a title="{{$tag->titel}}"
|
||||
href="{{route('nieuws.tag', ['tag' => $tag->slug])}}"
|
||||
class="over_image">{{$tag->titel}}</a>
|
||||
</li>
|
||||
@endif
|
||||
@endforeach
|
||||
</ul>
|
||||
<h2><a href="{{url($item->url)}}"
|
||||
title="{{$item->title}}">{!!$item->title!!}</a></h2>
|
||||
@@ -61,13 +61,13 @@
|
||||
</a>
|
||||
<div class="slider_content_box">
|
||||
<ul class="post_details simple">
|
||||
@if($item->region)
|
||||
<li class="category">
|
||||
<a title="Regio: {{$item->region->title}}"
|
||||
href="{{route('nieuws.regio', ['region' => $item->region->slug])}}"
|
||||
class="over_image">{{$item->region->title}}</a>
|
||||
</li>
|
||||
@endif
|
||||
@foreach($item->tags as $tag)
|
||||
<li class="category">
|
||||
<a title="{{$tag->titel}}"
|
||||
href="{{route('nieuws.tag', ['tag' => $tag->slug])}}"
|
||||
class="over_image">{{$tag->titel}}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
<h2><a href="{{url($item->url)}}"
|
||||
title="{{$item->title}}">{!!$item->title!!}</a></h2>
|
||||
@@ -102,13 +102,13 @@
|
||||
</a>
|
||||
<div class="slider_content_box">
|
||||
<ul class="post_details simple">
|
||||
@if($item->region)
|
||||
<li class="category">
|
||||
<a title="Regio: {{$item->region->title}}"
|
||||
href="{{route('nieuws.regio', ['region' => $item->region->slug])}}"
|
||||
class="over_image">{{$item->region->title}}</a>
|
||||
</li>
|
||||
@endif
|
||||
@foreach($item->tags as $tag)
|
||||
<li class="category">
|
||||
<a title="{{$tag->titel}}"
|
||||
href="{{route('nieuws.tag', ['tag' => $tag->slug])}}"
|
||||
class="over_image">{{$tag->titel}}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
<h5 class="post_title"><a href="{{url($item->url)}}"
|
||||
title="{{$item->title}}">{!!$item->title!!}</a></h5>
|
||||
@@ -170,12 +170,28 @@
|
||||
|
||||
@if ($podcast)
|
||||
<?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="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<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>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
|
||||
@@ -12,15 +12,15 @@
|
||||
</ul>
|
||||
@endsection
|
||||
|
||||
@section('page_class')
|
||||
news_post post_container breadcrumb_no_border
|
||||
@endsection
|
||||
@section('page_container_class')
|
||||
grey_background
|
||||
@endsection
|
||||
@section('site_container_class')
|
||||
grey_background
|
||||
@endsection
|
||||
@section('container_class')
|
||||
news_post post_container
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
@parent
|
||||
@@ -31,13 +31,13 @@
|
||||
<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>
|
||||
Ik kwam hier als programmeur en nu maak ik met een collega, inmiddels vriend, elke week een kleinkunstprogramma
|
||||
Ik kwam hier als programmeur en nu maak ik met een collega, inmiddels vriend, elke week een kleinkunstprogramma
|
||||
<span class="author">— Mischa, programmamaker en technicus</span>
|
||||
</blockquote>
|
||||
<p>Als vrijwilliger van NH Gooi kan je gebruik maken van de opleidingsmogelijkheden die via de NLPO worden aangeboden. Kijk bijvoorbeeld eens op de <a href="https://www.nlpo.nl/opleidingen/">website van de NLPO</a> over het huidige aanbod. Ook organiseren we samen met onze mediapartner NH trainingen en cursussen.</p>
|
||||
|
||||
|
||||
<h2>Huidige (vrijwillige) vacatures</h2>
|
||||
|
||||
|
||||
<h3>Programma’s en content</h3>
|
||||
<ul>
|
||||
<li><strong>Contentmakers audio en video, voor en achter de schermen:</strong> Wil je programma's maken voor radio en/of televisie, verslaggever worden of podcasts maken? Wij zoeken mensen die het leuk vinden om te filmen, te monteren, te regisseren, redactie te voeren, 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>
|
||||
@@ -45,8 +45,8 @@
|
||||
</ul>
|
||||
|
||||
<blockquote>
|
||||
Je krijgt bij NHGooi de kans om jezelf te ontwikkelen. Ik mocht al heel snel mijn eigen programma maken
|
||||
<span class="author">— Yannick, programmamaker</span>
|
||||
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>
|
||||
</blockquote>
|
||||
|
||||
<h3>Bestuur, staf en organisatie</h3>
|
||||
@@ -55,14 +55,14 @@
|
||||
<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><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>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Vrijwillig maar niet vrijblijvend</h2>
|
||||
<p>Werken aan radio-, televisie-, podcast- en onlineproducties en het draaiende houden van onze organisatie is enorm leuk en inspirerend. Dit vraagt echter expertise, inzet en vasthoudendheid. NH Gooi is een vrijwilligersorganisatie, maar dat betekent niet dat we onderdoen voor een beroepsorganisatie. We vinden het belangrijk dat we op je kunnen rekenen. Vrijwillig is immers niet vrijblijvend. </p>
|
||||
<p>We vragen dat je nieuwsgierig bent, goed kunt samenwerken en gemotiveerd bent om je in te zetten voor NH Gooi. En met wat ervaring heb je een streepje voor! En wil je nieuwe dingen leren? Dan kun je gebruik maken van de opleidingsmogelijkheden.</p>
|
||||
<p>Neem contact met ons op via <a href="mailto:meebouwen@nhgooi.nl">meebouwen@nhgooi.nl</a> en geef aan waar je interesse ligt, welke ervaring je hebt en wat je motivatie is om mee te bouwen aan NH Gooi.</p>
|
||||
|
||||
|
||||
<blockquote>
|
||||
Produceren, presenteren, reportages maken, monteren; ik kon het allemaal leren bij NH Gooi. Wil je iets met radio, ben je van 'wel vrijwillig, maar niet vrijblijvend?' Dan wil ik graag mijn ervaringen met je delen
|
||||
Produceren, presenteren, reportages maken, monteren; ik kon het allemaal leren bij NH Gooi. Wil je iets met radio, ben je van 'wel vrijwillig, maar niet vrijblijvend?' Dan wil ik graag mijn ervaringen met je delen
|
||||
<span class="author">— Michel Stoeltie</span>
|
||||
</blockquote>
|
||||
</div>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
</p>
|
||||
<p>
|
||||
<audio controls>
|
||||
<source src="{{ url( $apiUrl . 'kerkdienst/download' ) }}" type="audio/mpeg" />
|
||||
<source src="{{ url( $apiUrl . 'kerkdienst/stream' ) }}" type="audio/mpeg" />
|
||||
</audio>
|
||||
</p>
|
||||
<p>
|
||||
|
||||
@@ -10,10 +10,22 @@
|
||||
<!--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+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/superfish.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/menu_styles.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/animations.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="//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/prettyPhoto.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" type="text/css" href="/css/style.min.css?<?= filemtime("../public/css/style.min.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="og:site_name" content="NH Gooi" />
|
||||
<?php if(isset($metadata)) {
|
||||
@@ -25,9 +37,11 @@
|
||||
} ?>
|
||||
@stack('styles')
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
{{--
|
||||
<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="16x16" href="/favicon-16x16.png">
|
||||
--}}
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
<!--rss-->
|
||||
<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>
|
||||
</li>
|
||||
@if(isset($searchURL))
|
||||
<li>
|
||||
<li class="search">
|
||||
<form class="search_form" action="{{url($searchURL)}}">
|
||||
<input type="text" name="query" placeholder="Zoeken..."
|
||||
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>
|
||||
</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>
|
||||
<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>
|
||||
@if(isset($searchURL))
|
||||
<li>
|
||||
<li class="search">
|
||||
<form class="search_form" action="{{url($searchURL)}}">
|
||||
<input type="text" name="query" placeholder="Zoeken..."
|
||||
value="{{isset($query) ? $query : null}}" class="search_input">
|
||||
@@ -93,13 +93,6 @@
|
||||
|
||||
<div class="page @yield('page_container_class')">
|
||||
<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')
|
||||
</div><!--/.page-->
|
||||
|
||||
@@ -109,18 +102,19 @@
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-3">
|
||||
<h4 class="box_header"><span>NH Gooi</span></h4>
|
||||
<p class="about">
|
||||
NH Gooi is de streekomroep voor Gooi & Vechtstreek. Wij bieden een gevarieerd programma op
|
||||
radio, podcasts, tv en online met muziek, achtergronden en actueel regionieuws.
|
||||
<p class="about">
|
||||
NH Gooi is de streekomroep voor Gooi & Vechtstreek. Wij brengen nieuws en achtergronden
|
||||
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>
|
||||
</div>
|
||||
<div class="col-12 col-md-3">
|
||||
<h4 class="box_header"><span style="height: 30px;display: block;width: 0;"></span></h4>
|
||||
<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 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>
|
||||
</div>
|
||||
<div class="col-12 col-md-3">
|
||||
@@ -172,10 +166,26 @@
|
||||
</div>
|
||||
<div class="background_overlay"></div>
|
||||
<!--js-->
|
||||
<!--<script type="text/javascript" src="/js/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery-migrate-1.4.1.min.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.ba-bbq.min.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery-ui-1.11.1.custom.min.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.carouFredSel-6.2.1-packed.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.touchSwipe.min.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.mousewheel.min.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.transit.min.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.sliderControl.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.timeago.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.hint.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.qtip.min.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.blockUI.js"></script>
|
||||
<script type="text/javascript" src="/js/odometer.min.js"></script>-->
|
||||
<script type="text/javascript" src="/js/main.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery-3.7.1.min.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.prettyPhoto.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.carouFredSel-6.2.1.min.js"></script>
|
||||
<script type="text/javascript" src="/js/functions.min.js"></script>
|
||||
<script type="text/javascript" src="/js/functions.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(window).resize(function () {
|
||||
// Fix sticky for mobile menu indicator
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@if(!$isStream && $canDownload)
|
||||
<a href="{{$source}}" class="action_button">
|
||||
@if(!$isStream && $canDownload !== false)
|
||||
<a href="{{$canDownload}}" class="action_button">
|
||||
<span class="fa fa-download"></span><span>Download .mp3-bestand</span>
|
||||
</a>
|
||||
@endif
|
||||
@@ -52,7 +52,6 @@
|
||||
<span class="fa fa-music"></span><span>Schakel naar live-uitzending</span>
|
||||
</a>
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<div class="podcast_items">
|
||||
<h4 class="box_header small"><span>Fragment gemist</span></h4>
|
||||
<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>
|
||||
|
||||
|
||||
@@ -11,16 +11,18 @@
|
||||
<li><a title="Home" href="/">Home</a></li>
|
||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||
<li><a title="Nieuws" href="{{route('nieuws')}}">Nieuws</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="{{$news->region->title}}" href="{{route('nieuws.regio', $news->region->slug)}}">{{$news->region->title}}</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>{!!$news->title!!}</li>
|
||||
</ul>
|
||||
@endsection
|
||||
|
||||
@section('tags')
|
||||
<ul class="post_tags">
|
||||
<li><a href="{{route('nieuws.regio', $news->region->slug)}}" title="{{$news->region->title}}">{{$news->region->title}}</a></li>
|
||||
@foreach($news->tags as $tag)
|
||||
<li><a href="{{route('nieuws.tag', $tag->slug)}}" title="{{$tag->titel}}">{{$tag->titel}}</a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endsection
|
||||
|
||||
@@ -28,12 +30,6 @@
|
||||
|
||||
<div class="post_body">
|
||||
<ul class="post_details clearfix">
|
||||
@if($news->region && $news->region->title != "Regio")
|
||||
<li class="detail category"><i class="fa-solid fa-location-dot"></i> Regio <a href="{{route('nieuws.regio', $news->region->slug)}}" title="{{$news->region->title}}">{{$news->region->title}}</a></li>
|
||||
@endif
|
||||
@if($news->theme && $news->theme->title != "Overig")
|
||||
<li class="detail category"><i class="fa-solid fa-tag fa-rotate-90"></i> Thema <a href="{{route('nieuws.thema', $news->theme->slug)}}" title="{{$news->theme->title}}">{{$news->theme->title}}</a></li>
|
||||
@endif
|
||||
<li class="detail date">
|
||||
<i class="fa-regular fa-clock"></i>
|
||||
{{Formatter::relativeDate($news->published)}} om {{$news->published->format('H:i')}}
|
||||
@@ -51,30 +47,6 @@
|
||||
</ul>
|
||||
|
||||
|
||||
@if($news->podcast)
|
||||
@include('widgets/mediaplayer')
|
||||
<div class="announcement">
|
||||
<div>
|
||||
<audio controls>
|
||||
<source src="{{ $url = url( $apiUrl . 'podcast/download' . $news->podcast->url . "?auth=" . $news->podcast->auth )}}" type="audio/mpeg" />
|
||||
</audio>
|
||||
</div>
|
||||
<ul class="post_details clearfix">
|
||||
<li class="detail date">
|
||||
<i class="fa-regular fa-clock"></i>
|
||||
{{ Formatter::relativeDate($news->podcast->created) }} uitgezonden
|
||||
@if($news->podcast->program) in <a href="{{ route('programma') . $news->podcast->program->url }}">{{ $news->podcast->program->name }}</a> @endif
|
||||
</li>
|
||||
<li class="detail category">
|
||||
<a href="{{ route('gemist.fragment') . $news->podcast->url }}">
|
||||
<span class="fa "></span>
|
||||
<span>Meer over dit fragment</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="post_content clearfix">
|
||||
<div class="content_box">
|
||||
@if($news->images)
|
||||
@@ -123,6 +95,10 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($news->podcast)
|
||||
@include('widgets/podcastplayer', ['podcast' => $news->podcast])
|
||||
@endif
|
||||
|
||||
@if($news->source && $news->source->show)
|
||||
<div class="post-source">
|
||||
<p>Bron: {{$news->source->title}}</p>
|
||||
@@ -133,26 +109,6 @@
|
||||
@include('widgets/share')
|
||||
--}}
|
||||
|
||||
{{--
|
||||
<ul class="taxonomies tags left clearfix">
|
||||
@if($news->keywords)
|
||||
@foreach($news->keywords as $keyword)
|
||||
<li>
|
||||
<a href="{{route('nieuws/onderwerp/' . $keyword)}}" title="Zoek meer nieuws met het onderwerp {{$keyword}}">{{$keyword}}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
@endif
|
||||
</ul>
|
||||
--}}
|
||||
<ul class="post_tags clearfix">
|
||||
<li>Tags:</li>
|
||||
<li>
|
||||
<a href="{{route('nieuws.thema', $news->theme->slug)}}" title="Zoek meer nieuws met het thema {{$news->theme->title}}">{{$news->theme->title}}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{route('nieuws.regio', $news->region->slug)}}" title="Zoek meer nieuws uit de regio {{$news->region->title}}">{{$news->region->title}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="share_buttons row">
|
||||
<div class="col-12 col-md-auto">
|
||||
<a data-share="native" href="javascript:void(0)" class="btn">
|
||||
|
||||
@@ -51,16 +51,11 @@
|
||||
title="{{strip_tags($item->title)}}">{!!$item->title!!}</a>
|
||||
</h2>
|
||||
<ul class="post_details clearfix">
|
||||
@if($item->region)
|
||||
<li class="detail category"><i class="fa-solid fa-location-dot"></i> Regio <a
|
||||
href="{{route('nieuws.regio', $item->region->slug)}}"
|
||||
title="{{$item->region->title}}">{{$item->region->title}}</a></li>
|
||||
@endif
|
||||
@if($item->theme)
|
||||
<li class="detail category"><i class="fa-solid fa-tag fa-rotate-90"></i> Thema
|
||||
<a href="{{route('nieuws.thema', $item->theme->slug)}}"
|
||||
title="{{$item->theme->title}}">{{$item->theme->title}}</a></li>
|
||||
@endif
|
||||
@foreach($item->tags as $tag)
|
||||
<li class="detail category"><i class="fa-solid fa-location-dot"></i> <a
|
||||
href="{{route('nieuws.tag', $tag->slug)}}"
|
||||
title="{{$tag->titel}}">{{$tag->titel}}</a></li>
|
||||
@endforeach
|
||||
@if($item->edited && ($item->edited != $item->published))
|
||||
<li class="date edited">
|
||||
<i class="fa-regular fa-clock"></i>
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
<div class="announcement">
|
||||
<div>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,48 +1,51 @@
|
||||
@foreach($content as $block)
|
||||
@if($block->type == "headerRichA")
|
||||
@php($block->image->url = isset($block->image->crops)
|
||||
? $block->image->crops->{'16:9'}->{'1600'}
|
||||
: $block->image->crop)
|
||||
<a href="{{$block->image->url}}" class="post_image page_margin_top prettyPhoto" rel="prettyPhoto" title="{{$block->image->title}}">
|
||||
<img src="{{$block->image->url}}" alt="{{$block->image->title}}">
|
||||
</a>
|
||||
<div class="sentence margin_top_10">
|
||||
<span class="text">{{$block->image->title}}</span>
|
||||
@if($block->image->author)
|
||||
<span class="author">{{$block->image->author}}</span>
|
||||
@endif
|
||||
</div>
|
||||
@elseif($block->type == "text")
|
||||
<div class="text">{!!$block->text!!}</div>
|
||||
@elseif($block->type == "intro")
|
||||
<h3 class="excerpt">{!!strip_tags($block->text)!!}</h3>
|
||||
@elseif($block->type == "info")
|
||||
@if(strpos($block->text, "Meer nieuws uit 't Gooi?") === false)
|
||||
<div class="info" style="background-color: {{$block->color}};">{!!($block->text)!!}</div>
|
||||
@endif
|
||||
@elseif($block->type == "quote")
|
||||
<blockquote>
|
||||
{!!$block->text!!}
|
||||
<div class="author">{{$block->name}}</div>
|
||||
</blockquote>
|
||||
@elseif($block->type == "image")
|
||||
<?php
|
||||
@if($block->type == "headerRichA")
|
||||
@php($block->image->url = isset($block->image->crops)
|
||||
? $block->image->crops->{'16:9'}->{'1600'}
|
||||
: $block->image->crop)
|
||||
<a href="{{$block->image->url}}" class="post_image page_margin_top prettyPhoto" rel="prettyPhoto"
|
||||
title="{{$block->image->title}}">
|
||||
<img src="{{$block->image->url}}" alt="{{$block->image->title}}">
|
||||
</a>
|
||||
<div class="sentence margin_top_10">
|
||||
<span class="text">{{$block->image->title}}</span>
|
||||
@if($block->image->author)
|
||||
<span class="author">{{$block->image->author}}</span>
|
||||
@endif
|
||||
</div>
|
||||
@elseif($block->type == "text")
|
||||
<div class="text">{!!$block->text!!}</div>
|
||||
@elseif($block->type == "intro")
|
||||
<h3 class="excerpt">{!!strip_tags($block->text)!!}</h3>
|
||||
@elseif($block->type == "info")
|
||||
@if(strpos($block->text, "Meer nieuws uit 't Gooi?") === false)
|
||||
<div class="info" style="background-color: {{$block->color}};">{!!($block->text)!!}</div>
|
||||
@endif
|
||||
@elseif($block->type == "quote")
|
||||
<blockquote>
|
||||
{!!$block->text!!}
|
||||
<div class="author">{{$block->name}}</div>
|
||||
</blockquote>
|
||||
@elseif($block->type == "image")
|
||||
<?php
|
||||
if(isset($block->image->imageWide))
|
||||
$image = $block->image->imageWide;
|
||||
$image = $block->image->imageWide;
|
||||
else if(isset($block->image->crop))
|
||||
$image = $block->image->crop;
|
||||
$image = $block->image->crop;
|
||||
else if(isset($block->image->crops) && isset($block->image->crops->{'16:9'}))
|
||||
foreach($block->image->crops->{'16:9'} as $image) break;
|
||||
else if(isset($block->image->imageHigh))
|
||||
$image = $block->image->imageHigh;
|
||||
else $image = null;
|
||||
?>
|
||||
@if($image)
|
||||
<a class="post_image page_margin_top prettyPhoto" rel="prettyPhoto" href="{{$image}}" title="{{$block->image->title}} © {{$block->image->author}}">
|
||||
<img src="{{$image}}" class="attachment-small-slider-thumb size-small-slider-thumb wp-post-image" alt="{{$block->image->title}}" title="" style="display: block;">
|
||||
</a>
|
||||
<div class="sentence">
|
||||
<?php
|
||||
@if($image)
|
||||
<a class="post_image page_margin_top prettyPhoto" rel="prettyPhoto" href="{{$image}}"
|
||||
title="{{$block->image->title}} © {{$block->image->author}}">
|
||||
<img src="{{$image}}" class="attachment-small-slider-thumb size-small-slider-thumb wp-post-image"
|
||||
alt="{{$block->image->title}}" title="" style="display: block;">
|
||||
</a>
|
||||
<div class="sentence">
|
||||
<?php
|
||||
$sentence = [];
|
||||
if (isset($block->image->caption) && $block->image->caption) {
|
||||
$sentence[] = '<span class="text">' . $block->image->caption . '</span>';
|
||||
@@ -54,52 +57,88 @@
|
||||
}
|
||||
$sentence = join('<span class="separator">|</span>', $sentence);
|
||||
?>
|
||||
{!!$sentence!!}
|
||||
</div>
|
||||
@endif
|
||||
@elseif($block->type == "video" || $block->type == "headerVideo")
|
||||
@include('widgets/mediaplayer')
|
||||
<?php
|
||||
{!!$sentence!!}
|
||||
</div>
|
||||
@endif
|
||||
@elseif($block->type == "video" || $block->type == "headerVideo")
|
||||
@include('widgets/mediaplayer')
|
||||
<?php
|
||||
$attr = '';
|
||||
if (isset($block->video->images[0]->imageMedia) && $block->video->images[0]->imageMedia) {
|
||||
$attr = ' poster="' . $block->video->images[0]->imageMedia . '"';
|
||||
}
|
||||
?>
|
||||
<video controls{!!$attr!!}>
|
||||
@foreach($block->video->streams as $stream)
|
||||
<source src="{!!$stream->stream_url!!}" type="application/x-mpegurl" />
|
||||
@endforeach
|
||||
</video>
|
||||
<div class="sentence">
|
||||
<span class="author">{{$block->video->author}}</span>
|
||||
</div>
|
||||
@elseif($block->type == "carousel")
|
||||
<div class="horizontal_carousel_container gallery">
|
||||
<ul class="horizontal_carousel visible-5 autoplay-1 scroll-1 navigation-1 easing-easeInOutQuint duration-750">
|
||||
@foreach($block->items as $image)
|
||||
<video controls{!!$attr!!}>
|
||||
@foreach($block->video->streams as $stream)
|
||||
<source src="{!!$stream->stream_url!!}" type="application/x-mpegurl" />
|
||||
@endforeach
|
||||
</video>
|
||||
<div class="sentence">
|
||||
<span class="author">{{$block->video->author}}</span>
|
||||
</div>
|
||||
@elseif($block->type == "carousel")
|
||||
<div class="horizontal_carousel_container gallery">
|
||||
<ul class="horizontal_carousel visible-5 autoplay-1 scroll-1 navigation-1 easing-easeInOutQuint duration-750">
|
||||
@foreach($block->items as $image)
|
||||
<?php
|
||||
if(isset($image->image->imageWide))
|
||||
$img = $image->image->imageWide;
|
||||
else if(isset($block->image->crop))
|
||||
$image = $block->image->crop;
|
||||
$image = $block->image->crop;
|
||||
else if(isset($image->image->crops) && isset($image->image->crops->{'16:9'}))
|
||||
foreach($image->image->crops->{'16:9'} as $img) break;
|
||||
else if(isset($image->image->imageHigh))
|
||||
$img = $image->image->imageHigh;
|
||||
else $img = null;
|
||||
$img = $image->image->imageHigh;
|
||||
else $img = null;
|
||||
?>
|
||||
@if($img)
|
||||
<li>
|
||||
<a href="{{$img}}" class="post_image prettyPhoto" rel="prettyPhoto[gallery]" title="{{$image->image->title}} © {{$image->image->author}}">
|
||||
<img src="{{$img}}" alt="{{$image->image->title}}" title="{{$image->image->title}}">
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{$img}}" class="post_image prettyPhoto" rel="prettyPhoto[gallery]"
|
||||
title="{{$image->image->title}} © {{$image->image->author}}">
|
||||
<img src="{{$img}}" alt="{{$image->image->title}}" title="{{$image->image->title}}">
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@elseif($block->type == "oembed")
|
||||
<div class="oembed" data-url="{{$block->url}}">{!!$block->html!!}</div>
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@elseif($block->type == "oembed")
|
||||
<div class="oembed" data-url="{{$block->url}}">{!!$block->html!!}</div>
|
||||
@elseif($block->type == "podcast" && $block->id == $news->podcast?->id)
|
||||
@include('widgets/podcastplayer', ['podcast' => $news->podcast])
|
||||
<? $news->podcast = null; // Avoid adding the player again ?>
|
||||
@elseif($block->type == 'article' && count($block->articles) && $block->articles[0]->published)
|
||||
<div class="block">
|
||||
<h4 class="box_header"><span>{{ $block->title }}</span></h4>
|
||||
<div class="box full-width">
|
||||
<ul id="items-more-news" class="blog">
|
||||
@foreach($block->articles as $article)
|
||||
<? if(!isset($article->published)) continue;
|
||||
$article->published = new \DateTime($article->published); ?>
|
||||
<li class="post">
|
||||
<div class="row">
|
||||
@if($article->image)
|
||||
<div class="col-4">
|
||||
<a href="{{ route('nieuws.detail', ['id' => $article->id, 'title' => $article->slug]) }}"
|
||||
title="{{ $article->title }}">
|
||||
<img src="{{ $article->image }}" alt="{{ $article->image_title }}">
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
<div class="col-8">
|
||||
<h2 class="post_title"><a class="clipText clipText-3"
|
||||
href="{{ route('nieuws.detail', ['id' => $article->id, 'title' => $article->slug]) }}"
|
||||
title="{!! $article->title !!}">{!! $article->title !!}</a></h2>
|
||||
<span class="post_date" title="Vandaag om 09:30">
|
||||
<i class="fa-regular fa-clock"></i>
|
||||
{{Formatter::relativeDate($article->published)}} om {{$article->published->format('H:i')}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
@@ -1,8 +1,8 @@
|
||||
<div>
|
||||
@foreach($podcasts as $podcast)
|
||||
<?php
|
||||
$url = route('gemist.fragment') . $podcast->url;
|
||||
$popoutUrl = route('luister.podcast') . $podcast->url . '?auth=' . $podcast->auth;
|
||||
$url = ($isPodcast ? '/podcast/aflevering' : '/gemist/fragment') . $podcast->url;
|
||||
$popoutUrl = route('luister.podcast') . $podcast->url . '?auth=' . $podcast->auth;
|
||||
?>
|
||||
<div class="box full-width featured">
|
||||
<div class="row">
|
||||
@@ -15,16 +15,16 @@
|
||||
<h2 class="post_title"><a href="{{$url}}" title="{{$podcast->title}}">{!!$podcast->titleWithoutProgram()!!}</a></h2>
|
||||
<div class="sub_title">
|
||||
@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>
|
||||
@endif
|
||||
<span class="post_date" title="{{Formatter::relativeDate($podcast->created)}}">
|
||||
<i class="fa-regular fa-clock"></i> {{Formatter::relativeDate($podcast->created)}}
|
||||
</span>
|
||||
</div>
|
||||
<p class="clipText clipText-7" title="{{strip_tags($podcast->content)}}">
|
||||
<div class="clipText clipText-7" title="{{strip_tags($podcast->content)}}">
|
||||
{!!$podcast->content!!}
|
||||
</p>
|
||||
</div>
|
||||
<a class="action_button btn player" href="{{$popoutUrl}}">
|
||||
<span class="fa fa-external-link-alt"></span>
|
||||
<span>Luister in nieuw venster</span>
|
||||
|
||||
@@ -20,7 +20,7 @@ $actionButton = array_merge([
|
||||
?>
|
||||
<ul id="{{$id ?? ''}}" class="{{$ul['class']}}">
|
||||
@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']}}">
|
||||
<div style="{{$content['style']}}" class="post_content {{$content['class']}}">
|
||||
<h2 class="post_title">
|
||||
@@ -43,9 +43,9 @@ $actionButton = array_merge([
|
||||
</a>
|
||||
@endif
|
||||
@if($body['show'])
|
||||
<p class="post_body {{$body['class']}}">
|
||||
<div class="post_body {{$body['class']}}">
|
||||
{!!$podcast->content!!}
|
||||
</p>
|
||||
</div>
|
||||
@endif
|
||||
@if(isset($showAction) && $showAction)
|
||||
<div class="action_button {{$actionButton['class']}}">
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
<a class="box full-width full-height" href="{{route('programma') . $item['program']->url}}"
|
||||
title="{{$item['program']->name . ($item['program']->tagline ? "\n" . $item['program']->tagline : "")}}">
|
||||
<img src="{{$item['program']->image ?? 'images/noimage.png'}}">
|
||||
@if($isCurrent)
|
||||
<div href="{{route('luister.live')}}" class="onair" title="Nu live!">Nu live!</div>
|
||||
@endif
|
||||
<div class="program-title">
|
||||
@if($isCurrent)
|
||||
<div class="current-marker"><span>On air</span></div>
|
||||
@endif
|
||||
{{$item['program']->name}}
|
||||
</div>
|
||||
<div class="program-times"><i class="fa-regular fa-clock"></i>
|
||||
@@ -26,5 +26,5 @@
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
@endforeach
|
||||
|
||||
@@ -3,11 +3,13 @@
|
||||
@include('widgets/mediaplayer')
|
||||
|
||||
@section('title')
|
||||
@if ($podcast)
|
||||
Fragment gemist
|
||||
@else
|
||||
Fragment {{$title}} niet gevonden
|
||||
@endif
|
||||
@if($podcast)
|
||||
{{ $podcast->title }}
|
||||
@elseif($isPodcast)
|
||||
NH Gooi Podcast
|
||||
@else
|
||||
Fragment gemist
|
||||
@endif
|
||||
@endsection
|
||||
|
||||
@section('page_class')
|
||||
@@ -18,14 +20,18 @@
|
||||
<ul class="bread_crumb">
|
||||
<li><a title="Home" href="/">Home</a></li>
|
||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||
<li><a title="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>
|
||||
@if($podcast && $podcast->program)
|
||||
<li><a title="{{$podcast->program->name}}"
|
||||
href="{{route('gemist.programma') . $podcast->program->url}}">{{$podcast->program->name}}</a></li>
|
||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||
@endif
|
||||
<li>Fragment</li>
|
||||
<li>{{ $podcast->title }}</li>
|
||||
</ul>
|
||||
@endsection
|
||||
|
||||
@@ -84,6 +90,7 @@
|
||||
@if ($podcast)
|
||||
<?php
|
||||
$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;
|
||||
?>
|
||||
|
||||
@@ -91,7 +98,6 @@
|
||||
<div class="row news_post">
|
||||
<div class="col-12 col-md content_container">
|
||||
<div class="box full-width post single small_image md_margin_top">
|
||||
<h1 class="page_title">{{$podcast->title}}</h1>
|
||||
<div class="post_body">
|
||||
<ul class="post_details clearfix">
|
||||
<li class="detail date">
|
||||
@@ -100,14 +106,14 @@
|
||||
</li>
|
||||
@if($podcast->program)
|
||||
<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>
|
||||
@endif
|
||||
</ul>
|
||||
|
||||
<div class="announcement">
|
||||
<audio controls>
|
||||
<source src="{{$audioUrl}}" type="audio/mpeg"/>
|
||||
<source src="{{$streamUrl}}" type="audio/mpeg"/>
|
||||
</audio>
|
||||
<div class="clearfix">
|
||||
<a class="action_button btn" href="{{$audioUrl}}" title="Download dit fragment als MP3">
|
||||
@@ -150,15 +156,15 @@
|
||||
<div data-tabs>
|
||||
<div class="tabs">
|
||||
<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>
|
||||
</div>
|
||||
<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="#"
|
||||
data-loadmorenews='{"container":["#items-podcasts"]}'>
|
||||
<span class="fas fa-spinner fa-spin" id="loading"></span>
|
||||
Meer fragmenten
|
||||
Meer {{$isPodcast ? 'afleveringen' : 'fragmenten'}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -79,7 +79,8 @@
|
||||
'class' => 'd-flex flex-column justify-content-end flex-grow-1'
|
||||
],
|
||||
'showAction' => true,
|
||||
'podcasts' => array_slice($podcasts, 0, 8)])
|
||||
'podcasts' => array_slice($podcasts, 0, 8),
|
||||
'isPodcast' => $isPodcast])
|
||||
</div>
|
||||
|
||||
@else
|
||||
@@ -98,7 +99,7 @@
|
||||
</h4>
|
||||
</div>
|
||||
<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="#"
|
||||
data-loadmorenews='{"container":["#items-podcasts"]}'>
|
||||
<span class="fas fa-spinner fa-spin" id="loading"></span>
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
@extends('layouts/full')
|
||||
|
||||
@section('title')
|
||||
Fragment gemist
|
||||
@if(isset($program))
|
||||
{{ $program->name }}
|
||||
@else
|
||||
NH Gooi Podcast
|
||||
@endif
|
||||
@endsection
|
||||
|
||||
@section('page_class')
|
||||
@@ -12,14 +16,12 @@
|
||||
<ul class="bread_crumb ">
|
||||
<li><a title="Home" href="/">Home</a></li>
|
||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||
<li><a title="Fragment gemist" href="{{route('gemist')}}">Fragment gemist</a></li>
|
||||
<li class="separator"><i class="fa-solid fa-chevron-right"></i></li>
|
||||
<li>NH Gooi podcast</li>
|
||||
@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><a title="{{$program->name}}"
|
||||
href="/podcast{{$program->url}}">{{$program->name}}</a></li>
|
||||
@endif
|
||||
<li>Fragmenten</li>
|
||||
</ul>
|
||||
@endsection
|
||||
|
||||
@@ -28,8 +30,7 @@
|
||||
<div class="row news_post">
|
||||
<div class="col-12 col-md content_container md_padding_top_80">
|
||||
@if(isset($program))
|
||||
<div class="box full-width post single">
|
||||
<h1 class="page_title">{{$program->name}}</h1>
|
||||
<div class="no-box full-width post single">
|
||||
<div class="post_body">
|
||||
<div class="content_box clearfix section_margin_top">
|
||||
<div class="post_content page_margin_top_section ">
|
||||
@@ -43,12 +44,12 @@
|
||||
|
||||
<div class="page_layout clearfix">
|
||||
<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>
|
||||
@else
|
||||
<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>
|
||||
@endif
|
||||
</div>
|
||||
@@ -62,7 +63,7 @@
|
||||
</h4>
|
||||
</div>
|
||||
<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="#"
|
||||
data-loadmorenews='{"container":["#items-podcasts"]}'>
|
||||
<span class="fas fa-spinner fa-spin" id="loading"></span>
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
<div id="host" class="box">
|
||||
<ul class="list">
|
||||
@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
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<h2>Contact met de redactie</h2>
|
||||
<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="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>
|
||||
<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>
|
||||
|
||||
@@ -119,13 +119,9 @@ function buildMenu($menu, $ismobile)
|
||||
<nav class="d-none d-md-flex">
|
||||
<div></div>
|
||||
<ul class="menu d-none d-lg-block">
|
||||
<li class="{{isActive('/', false) ? "selected" : ""}}">
|
||||
<a href="/" title="Home">Home</a>
|
||||
<li class="{{isActive('/', false) || isActive('/nieuws', false) ? "selected" : ""}}">
|
||||
<a href="/" title="Nieuws">Nieuws</a>
|
||||
</li>
|
||||
<?php /*@php($newsUrl = '/nieuws')
|
||||
<li class="{{isActive($newsUrl, false) ? "selected" : ""}}">
|
||||
<a href="{{$newsUrl}}" title="Nieuws">Nieuws</a>
|
||||
</li>*/ ?>
|
||||
{!! buildMenu($menu, false) !!}
|
||||
<li></li>
|
||||
</ul>
|
||||
@@ -142,12 +138,8 @@ function buildMenu($menu, $ismobile)
|
||||
<a href="javascript:void(0)"><i class="fa-solid fa-xmark"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="{{isActive('/', false) ? "selected" : ""}}">
|
||||
<a href="/" title="Home">Home</a>
|
||||
</li>
|
||||
@php($newsUrl = '/nieuws')
|
||||
<li class="{{isActive($newsUrl, false) ? "selected" : ""}}">
|
||||
<a href="{{$newsUrl}}" title="Nieuws">Nieuws</a>
|
||||
<li class="{{isActive('/', false) || isActive('/nieuws', false) ? "selected" : ""}}">
|
||||
<a href="/" title="Nieuws">Nieuws</a>
|
||||
</li>
|
||||
{!! buildMenu($menu, true) !!}
|
||||
</ul>
|
||||
|
||||
@@ -33,9 +33,11 @@
|
||||
$(document).on('onAirUpdated', function (evt, data) {
|
||||
var title = data.current ? data.current.title : '';
|
||||
var artist = data.current ? data.current.artist : '';
|
||||
if (data.inProgram) {
|
||||
title = data.program.name;
|
||||
artist = data.program.tagline;
|
||||
if (!data.current) {
|
||||
// title = data.program.name;
|
||||
// artist = data.program.tagline;
|
||||
$nowPlaying.container.slideUp();
|
||||
return;
|
||||
}
|
||||
$nowPlaying.title.text(title).attr('title', title);
|
||||
$nowPlaying.artist.text(artist).attr('title', artist);
|
||||
|
||||
56
resources/views/widgets/podcastplayer.blade.php
Normal file
56
resources/views/widgets/podcastplayer.blade.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<div class="content pt-2">
|
||||
@if($podcast == null)
|
||||
<span>De podcast kan helaas (op dit moment) niet weergegeven worden.</span>
|
||||
@else
|
||||
@include('widgets/mediaplayer')
|
||||
|
||||
@if ($podcast)
|
||||
<?php
|
||||
$audioUrl = url($apiUrl . 'podcast/download' . $podcast->url . "?auth=" . $podcast->auth);
|
||||
$popoutUrl = route('luister.podcast') . $podcast->url . '?auth=' . $podcast->auth;
|
||||
?>
|
||||
<div class="announcement p-3">
|
||||
<h3 class="page_title">{{$podcast->title}}</h3>
|
||||
<div class="post_body">
|
||||
<ul class="post_details clearfix">
|
||||
<li class="detail date">
|
||||
<i class="fa-regular fa-clock"></i>
|
||||
{{ Formatter::relativeDate($podcast->created) }}
|
||||
</li>
|
||||
@if($podcast->program)
|
||||
<li class="detail author">
|
||||
<a href="{{ route('programma') . $podcast->program->url }}">{{ $podcast->program->name }}</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
|
||||
<audio controls>
|
||||
<source src="{{$audioUrl}}" type="audio/mpeg" />
|
||||
</audio>
|
||||
<div class="clearfix">
|
||||
<a class="action_button btn" href="{{$audioUrl}}" title="Download dit fragment als MP3">
|
||||
<span>Download fragment</span>
|
||||
</a>
|
||||
<a class="action_button btn player" href="{{$popoutUrl}}">
|
||||
<span>Luister in nieuw venster</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="row content_box clearfix mt-2">
|
||||
@if($podcast->image)
|
||||
<div class="col-3">
|
||||
<img src="{{$imgBase . $podcast->image->url}}" title="{{$podcast->image->title}}"
|
||||
style="display: block; width: 100%;" />
|
||||
<div class="sentence">
|
||||
<span class="text">{{$podcast->image->title}}</span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="col excerpt">{!!$podcast->content!!}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
@@ -17,6 +17,7 @@ Route::get('/nieuws', 'NewsController@overview')->name('nieuws');
|
||||
Route::get('/nieuws/more', 'NewsController@more')->name('nieuws.more');
|
||||
Route::get('/nieuws/populair', 'NewsController@populair')->name('nieuws.populair');
|
||||
Route::get('/nieuws/regio/{region}', 'NewsController@regionlist' )->where(['region' => '[a-z0-9]+'])->name('nieuws.regio');
|
||||
Route::get('/nieuws/tag/{tag}', 'NewsController@taglist' )->where(['tag' => '[a-z0-9-]+'])->name('nieuws.tag');
|
||||
Route::get('/nieuws/thema/{theme}', 'NewsController@themelist' )->where(['themelist' => '[a-z0-9]+'])->name('nieuws.thema');
|
||||
Route::get('/nieuws/{id}/{title}', 'NewsController@show')->where(['id' => '\d+'])->name('nieuws.detail');
|
||||
Route::get('/nieuws/zoeken/{query}', 'NewsController@search')->name('nieuws.zoeken');
|
||||
@@ -52,6 +53,7 @@ Route::get('/luister/fragment')->name('luister.podcast');
|
||||
Route::get('/luister/programma/{year}/{month}/{day}/{hour}/{duration}/{offset?}', 'StreamController@program')
|
||||
->where(['id' => '\d+', 'year' => '20\d\d', 'month' => '\d\d?', 'day' => '\d\d?', 'hour' => '\d\d?', 'duration' => '\d\d?', 'offset' => '\d\d?']);
|
||||
Route::get('/luister/programma')->name('luister.programma');
|
||||
Route::get('/luister/fragment/inline/{id}', 'StreamController@inline')->where(['id' => '\d+']);
|
||||
|
||||
Route::get('/gemist', 'RadioController@podcasts')->name('gemist');
|
||||
Route::get('/gemist/zoeken/{query}', 'RadioController@searchpodcast')->name('gemist.zoeken');
|
||||
@@ -67,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/{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/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) {
|
||||
if($query = $request->get('query', null)) {
|
||||
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\\VerificationDirector' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationDirector.php',
|
||||
'Mockery\\VerificationExpectation' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationExpectation.php',
|
||||
'Model\\Blog' => '/srv/api/common/classes/Blog.php',
|
||||
'Model\\CalendarEvent' => '/srv/api/common/classes/CalendarEvent.php',
|
||||
'Model\\JobOpening' => '/srv/api/common/classes/JobOpening.php',
|
||||
'Model\\Kerkdienst' => '/srv/api/common/classes/Kerkdienst.php',
|
||||
'Model\\MetaData' => '/srv/api/common/classes/MetaData.php',
|
||||
'Model\\Model' => '/srv/api/common/classes/Model.php',
|
||||
'Model\\NewsImage' => '/srv/api/common/classes/NewsImage.php',
|
||||
'Model\\NewsItem' => '/srv/api/common/classes/NewsItem.php',
|
||||
'Model\\NewsSource' => '/srv/api/common/classes/NewsSource.php',
|
||||
'Model\\Podcast' => '/srv/api/common/classes/Podcast.php',
|
||||
'Model\\Program' => '/srv/api/common/classes/Program.php',
|
||||
'Model\\ProgramHost' => '/srv/api/common/classes/ProgramHost.php',
|
||||
'Model\\Track' => '/srv/api/common/classes/Track.php',
|
||||
'Model\\Blog' => $baseDir . '/app/Models/Blog.php',
|
||||
'Model\\CalendarEvent' => $baseDir . '/app/Models/CalendarEvent.php',
|
||||
'Model\\JobOpening' => $baseDir . '/app/Models/JobOpening.php',
|
||||
'Model\\Kerkdienst' => $baseDir . '/app/Models/Kerkdienst.php',
|
||||
'Model\\MetaData' => $baseDir . '/app/Models/MetaData.php',
|
||||
'Model\\Model' => $baseDir . '/app/Models/Model.php',
|
||||
'Model\\NewsImage' => $baseDir . '/app/Models/NewsImage.php',
|
||||
'Model\\NewsItem' => $baseDir . '/app/Models/NewsItem.php',
|
||||
'Model\\NewsSource' => $baseDir . '/app/Models/NewsSource.php',
|
||||
'Model\\Podcast' => $baseDir . '/app/Models/Podcast.php',
|
||||
'Model\\Program' => $baseDir . '/app/Models/Program.php',
|
||||
'Model\\ProgramHost' => $baseDir . '/app/Models/ProgramHost.php',
|
||||
'Model\\Track' => $baseDir . '/app/Models/Track.php',
|
||||
'Monolog\\Attribute\\AsMonologProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php',
|
||||
'Monolog\\DateTimeImmutable' => $vendorDir . '/monolog/monolog/src/Monolog/DateTimeImmutable.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'),
|
||||
'NunoMaduro\\Collision\\' => array($vendorDir . '/nunomaduro/collision/src'),
|
||||
'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\\Flysystem\\' => array($vendorDir . '/league/flysystem/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\\' =>
|
||||
array (
|
||||
0 => '/srv/api/common/classes',
|
||||
0 => __DIR__ . '/../..' . '/app/Models',
|
||||
),
|
||||
'League\\MimeTypeDetection\\' =>
|
||||
array (
|
||||
@@ -3169,19 +3169,19 @@ class ComposerStaticInit5216a35d72a5119d2f4646cd700f802d
|
||||
'Mockery\\Undefined' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Undefined.php',
|
||||
'Mockery\\VerificationDirector' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationDirector.php',
|
||||
'Mockery\\VerificationExpectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationExpectation.php',
|
||||
'Model\\Blog' => '/srv/api/common/classes/Blog.php',
|
||||
'Model\\CalendarEvent' => '/srv/api/common/classes/CalendarEvent.php',
|
||||
'Model\\JobOpening' => '/srv/api/common/classes/JobOpening.php',
|
||||
'Model\\Kerkdienst' => '/srv/api/common/classes/Kerkdienst.php',
|
||||
'Model\\MetaData' => '/srv/api/common/classes/MetaData.php',
|
||||
'Model\\Model' => '/srv/api/common/classes/Model.php',
|
||||
'Model\\NewsImage' => '/srv/api/common/classes/NewsImage.php',
|
||||
'Model\\NewsItem' => '/srv/api/common/classes/NewsItem.php',
|
||||
'Model\\NewsSource' => '/srv/api/common/classes/NewsSource.php',
|
||||
'Model\\Podcast' => '/srv/api/common/classes/Podcast.php',
|
||||
'Model\\Program' => '/srv/api/common/classes/Program.php',
|
||||
'Model\\ProgramHost' => '/srv/api/common/classes/ProgramHost.php',
|
||||
'Model\\Track' => '/srv/api/common/classes/Track.php',
|
||||
'Model\\Blog' => __DIR__ . '/../..' . '/app/Models/Blog.php',
|
||||
'Model\\CalendarEvent' => __DIR__ . '/../..' . '/app/Models/CalendarEvent.php',
|
||||
'Model\\JobOpening' => __DIR__ . '/../..' . '/app/Models/JobOpening.php',
|
||||
'Model\\Kerkdienst' => __DIR__ . '/../..' . '/app/Models/Kerkdienst.php',
|
||||
'Model\\MetaData' => __DIR__ . '/../..' . '/app/Models/MetaData.php',
|
||||
'Model\\Model' => __DIR__ . '/../..' . '/app/Models/Model.php',
|
||||
'Model\\NewsImage' => __DIR__ . '/../..' . '/app/Models/NewsImage.php',
|
||||
'Model\\NewsItem' => __DIR__ . '/../..' . '/app/Models/NewsItem.php',
|
||||
'Model\\NewsSource' => __DIR__ . '/../..' . '/app/Models/NewsSource.php',
|
||||
'Model\\Podcast' => __DIR__ . '/../..' . '/app/Models/Podcast.php',
|
||||
'Model\\Program' => __DIR__ . '/../..' . '/app/Models/Program.php',
|
||||
'Model\\ProgramHost' => __DIR__ . '/../..' . '/app/Models/ProgramHost.php',
|
||||
'Model\\Track' => __DIR__ . '/../..' . '/app/Models/Track.php',
|
||||
'Monolog\\Attribute\\AsMonologProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Attribute/AsMonologProcessor.php',
|
||||
'Monolog\\DateTimeImmutable' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/DateTimeImmutable.php',
|
||||
'Monolog\\ErrorHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/ErrorHandler.php',
|
||||
|
||||
Reference in New Issue
Block a user