diff --git a/api/app/Http/Controllers/PodcastController.php b/api/app/Http/Controllers/PodcastController.php index d0ceb84..8434a59 100644 --- a/api/app/Http/Controllers/PodcastController.php +++ b/api/app/Http/Controllers/PodcastController.php @@ -53,6 +53,27 @@ QUERY; return response($view)->header('Content-Type', 'application/xml'); } + /** + * RSS-feed van alle podcasts van een programma (bv. podcastserie) + */ + public function program_rss(Request $request, $program) { + $page = (int)$request->get('page', 1); + if($page <= 0) { + return abort(400); + } + + $programQuery = app('db')->select('SELECT `programs`.`id` AS `id`, `programs`.`longname` AS `name`, `programs`.`description` AS `description`, `programs`.`tagline` AS `tagline`, `programs`.`description` AS `description`, `programs`.`email` FROM `programs` WHERE `programs`.`id` = :id', ['id' => $program]); + $programDetails = new \Model\Program($programQuery[0]); + + $filter = '`podcast_meta`.`program` = :program'; + $params = ['program' => (int)$program]; + $podcasts = $this->retrievePodcasts($page, $count = 1000, $filter, $params); + $view = view('rss.podcasts')->with('program', $programDetails)->with('podcasts', $podcasts)->with('url', $request->url())->with('page', $page); + return response($view)->header('Content-Type', 'application/xml'); + } + + /** + * Lijst van alle podcasts voor een specifiek programma /** * Lijst van alle podcasts voor een specifiek programma */ diff --git a/api/resources/views/rss/podcasts.blade.php b/api/resources/views/rss/podcasts.blade.php index 7b00d7a..d0c37dc 100644 --- a/api/resources/views/rss/podcasts.blade.php +++ b/api/resources/views/rss/podcasts.blade.php @@ -5,9 +5,9 @@ xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"> - NH Gooi Gemist - Fragmenten en interviews eerder te horen op NH Gooi Radio - https://nhgooi.nl + {{isset($program) ? $program->name : "NH Gooi Gemist"}} + {{isset($program) ? $program->description : "Fragmenten en interviews eerder te horen op NH Gooi Radio"}} + https://nhgooi.nl{{isset($program) ? $program->url : ""}} nl-nl @@ -22,7 +22,7 @@ NH Gooi Radio - info@nhgooi.nl + {{isset($program) ? $program->email : 'info' }}@nhgooi.nl diff --git a/api/routes/web.php b/api/routes/web.php index f262890..edf6479 100644 --- a/api/routes/web.php +++ b/api/routes/web.php @@ -17,6 +17,7 @@ $app->get('/', function () use ($app) { }); $app->get( 'rss/podcasts', 'PodcastController@rss' ); +$app->get( 'rss/podcast/{program:\d+}/{title}', 'PodcastController@program_rss' ); $app->get( 'rss/nieuws', 'NewsController@rss' ); $app->get( 'menu/special', 'MenuController@special' );