API('programma/schema/week/' . (int)$shiftWeeks); $start = self::JsonToDateTime($apiResult->startdate); $end = self::JsonToDateTime($apiResult->enddate); $schedule = []; foreach($apiResult->schedule as $program) { $schedule[] = [ 'starttime' => self::JsonToDateTime($program->start), 'endtime' => self::JsonToDateTime($program->end), 'program' => new \Model\Program($program->program) ]; } return view($request->ajax() ? 'radioscheduleweek' : 'radioschedule', ['start' => $start, 'end' => $end, 'schedule' => $schedule, 'shift' => $shiftWeeks]); } public function onair() { return $this->API('programma/schema/onair')->current->name; } public function program($id) { $apiResult = $this->API('programma/details/' . (int)$id); return view('radioprogram', ['program' => new \Model\Program($apiResult)]); } public function podcast(Request $request, $id) { if(!config('app.debug')) { parent::registerView($request, 'podcast', $id); } $apiResult = $this->API('podcast/details/' . (int)$id); $podcast = new \Model\Podcast($apiResult); $related = []; if($podcast->program != null) { $apiRelated = $this->API("podcast/programma/{$podcast->program->id}?date={$podcast->created->format('Y-m-d')}"); foreach($apiRelated->podcasts as $relatedItem) { $related[] = new \Model\Podcast($relatedItem); } } return view('podcastitem', ['podcast' => $podcast, 'related' => $related, 'searchURL' => 'gemist/zoeken']); } public function podcasts(Request $request, $programma = null) { $action = 'overzicht'; $viewData = []; if((int)$programma > 0) { $action = 'programma/' . (int)$programma; $viewData['program'] = new \Model\Program($this->API('programma/details/' . (int)$programma)); } return $this->getPodcastList($request, $action, $viewData); } public function searchpodcast(Request $request, $query) { return $this->getPodcastList($request, 'zoeken/' . $query)->with('query', urldecode($query)); } private function getPodcastList(Request $request, $action, $viewData = []) { $page = (int)$request->get('pagina', 1); $apiResult = $this->API('podcast/' . $action . '?pagina=' . (int)max(1, $page) . '&aantal=12'); $podcasts = []; foreach($apiResult->podcasts as $podcast) { $podcasts[] = new \Model\Podcast($podcast); } return view($request->ajax() ? 'podcastitems' : 'podcastlist', array_merge($viewData, ['podcasts' => $podcasts, 'searchURL' => 'gemist/zoeken'])); } }