From ec122e1d9a1d974c911b34e16c73c83d985cab8a Mon Sep 17 00:00:00 2001 From: Mischa Spelt Date: Fri, 1 Sep 2017 19:20:46 +0200 Subject: [PATCH] Fragment terugluisteren toegevoegd aan nieuws en agenda --- api/app/Http/Controllers/NewsController.php | 16 +++++++++---- .../Http/Controllers/PodcastController.php | 2 +- common/classes/CalendarEvent.php | 9 +++++-- common/classes/NewsItem.php | 24 ++++++++++++------- 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/api/app/Http/Controllers/NewsController.php b/api/app/Http/Controllers/NewsController.php index e422aca..f06dfae 100644 --- a/api/app/Http/Controllers/NewsController.php +++ b/api/app/Http/Controllers/NewsController.php @@ -9,11 +9,10 @@ ini_set('display_errors', true); class NewsController extends Controller { - // TODO: Include podcast private static $NEWS_CATEGORY = 1; private static $CALENDAR_CATEGORY = 42; private static $BASE_SQL = <<itemFromCategory(self::$NEWS_CATEGORY, $id); - return $item ? response()->json(new \Model\NewsItem($item['data'], $item['images'])) : abort(404); + return $item ? response()->json(new \Model\NewsItem($item['data'], $item['images'], $item['podcast'])) : abort(404); } /** @@ -98,7 +97,7 @@ QUERY; */ public function calendaritem($id) { $item = $this->itemFromCategory(self::$CALENDAR_CATEGORY, $id); - return $item ? response()->json(new \Model\CalendarEvent($item['data'], $item['images'])) : abort(404); + return $item ? response()->json(new \Model\CalendarEvent($item['data'], $item['images'], $item['podcast'])) : abort(404); } private function itemFromCategory($category, $id) { @@ -112,7 +111,14 @@ QUERY; // Note: content is stored in the database with an additional addslashes() - don't ask why, just remove it :) $newsItem[0]->content = stripslashes($newsItem[0]->content); $images = app('db')->select(self::$LOAD_IMAGES, ['newsId' => $id]); - return ['data' => $newsItem[0], 'images' => $images]; + $podcast = null; + if($newsItem[0]->podcast_id > 0) + { + $podcast = app('db')->select(PodcastController::$BASE_SQL . ' AND `podcast`.`id` = :podcastId', ['podcastId' => $newsItem[0]->podcast_id]); + $podcast = count($podcast) ? $podcast[0] : null; + } + + return ['data' => $newsItem[0], 'images' => $images, 'podcast' => $podcast]; } } } diff --git a/api/app/Http/Controllers/PodcastController.php b/api/app/Http/Controllers/PodcastController.php index 884f5cc..b037faa 100644 --- a/api/app/Http/Controllers/PodcastController.php +++ b/api/app/Http/Controllers/PodcastController.php @@ -11,7 +11,7 @@ ini_set('display_errors', true); class PodcastController extends Controller { // TODO: Include program - private static $BASE_SQL = <<starts); parent::ConvertToDateTime($this->ends); @@ -28,7 +28,12 @@ class CalendarEvent extends Model { } } - $this->podcast = isset($data->podcast) && $data->podcast ? $data->podcast : null; + 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); diff --git a/common/classes/NewsItem.php b/common/classes/NewsItem.php index a008f65..16bdc72 100644 --- a/common/classes/NewsItem.php +++ b/common/classes/NewsItem.php @@ -17,14 +17,14 @@ class NewsItem extends Model { public $category; public $theme; public $region; - + public $podcast; public $images; public $video; public $url; - public function __construct($data, $images = null) { + public function __construct($data, $images = null, $podcast = null) { parent::__construct($data); parent::ConvertToDateTime($this->published); parent::ConvertToDateTime($this->edited); @@ -35,11 +35,21 @@ class NewsItem extends Model { } $this->source = null; - if(is_object($data->source)) + if(isset($data->source)) { - $this->source = new \Model\NewsSource($data->source->title, $data->source->url, $data->source->url); - } else if($data->source) { - $this->source = new \Model\NewsSource($data->source, $data->source_url, $data->showsource); + 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; @@ -49,8 +59,6 @@ class NewsItem extends Model { $this->keywords = explode(' ', $data->keywords); } - $this->podcast = $data->podcast ? $data->podcast : null; - $images = ($images != null) ? $images : (isset($data->images) ? $data->images : null); if($images) {