Esempio n. 1
0
 public function getIndex($pageNo = 0)
 {
     $pageNo = intval($pageNo);
     $itemsPerPage = intval(Config::get("custom.num_shows_per_page"));
     $itemOffset = $pageNo * $itemsPerPage;
     $numPlaylists = Show::accessible()->count();
     $numPages = ceil($numPlaylists / $itemsPerPage);
     $shows = Show::accessible()->orderBy("name", "asc")->orderBy("description", "asc")->skip($itemOffset)->take($itemsPerPage)->get();
     if ($pageNo > 0 && $shows->count() === 0) {
         App::abort(404);
     }
     $coverArtResolutions = Config::get("imageResolutions.coverArt");
     $playlistTableData = array();
     foreach ($shows as $i => $item) {
         $thumbnailUri = Config::get("custom.default_cover_uri");
         if (!Config::get("degradedService.enabled")) {
             $thumbnailUri = $item->getCoverArtUri($coverArtResolutions['thumbnail']['w'], $coverArtResolutions['thumbnail']['h']);
         }
         $playlistTableData[] = array("uri" => $item->getUri(), "title" => $item->name, "escapedDescription" => !is_null($item->description) ? e($item->description) : null, "playlistName" => null, "episodeNo" => null, "thumbnailUri" => $thumbnailUri, "thumbnailFooter" => null, "duration" => null, "active" => false);
     }
     $playlistFragment = count($playlistTableData) > 0 ? View::make("fragments.home.playlist", array("stripedTable" => true, "headerRowData" => null, "tableData" => $playlistTableData)) : null;
     $pageNumbers = array();
     for ($i = 0; $i < $numPages; $i++) {
         $pageNumbers[] = array("num" => $i + 1, "uri" => URL::route("shows", array($i)), "active" => $i === $pageNo);
     }
     $openGraphProperties = array();
     $openGraphProperties[] = array("name" => "video:release_date", "content" => null);
     foreach ($playlistTableData as $a) {
         $openGraphProperties[] = array("name" => "og:see_also", "content" => $a['uri']);
     }
     $view = View::make("home.shows.index");
     $view->playlistFragment = $playlistFragment;
     $view->pageSelectorFragment = View::make("fragments.home.pageSelector", array("nextUri" => $pageNo < $numPages - 1 ? URL::route("shows", array($pageNo + 1)) : null, "prevUri" => $pageNo > 0 ? URL::route("shows", array($pageNo - 1)) : null, "numbers" => $pageNumbers));
     $this->setContent($view, "shows", "shows", $openGraphProperties, "Shows");
 }
 public function generateShowsResponseData()
 {
     $data = $this->showTransformer->transformCollection(Show::accessible()->orderBy("id")->get()->all());
     return new ApiResponseData($data);
 }