Changes by CLaude
Build and Deploy / build (push) Failing after 44s

This commit is contained in:
root
2026-08-18 09:31:05 -01:00
parent 9bee381f6c
commit 30893eb7a7
21 changed files with 276 additions and 85 deletions
+4 -4
View File
@@ -9,19 +9,19 @@ class CalendarController extends Controller
public function show(Request $request, $id) public function show(Request $request, $id)
{ {
parent::registerView($request, 'agenda', $id); parent::registerView($request, 'agenda', $id);
$apiResult = $this->API('agenda/item/' . (int)$id); $apiResult = (object) $this->API('agenda/item/' . (int)$id);
$calendarEvent = new \Model\CalendarEvent($apiResult->news); $calendarEvent = new \Model\CalendarEvent((object) $apiResult->news);
return view('calendarevent', array_merge($this->getSidebareData(), ['event' => $calendarEvent, 'metadata' => $calendarEvent->metadata])); return view('calendarevent', array_merge($this->getSidebareData(), ['event' => $calendarEvent, 'metadata' => $calendarEvent->metadata]));
} }
public function overview(Request $request) public function overview(Request $request)
{ {
$apiResult = $this->API('agenda/overzicht?aantal=100'); $apiResult = (object) $this->API('agenda/overzicht?aantal=100');
$calendar = []; $calendar = [];
foreach($apiResult->events as $calendarItem) foreach($apiResult->events as $calendarItem)
{ {
$calendar[] = new \Model\CalendarEvent($calendarItem); $calendar[] = new \Model\CalendarEvent((object) $calendarItem);
} }
return view('calendarlist', array_merge($this->getSidebareData(), ['events' => $calendar])); return view('calendarlist', array_merge($this->getSidebareData(), ['events' => $calendar]));
+1 -1
View File
@@ -12,7 +12,7 @@ class ContactController extends Controller
{ {
public function show() public function show()
{ {
$page = $this->API('statisch/contact'); $page = (object) $this->API('statisch/contact');
if ($page == null) { if ($page == null) {
return abort(404); return abort(404);
} }
+15 -8
View File
@@ -10,24 +10,31 @@ class HomeController extends Controller
public function show(Request $request) public function show(Request $request)
{ {
$page = (int) $request->get('pagina', 1); $page = (int) $request->get('pagina', 1);
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int) max(1, $page) . '&aantal=10'); $apiResult = (object) $this->API('nieuws/overzicht?pagina=' . (int) max(1, $page) . '&aantal=10');
$news = []; $news = [];
if ($apiResult && isset($apiResult->news)) {
foreach ($apiResult->news as $newsItem) { foreach ($apiResult->news as $newsItem) {
$news[] = new \Model\NewsItem($newsItem); $news[] = new \Model\NewsItem((object) $newsItem);
}
} }
$apiResult = $this->API('nieuws/liveblogs'); $apiResult = (object) $this->API('nieuws/liveblogs');
$liveblogs = $apiResult->liveblogs; $liveblogs = $apiResult && isset($apiResult->liveblogs) ? $apiResult->liveblogs : [];
$populair = []; $populair = [];
$apiResult = $this->API('nieuws/populair?pagina=' . (int) max(1, $page) . '&aantal=5'); $apiResult = (object) $this->API('nieuws/populair?pagina=' . (int) max(1, $page) . '&aantal=5');
if ($apiResult && isset($apiResult->news)) {
foreach ($apiResult->news as $newsItem) { foreach ($apiResult->news as $newsItem) {
$populair[] = new \Model\NewsItem($newsItem); $populair[] = new \Model\NewsItem((object) $newsItem);
}
} }
$apiResult = $this->API('podcast/overzicht?aantal=15'); $podcast = null;
$apiResult = (object) $this->API('podcast/overzicht?aantal=15');
if ($apiResult && isset($apiResult->podcasts) && !empty($apiResult->podcasts)) {
$index = array_rand($apiResult->podcasts); $index = array_rand($apiResult->podcasts);
$podcast = new \Model\Podcast($apiResult->podcasts[$index]); $podcast = new \Model\Podcast((object) $apiResult->podcasts[$index]);
}
return view('home', ['populair' => $populair, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'liveblogs' => $liveblogs, 'searchURL' => 'nieuws/zoeken']); return view('home', ['populair' => $populair, 'podcast' => $podcast, 'title' => 'Home', 'news' => $news, 'liveblogs' => $liveblogs, 'searchURL' => 'nieuws/zoeken']);
} }
} }
+2 -2
View File
@@ -15,7 +15,7 @@ class ImagesController extends Controller
public function show(Request $request, $id) public function show(Request $request, $id)
{ {
$apiResult = $this->API('beelden/details/' . $id); $apiResult = (object) $this->API('beelden/details/' . $id);
$imagesItem = new \Model\NewsItem($apiResult->images); $imagesItem = new \Model\NewsItem($apiResult->images);
return view('imagesitem', ['images' => $imagesItem, 'metadata' => $imagesItem->metadata]); return view('imagesitem', ['images' => $imagesItem, 'metadata' => $imagesItem->metadata]);
@@ -39,7 +39,7 @@ class ImagesController extends Controller
private function listImages(Request $request, $url, $title = null) private function listImages(Request $request, $url, $title = null)
{ {
$page = (int)$request->get('pagina', 1); $page = (int)$request->get('pagina', 1);
$apiResult = $this->API('beelden/' . $url . '?pagina=' . (int)max(1, $page)); $apiResult = (object) $this->API('beelden/' . $url . '?pagina=' . (int)max(1, $page));
$images = []; $images = [];
foreach($apiResult->items as $imagesItem) foreach($apiResult->items as $imagesItem)
{ {
+1 -1
View File
@@ -16,7 +16,7 @@ class JobsController extends Controller
public function show(Request $request, $id) public function show(Request $request, $id)
{ {
parent::registerView($request, 'nieuws', $id); parent::registerView($request, 'nieuws', $id);
$apiResult = $this->API('vacatures/details/' . $id); $apiResult = (object) $this->API('vacatures/details/' . $id);
$jobsItem = new \Model\JobOpening($apiResult->item); $jobsItem = new \Model\JobOpening($apiResult->item);
return view('jobsitem', array_merge($this->getSidebareData(), ['job' => $jobsItem, 'metadata' => $jobsItem->metadata])); return view('jobsitem', array_merge($this->getSidebareData(), ['job' => $jobsItem, 'metadata' => $jobsItem->metadata]));
} }
@@ -10,7 +10,7 @@ class KerkdienstController extends Controller
public function main(Request $request) public function main(Request $request)
{ {
parent::registerView($request, 'kerkdienst', 0); parent::registerView($request, 'kerkdienst', 0);
$apiResult = $this->API('kerkdienst'); $apiResult = (object) $this->API('kerkdienst');
return view('kerkdienst', ['kerkdienst' => new \Model\Kerkdienst($apiResult)]); return view('kerkdienst', ['kerkdienst' => new \Model\Kerkdienst((object) $apiResult)]);
} }
} }
+22 -22
View File
@@ -21,8 +21,8 @@ class NewsController extends Controller
if (request()->get('preview', null) != null) { if (request()->get('preview', null) != null) {
$preview = "?preview=" . request()->get('preview'); $preview = "?preview=" . request()->get('preview');
} }
$apiResult = $this->API('nieuws/bericht/' . $id . $preview); $apiResult = (object) $this->API('nieuws/bericht/' . $id . $preview);
$newsItem = new \Model\NewsItem($apiResult->news); $newsItem = new \Model\NewsItem((object) $apiResult->news);
switch ($apiResult->version) { switch ($apiResult->version) {
case 1: case 1:
@@ -54,10 +54,10 @@ class NewsController extends Controller
{ {
$page = (int) $request->get('pagina', 1); $page = (int) $request->get('pagina', 1);
$id = $request->get('id', ''); $id = $request->get('id', '');
$apiResult = $this->API('nieuws/overzicht?pagina=' . (int) max(1, $page) . '&aantal=5'); $apiResult = (object) $this->API('nieuws/overzicht?pagina=' . (int) max(1, $page) . '&aantal=5');
$news = []; $news = [];
foreach ($apiResult->news as $newsItem) { foreach ($apiResult->news as $newsItem) {
$news[] = new \Model\NewsItem($newsItem); $news[] = new \Model\NewsItem((object) $newsItem);
} }
return view('partial/newslist_small', ['id' => $id, 'news' => $news]); return view('partial/newslist_small', ['id' => $id, 'news' => $news]);
@@ -68,9 +68,9 @@ class NewsController extends Controller
$page = (int) $request->get('pagina', 1); $page = (int) $request->get('pagina', 1);
$id = $request->get('id', ''); $id = $request->get('id', '');
$populair = []; $populair = [];
$apiResult = $this->API('nieuws/populair?pagina=' . (int) max(1, $page) . '&aantal=5'); $apiResult = (object) $this->API('nieuws/populair?pagina=' . (int) max(1, $page) . '&aantal=5');
foreach ($apiResult->news as $_newsItem) { foreach ($apiResult->news as $_newsItem) {
$populair[] = new \Model\NewsItem($_newsItem); $populair[] = new \Model\NewsItem((object) $_newsItem);
} }
return view('partial/newslist_small', ['id' => $id, 'news' => $populair]); return view('partial/newslist_small', ['id' => $id, 'news' => $populair]);
@@ -99,9 +99,9 @@ class NewsController extends Controller
public function activeblog() public function activeblog()
{ {
$apiResult = $this->API('blog/overzicht'); $apiResult = (object) $this->API('blog/overzicht');
if (count($apiResult)) { if (count((array) $apiResult)) {
$blog = new \Model\Blog($apiResult[0]); $blog = new \Model\Blog((object) $apiResult[0]);
if ($blog->is_active) { if ($blog->is_active) {
return redirect($blog->url); return redirect($blog->url);
} }
@@ -115,9 +115,9 @@ class NewsController extends Controller
parent::registerView($request, 'blog', $id); parent::registerView($request, 'blog', $id);
$blog = $this->API('nieuws/liveblog/' . (int) $id); $blog = (object) $this->API('nieuws/liveblog/' . (int) $id);
foreach ($blog->artikelen as &$item) { foreach ($blog->artikelen as &$item) {
$item = new \Model\NewsItem($item); $item = new \Model\NewsItem((object) $item);
} }
if (request()->ajax()) { if (request()->ajax()) {
@@ -140,38 +140,38 @@ class NewsController extends Controller
if ($url == 'overzicht' && $request->get('dateStart', null) && $request->get('dateEnd', null)) { if ($url == 'overzicht' && $request->get('dateStart', null) && $request->get('dateEnd', null)) {
$url = 'datum/' . $request->get('dateStart', null) . '/' . $request->get('dateEnd', null); $url = 'datum/' . $request->get('dateStart', null) . '/' . $request->get('dateEnd', null);
} }
$apiResult = $this->API('nieuws/' . $url . '?pagina=' . (int) max(1, $page) . ($total ? '&aantal=' . $total : '')); $apiResult = (object) $this->API('nieuws/' . $url . '?pagina=' . (int) max(1, $page) . ($total ? '&aantal=' . $total : ''));
$news = []; $news = [];
foreach ($apiResult->news ?? [] as $newsItem) { foreach ($apiResult->news ?? [] as $newsItem) {
$news[] = new \Model\NewsItem($newsItem); $news[] = new \Model\NewsItem((object) $newsItem);
} }
$populair = []; $populair = [];
if ($title == null) { if ($title == null) {
$total = 5; $total = 5;
} }
$apiResult = $this->API('nieuws/populair?pagina=' . (int) max( $apiResult = (object) $this->API('nieuws/populair?pagina=' . (int) max(
1, 1,
$page $page
) . ($total ? '&aantal=' . $total : '')); ) . ($total ? '&aantal=' . $total : ''));
foreach ($apiResult->news as $newsItem) { foreach ($apiResult->news as $newsItem) {
$populair[] = new \Model\NewsItem($newsItem); $populair[] = new \Model\NewsItem((object) $newsItem);
} }
$podcast = null; $podcast = null;
$podcasts = []; $podcasts = [];
if ($title == null) { if ($title == null) {
$apiResult = $this->API('podcast/overzicht?aantal=3'); $apiResult = (object) $this->API('podcast/overzicht?aantal=3');
$podcast = new \Model\Podcast($apiResult->podcasts[0]); $podcast = new \Model\Podcast((object) $apiResult->podcasts[0]);
foreach ($apiResult->podcasts as $_podcast) { foreach ($apiResult->podcasts as $_podcast) {
$podcasts[] = new \Model\Podcast($_podcast); $podcasts[] = new \Model\Podcast((object) $_podcast);
} }
} }
$newsItems = []; $newsItems = [];
$apiResult = $this->API('nieuws/overzicht?aantal=5'); $apiResult = (object) $this->API('nieuws/overzicht?aantal=5');
foreach ($apiResult->news as $_newsItem) { foreach ($apiResult->news as $_newsItem) {
$newsItems[] = new \Model\NewsItem($_newsItem); $newsItems[] = new \Model\NewsItem((object) $_newsItem);
} }
return view($request->ajax() ? ($title == null ? 'partial/home_newslist_small' : 'partial/newslist_small') : ($title == null ? 'news' : 'newslist'), ['populair' => $populair, 'newsItems' => $newsItems, 'podcasts' => $podcasts, 'podcast' => $podcast, 'id' => $id, 'title' => $title, 'news' => $news, 'searchURL' => 'nieuws/zoeken']); return view($request->ajax() ? ($title == null ? 'partial/home_newslist_small' : 'partial/newslist_small') : ($title == null ? 'news' : 'newslist'), ['populair' => $populair, 'newsItems' => $newsItems, 'podcasts' => $podcasts, 'podcast' => $podcast, 'id' => $id, 'title' => $title, 'news' => $news, 'searchURL' => 'nieuws/zoeken']);
@@ -179,7 +179,7 @@ class NewsController extends Controller
public function popular() public function popular()
{ {
$apiResult = $this->API('nieuws/populair'); $apiResult = (object) $this->API('nieuws/populair');
$news = []; $news = [];
foreach ($apiResult->news as $newsItem) { foreach ($apiResult->news as $newsItem) {
$news[] = new \Model\NewsItem($newsItem); $news[] = new \Model\NewsItem($newsItem);
@@ -190,7 +190,7 @@ class NewsController extends Controller
public function regionieuws() public function regionieuws()
{ {
$data = $this->API('nieuws/regionieuws.json'); $data = (object) $this->API('nieuws/regionieuws.json');
return view('listen', [ return view('listen', [
'source' => $this->API_URL . 'nieuws/regionieuws.mp3', 'source' => $this->API_URL . 'nieuws/regionieuws.mp3',
'title' => 'Regionieuws', 'title' => 'Regionieuws',
+6 -6
View File
@@ -13,7 +13,7 @@ class PodcastController extends Controller
$viewData = []; $viewData = [];
if((int)$programma > 0) { if((int)$programma > 0) {
$action = 'programma/' . (int)$programma; $action = 'programma/' . (int)$programma;
$viewData['program'] = new \Model\Program($this->API('programma/details/' . (int)$programma)); $viewData['program'] = new \Model\Program((object) $this->API('programma/details/' . (int)$programma));
} }
return $this->getPodcastList($request, $action, $viewData); return $this->getPodcastList($request, $action, $viewData);
@@ -22,7 +22,7 @@ class PodcastController extends Controller
private function getPodcastList(Request $request, $action, $viewData = []) private function getPodcastList(Request $request, $action, $viewData = [])
{ {
$page = (int)$request->get('pagina', 1); $page = (int)$request->get('pagina', 1);
$apiResult = $this->API('podcast/' . $action . '?pagina=' . (int)max(1, $page) . '&aantal=8'); $apiResult = (object) $this->API('podcast/' . $action . '?pagina=' . (int)max(1, $page) . '&aantal=8');
$podcasts = []; $podcasts = [];
foreach($apiResult->podcasts as $podcast) foreach($apiResult->podcasts as $podcast)
{ {
@@ -35,15 +35,15 @@ class PodcastController extends Controller
public function podcast(Request $request, $id) public function podcast(Request $request, $id)
{ {
parent::registerView($request, 'podcast', $id); parent::registerView($request, 'podcast', $id);
$apiResult = $this->API('podcast/details/' . (int)$id); $apiResult = (object) $this->API('podcast/details/' . (int)$id);
$podcast = new \Model\Podcast($apiResult); $podcast = new \Model\Podcast((object) $apiResult);
$podcasts = []; $podcasts = [];
if($podcast->program) { if($podcast->program) {
$apiResult = $this->API('podcast/programma/' . (int)$podcast->program->id . '?pagina=1&aantal=5'); $apiResult = (object) $this->API('podcast/programma/' . (int)$podcast->program->id . '?pagina=1&aantal=5');
$podcasts = []; $podcasts = [];
foreach($apiResult->podcasts as $p) foreach($apiResult->podcasts as $p)
{ {
$podcasts[] = new \Model\Podcast($p); $podcasts[] = new \Model\Podcast((object) $p);
} }
} }
return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata, 'podcasts' => $podcasts, 'isPodcast' => true]); return view('podcastitem', ['podcast' => $podcast, 'metadata' => $podcast->metadata, 'podcasts' => $podcasts, 'isPodcast' => true]);
+12 -12
View File
@@ -11,7 +11,7 @@ class RadioController extends Controller
{ {
$start = $date ? (new \DateTime($date))->format('Y-m-d') : (new \DateTime("-2 day"))->format('Y-m-d'); $start = $date ? (new \DateTime($date))->format('Y-m-d') : (new \DateTime("-2 day"))->format('Y-m-d');
$end = $date ? (new \DateTime($date))->modify('+1 day')->format('Y-m-d') : (new \DateTime("+3 day"))->format('Y-m-d'); $end = $date ? (new \DateTime($date))->modify('+1 day')->format('Y-m-d') : (new \DateTime("+3 day"))->format('Y-m-d');
$apiResult = $this->API('programma/schema/periode/' . $start . '/' . $end); $apiResult = (object) $this->API('programma/schema/periode/' . $start . '/' . $end);
$schedule = []; $schedule = [];
foreach($apiResult->schedule as $program) foreach($apiResult->schedule as $program)
{ {
@@ -19,7 +19,7 @@ class RadioController extends Controller
'starttime' => self::JsonToDateTime($program->start), 'starttime' => self::JsonToDateTime($program->start),
'endtime' => self::JsonToDateTime($program->end), 'endtime' => self::JsonToDateTime($program->end),
'shift' => 0, 'shift' => 0,
'program' => new \Model\Program($program->program) 'program' => new \Model\Program((object) $program->program)
]; ];
} }
@@ -49,11 +49,11 @@ class RadioController extends Controller
public function program($id) public function program($id)
{ {
$apiResult = $this->API('programma/details/' . (int)$id); $apiResult = (object) $this->API('programma/details/' . (int)$id);
if($apiResult == null) { if($apiResult == null) {
return abort(404); return abort(404);
} }
return view('radioprogram', ['program' => new \Model\Program($apiResult)]); return view('radioprogram', ['program' => new \Model\Program((object) $apiResult)]);
} }
public function podcast(Request $request, $id, $title = '') public function podcast(Request $request, $id, $title = '')
@@ -63,11 +63,11 @@ class RadioController extends Controller
} }
parent::registerView($request, 'podcast', $id); parent::registerView($request, 'podcast', $id);
$apiResult = $this->API('podcast/details/' . (int)$id); $apiResult = (object) $this->API('podcast/details/' . (int)$id);
$podcast = new \Model\Podcast($apiResult); $podcast = new \Model\Podcast((object) $apiResult);
$page = (int)$request->get('pagina', 1); $page = (int)$request->get('pagina', 1);
$apiResult = $this->API('podcast/overzicht?pagina=' . (int)max(1, $page) . '&aantal=6'); $apiResult = (object) $this->API('podcast/overzicht?pagina=' . (int)max(1, $page) . '&aantal=6');
$podcasts = []; $podcasts = [];
foreach($apiResult->podcasts as $_podcast) foreach($apiResult->podcasts as $_podcast)
{ {
@@ -83,7 +83,7 @@ class RadioController extends Controller
$viewData = []; $viewData = [];
if((int)$programma > 0) { if((int)$programma > 0) {
$action = 'programma/' . (int)$programma; $action = 'programma/' . (int)$programma;
$viewData['program'] = new \Model\Program($this->API('programma/details/' . (int)$programma)); $viewData['program'] = new \Model\Program((object) $this->API('programma/details/' . (int)$programma));
} }
return $this->getPodcastList($request, $action, array_merge($this->getSidebareData(), $viewData)); return $this->getPodcastList($request, $action, array_merge($this->getSidebareData(), $viewData));
@@ -99,13 +99,13 @@ class RadioController extends Controller
$programs = []; $programs = [];
$now = new \DateTimeImmutable('2 minutes ago'); $now = new \DateTimeImmutable('2 minutes ago');
$page = (int)$request->get('pagina', 1); $page = (int)$request->get('pagina', 1);
$apiResult = $this->API('programma/schema/recent?pagina=' . (int)max(1, $page) . '&aantal=12'); $apiResult = (object) $this->API('programma/schema/recent?pagina=' . (int)max(1, $page) . '&aantal=12');
foreach($apiResult->schedule as $item) { foreach($apiResult->schedule as $item) {
if(!$item->program->nonstop && !$item->program->rerun) { if(!$item->program->nonstop && !$item->program->rerun) {
$item->start = self::JsonToDateTime($item->start); $item->start = self::JsonToDateTime($item->start);
$item->end = self::JsonToDateTime($item->end); $item->end = self::JsonToDateTime($item->end);
$item->current = $item->end >= $now; $item->current = $item->end >= $now;
$item->program = new \Model\Program($item->program); $item->program = new \Model\Program((object) $item->program);
$programs[] = $item; $programs[] = $item;
} }
} }
@@ -116,11 +116,11 @@ class RadioController extends Controller
private function getPodcastList(Request $request, $action, $viewData = []) private function getPodcastList(Request $request, $action, $viewData = [])
{ {
$page = (int)$request->get('pagina', 1); $page = (int)$request->get('pagina', 1);
$apiResult = $this->API('podcast/' . $action . '?pagina=' . (int)max(1, $page) . '&aantal=12'); $apiResult = (object) $this->API('podcast/' . $action . '?pagina=' . (int)max(1, $page) . '&aantal=12');
$podcasts = []; $podcasts = [];
foreach($apiResult->podcasts as $podcast) foreach($apiResult->podcasts as $podcast)
{ {
$podcasts[] = new \Model\Podcast($podcast); $podcasts[] = new \Model\Podcast((object) $podcast);
} }
return view($request->ajax() ? 'partial/podcastitems' : 'podcastlist', array_merge($viewData, ['id' => 'items-podcasts', 'podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken', 'isPodcast' => false])); return view($request->ajax() ? 'partial/podcastitems' : 'podcastlist', array_merge($viewData, ['id' => 'items-podcasts', 'podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken', 'isPodcast' => false]));
+2 -2
View File
@@ -61,11 +61,11 @@ class SpecialController extends Controller
public function bart(Request $request) public function bart(Request $request)
{ {
$page = (int)$request->get('pagina', 1); $page = (int)$request->get('pagina', 1);
$apiResult = $this->API('blog/overzicht/2019-07-01/2019-07-10?pagina=' . (int)max(1, $page)); $apiResult = (object) $this->API('blog/overzicht/2019-07-01/2019-07-10?pagina=' . (int)max(1, $page));
$blog = []; $blog = [];
foreach($apiResult->items as $blogItem) foreach($apiResult->items as $blogItem)
{ {
$blog[] = new \Model\NewsItem($blogItem); $blog[] = new \Model\NewsItem((object) $blogItem);
} }
return view($request->ajax() ? 'bloglistitems' : 'bloglist', ['title' => 'De Nacht van Bart - 6 juli 2019', 'items' => $blog]); return view($request->ajax() ? 'bloglistitems' : 'bloglist', ['title' => 'De Nacht van Bart - 6 juli 2019', 'items' => $blog]);
+16
View File
@@ -14,7 +14,23 @@ class Blog extends Model {
public $url; public $url;
public function __construct($data, $images = null, $podcast = null) { public function __construct($data, $images = null, $podcast = null) {
// Convert arrays to objects for consistent handling
if(is_array($data)) {
$data = (object) $data;
}
parent::__construct($data); parent::__construct($data);
// Ensure id is a string, not an array
if(is_array($this->id)) {
$this->id = $this->id[0] ?? '';
}
// Ensure title is a string, not an array
if(is_array($this->title)) {
$this->title = $this->title[0] ?? '';
}
parent::ConvertToDateTime($this->start_date); parent::ConvertToDateTime($this->start_date);
parent::ConvertToDateTime($this->end_date); parent::ConvertToDateTime($this->end_date);
+18 -2
View File
@@ -18,7 +18,23 @@ class CalendarEvent extends Model {
public $tags; public $tags;
public function __construct($data, $images = null, $podcast = null) { public function __construct($data, $images = null, $podcast = null) {
// Convert arrays to objects for consistent handling
if(is_array($data)) {
$data = (object) $data;
}
parent::__construct($data); parent::__construct($data);
// Ensure id is a string, not an array
if(is_array($this->id)) {
$this->id = $this->id[0] ?? '';
}
// Ensure title is a string, not an array
if(is_array($this->title)) {
$this->title = $this->title[0] ?? '';
}
parent::ConvertToDateTime($this->starts); parent::ConvertToDateTime($this->starts);
parent::ConvertToDateTime($this->ends); parent::ConvertToDateTime($this->ends);
@@ -26,7 +42,7 @@ class CalendarEvent extends Model {
if(isset($data->keywords)) { if(isset($data->keywords)) {
if(is_array($data->keywords)) { if(is_array($data->keywords)) {
$this->keywords = $data->keywords; $this->keywords = $data->keywords;
} else if(trim($data->keywords)) { } else if(trim((string) $data->keywords)) {
$this->keywords = explode(' ', $data->keywords); $this->keywords = explode(' ', $data->keywords);
} }
} }
@@ -47,7 +63,7 @@ class CalendarEvent extends Model {
} }
} }
$this->url = "/agenda/{$this->id}/" . parent::url_slug($this->title); $this->url = "/agenda/{$this->id}/" . parent::url_slug($this->title ?? '');
$this->metadata = (new MetaData()) $this->metadata = (new MetaData())
->set('title', $this->title) ->set('title', $this->title)
->set('description', strip_tags($this->excerpt())) ->set('description', strip_tags($this->excerpt()))
+17 -1
View File
@@ -12,7 +12,23 @@ class JobOpening extends Model {
public $url; public $url;
public function __construct($data, $images = null, $podcast = null) { public function __construct($data, $images = null, $podcast = null) {
// Convert arrays to objects for consistent handling
if(is_array($data)) {
$data = (object) $data;
}
parent::__construct($data); parent::__construct($data);
// Ensure id is a string, not an array
if(is_array($this->id)) {
$this->id = $this->id[0] ?? '';
}
// Ensure title is a string, not an array
if(is_array($this->title)) {
$this->title = $this->title[0] ?? '';
}
parent::ConvertToDateTime($this->starts); parent::ConvertToDateTime($this->starts);
parent::ConvertToDateTime($this->ends); parent::ConvertToDateTime($this->ends);
@@ -20,7 +36,7 @@ class JobOpening extends Model {
if(isset($data->keywords)) { if(isset($data->keywords)) {
if(is_array($data->keywords)) { if(is_array($data->keywords)) {
$this->keywords = $data->keywords; $this->keywords = $data->keywords;
} else if(trim($data->keywords)) { } else if(trim((string) $data->keywords)) {
$this->keywords = explode(' ', $data->keywords); $this->keywords = explode(' ', $data->keywords);
} }
} }
+11
View File
@@ -7,7 +7,18 @@ class KerkdienstInstance extends Model {
public $start; public $start;
public function __construct($data) { public function __construct($data) {
// Convert arrays to objects for consistent handling
if(is_array($data)) {
$data = (object) $data;
}
parent::__construct($data); parent::__construct($data);
// Ensure name is a string, not an array
if(is_array($this->name)) {
$this->name = $this->name[0] ?? '';
}
parent::ConvertToDateTime($this->start); parent::ConvertToDateTime($this->start);
} }
} }
+10
View File
@@ -9,8 +9,18 @@ class NewsImage extends Model {
public $url; public $url;
public function __construct($data, $urlPrefix = '/') { public function __construct($data, $urlPrefix = '/') {
// Convert arrays to objects for consistent handling
if(is_array($data)) {
$data = (object) $data;
}
parent::__construct($data); parent::__construct($data);
// Ensure title is a string, not an array
if(is_array($this->title)) {
$this->title = $this->title[0] ?? '';
}
// Deserialisatie van JSON heeft url in data, // Deserialisatie van JSON heeft url in data,
// lezen uit database heeft file en (als het goed is) urlPrefix // lezen uit database heeft file en (als het goed is) urlPrefix
if(isset($data->file)) { if(isset($data->file)) {
+45 -11
View File
@@ -29,7 +29,23 @@ class NewsItem extends Model {
public $metadata; public $metadata;
public function __construct($data, $images = null, $podcast = null) { public function __construct($data, $images = null, $podcast = null) {
// Convert arrays to objects for consistent handling
if(is_array($data)) {
$data = (object) $data;
}
parent::__construct($data); parent::__construct($data);
// Ensure id is a string, not an array
if(is_array($this->id)) {
$this->id = $this->id[0] ?? '';
}
// Ensure title is a string, not an array
if(is_array($this->title)) {
$this->title = $this->title[0] ?? '';
}
parent::ConvertToDateTime($this->published); parent::ConvertToDateTime($this->published);
parent::ConvertToDateTime($this->edited); parent::ConvertToDateTime($this->edited);
@@ -43,9 +59,9 @@ class NewsItem extends Model {
{ {
if(is_object($data->source)) if(is_object($data->source))
{ {
$this->source = new \Model\NewsSource($data->source->title, $data->source->url, $data->source->show); $this->source = new \Model\NewsSource($data->source->title ?? null, $data->source->url ?? null, $data->source->show ?? false);
} else if($data->source) { } else if($data->source) {
$this->source = new \Model\NewsSource($data->source, $data->source_url, $data->showsource); $this->source = new \Model\NewsSource($data->source, $data->source_url ?? null, $data->showsource ?? false);
} }
} }
@@ -59,32 +75,44 @@ class NewsItem extends Model {
if(isset($data->keywords)) { if(isset($data->keywords)) {
if(is_array($data->keywords) || is_object($data->keywords)) { if(is_array($data->keywords) || is_object($data->keywords)) {
$this->keywords = $data->keywords; $this->keywords = $data->keywords;
} else if(trim($data->keywords)) { } else if(trim((string) $data->keywords)) {
$this->keywords = explode(' ', $data->keywords); $this->keywords = explode(' ', $data->keywords);
} }
} }
if(isset($data->region)) { if(isset($data->region)) {
if(is_object($data->region)) { if(is_object($data->region)) {
$this->region = new \Model\NewsRegion($data->region->title, $data->region->slug); $this->region = new \Model\NewsRegion($data->region->title ?? null, $data->region->slug ?? null);
} else { } else {
$this->region = new \Model\NewsRegion($data->region, $data->region_slug); $this->region = new \Model\NewsRegion($data->region, $data->region_slug ?? null);
} }
} }
if(isset($data->theme)) { if(isset($data->theme)) {
if(is_object($data->theme)) { if(is_object($data->theme)) {
$this->theme = new \Model\NewsRegion($data->theme->title, $data->theme->slug); $this->theme = new \Model\NewsRegion($data->theme->title ?? null, $data->theme->slug ?? null);
} else { } else {
$this->theme = new \Model\NewsRegion($data->theme, $data->theme_slug); $this->theme = new \Model\NewsRegion($data->theme, $data->theme_slug ?? null);
} }
} }
if(isset($data->tags)) { if(isset($data->tags)) {
$this->tags = [];
foreach($data->tags as $tag) { foreach($data->tags as $tag) {
$this->theme = new \Model\NewsRegion($tag->titel, $tag->slug); if(is_object($tag)) {
$this->tags[] = new \Model\NewsRegion($tag->titel ?? null, $tag->slug ?? null);
} elseif(is_array($tag)) {
$this->tags[] = new \Model\NewsRegion($tag['titel'] ?? null, $tag['slug'] ?? null);
} }
} }
}
// Ensure content is iterable for views - convert string to empty array
if(isset($this->content) && is_string($this->content)) {
$this->content = [];
} elseif(!isset($this->content)) {
$this->content = [];
}
$images = ($images != null) ? $images $images = ($images != null) ? $images
: (isset($data->images) ? $data->images : null); : (isset($data->images) ? $data->images : null);
@@ -95,7 +123,7 @@ class NewsItem extends Model {
} }
} }
$this->url = "/nieuws/{$this->id}/" . parent::url_slug($this->title); $this->url = "/nieuws/{$this->id}/" . parent::url_slug($this->title ?? '');
$this->metadata = (new MetaData()) $this->metadata = (new MetaData())
->set('title', $this->title) ->set('title', $this->title)
->set('description', strip_tags($this->excerpt())) ->set('description', strip_tags($this->excerpt()))
@@ -108,11 +136,17 @@ class NewsItem extends Model {
} }
public function excerpt() { public function excerpt() {
// Handle case where content might be an array of blocks instead of a string
if(is_array($this->content) || is_object($this->content)) {
return '<p class="news-excerpt"></p>';
}
$hasImages = isset($this->images) && count($this->images) > 0; $hasImages = isset($this->images) && count($this->images) > 0;
$maxLength = $hasImages ? 200 : 500; $maxLength = $hasImages ? 200 : 500;
$text = (string) $this->content;
return '<p class="news-excerpt ' . ($hasImages ? 'short' : 'long') . '">' . return '<p class="news-excerpt ' . ($hasImages ? 'short' : 'long') . '">' .
substr($this->content, 0, $maxLength) . substr($text, 0, $maxLength) .
(strlen($this->content) > $maxLength ? '...' : '') . (strlen($text) > $maxLength ? '...' : '') .
'</p>'; '</p>';
} }
} }
+4 -2
View File
@@ -4,11 +4,13 @@ namespace Model;
class NewsRegion { class NewsRegion {
public $title; public $title;
public $titel; // Support both English and Dutch spelling
public $slug; public $slug;
public function __construct($title, $slug = null) { public function __construct($title = null, $slug = null) {
$this->title = $title; $this->title = $title;
$this->slug = $slug ? $slug : strtolower(str_replace(' ', '', $title)); $this->titel = $title; // Also set titel for compatibility with API responses
$this->slug = $slug ? $slug : ($title ? strtolower(str_replace(' ', '', $title)) : null);
} }
} }
+32 -3
View File
@@ -21,10 +21,31 @@ class Podcast extends Model {
private $key; private $key;
public function __construct($data) { public function __construct($data) {
// Convert arrays to objects for consistent handling
if(is_array($data)) {
$data = (object) $data;
}
parent::__construct($data); parent::__construct($data);
// Ensure id is a string, not an array
if(is_array($this->id)) {
$this->id = $this->id[0] ?? '';
}
// Ensure title is a string, not an array
if(is_array($this->title)) {
$this->title = $this->title[0] ?? '';
}
// Ensure image is not an array from API
if(is_array($this->image)) {
$this->image = null;
}
parent::ConvertToDateTime($this->created); parent::ConvertToDateTime($this->created);
$this->url = '/' . $this->id . '/' . parent::url_slug($this->title) . '.mp3'; $this->url = '/' . $this->id . '/' . parent::url_slug($this->title ?? '') . '.mp3';
if($this->soundfilename) { if($this->soundfilename) {
// Only generate when not constructing from a JSON object // Only generate when not constructing from a JSON object
$this->key = sha1($this->id . ':' . date('Y-m-d') . ':' . $this->soundfilename); $this->key = sha1($this->id . ':' . date('Y-m-d') . ':' . $this->soundfilename);
@@ -36,7 +57,15 @@ class Podcast extends Model {
if(is_object($data->program)) { if(is_object($data->program)) {
$this->program = new \Model\Program($data->program); $this->program = new \Model\Program($data->program);
} elseif($data->program) { } elseif($data->program) {
$this->program = new \Model\Program(['id' => $data->program, 'name' => $data->program_name, 'description' => $data->program_description]); $program_name = $data->program_name ?? null;
if(is_array($program_name)) {
$program_name = $program_name[0] ?? null;
}
$program_desc = $data->program_description ?? null;
if(is_array($program_desc)) {
$program_desc = $program_desc[0] ?? null;
}
$this->program = new \Model\Program((object) ['id' => $data->program, 'name' => $program_name, 'description' => $program_desc]);
} }
} }
@@ -44,7 +73,7 @@ class Podcast extends Model {
$imagedata = new \stdClass(); $imagedata = new \stdClass();
$imagedata->id = $this->id; $imagedata->id = $this->id;
$imagedata->file = $data->imagefile; $imagedata->file = $data->imagefile;
$imagedata->title = $data->imagecaption; $imagedata->title = $data->imagecaption ?? null;
$this->image = new NewsImage($imagedata, '/img/podcast/'); $this->image = new NewsImage($imagedata, '/img/podcast/');
} }
+22 -3
View File
@@ -18,10 +18,29 @@ class Program extends Model {
public $next; public $next;
public function __construct($data) { public function __construct($data) {
// Convert arrays to objects for consistent handling
if(is_array($data)) {
$data = (object) $data;
}
parent::__construct($data); parent::__construct($data);
// Ensure id is a string, not an array
if(is_array($this->id)) {
$this->id = $this->id[0] ?? '';
}
// Ensure name is a string, not an array
if(is_array($this->name)) {
$this->name = $this->name[0] ?? '';
}
if(isset($data->suffix) && $data->suffix) { if(isset($data->suffix) && $data->suffix) {
$this->name .= ' ' . $data->suffix; $suffix = $data->suffix;
if(is_array($suffix)) {
$suffix = $suffix[0] ?? '';
}
$this->name .= ' ' . $suffix;
} }
if($this->recent && $this->recent) { if($this->recent && $this->recent) {
@@ -37,7 +56,7 @@ class Program extends Model {
} }
} }
if(isset($data->email) && ($mailComma = strpos($data->email, ',')) !== false) { if(isset($data->email) && ($mailComma = strpos((string) $data->email, ',')) !== false) {
$this->email = substr($data->email, 0, $mailComma); $this->email = substr($data->email, 0, $mailComma);
} }
@@ -46,7 +65,7 @@ class Program extends Model {
$this->rerun = $data->state == 3; $this->rerun = $data->state == 3;
} }
$this->url = "/{$this->id}/" . parent::url_slug($this->name); $this->url = "/{$this->id}/" . parent::url_slug($this->name ?? '');
} }
public function isSpecial() { public function isSpecial() {
+14
View File
@@ -6,5 +6,19 @@ class ProgramHost extends Model {
public $id; public $id;
public $name; public $name;
public $email; public $email;
public function __construct($data) {
// Convert arrays to objects for consistent handling
if(is_array($data)) {
$data = (object) $data;
}
parent::__construct($data);
// Ensure name is a string, not an array
if(is_array($this->name)) {
$this->name = $this->name[0] ?? '';
}
}
} }
+17
View File
@@ -12,7 +12,24 @@ class Track extends Model {
public $isLayout; public $isLayout;
public function __construct($data) { public function __construct($data) {
// Convert arrays to objects for consistent handling
if(is_array($data)) {
$data = (object) $data;
}
parent::__construct($data); parent::__construct($data);
// Ensure string fields are not arrays
if(is_array($this->title)) {
$this->title = $this->title[0] ?? '';
}
if(is_array($this->itemCode)) {
$this->itemCode = $this->itemCode[0] ?? '';
}
if(is_array($this->artist)) {
$this->artist = $this->artist[0] ?? '';
}
parent::ConvertToDateTime($this->start); parent::ConvertToDateTime($this->start);
parent::ConvertToDateTime($this->ends); parent::ConvertToDateTime($this->ends);
$isLayout = $this->isLayout(); $isLayout = $this->isLayout();