private function home() { $this->welcome(); // Staff picks $staffPicks = Playlist::filter('byTags', 'staff')->select('p.*'); $count = $staffPicks->countDistinct('p.id'); $staffPicks = $staffPicks->groupBy('p.id')->orderByDesc('p.id')->paginate($count); Base::eagerLoadingPlaylistTags($staffPicks); View::set('staff_picks', $staffPicks); // Home tags $tags = Base::$g['home_tags']; if (!empty($tags)) { $tags = explode(', ', $tags); foreach ($tags as $key => $tag) { $playlists = Playlist::filter('byTags', $tag)->select('p.*'); $count = $playlists->countDistinct('p.id'); if (!$count) { unset($tags[$key]); continue; } $playlists = $playlists->groupBy('p.id')->orderByDesc('p.id')->paginate($count); Base::eagerLoadingPlaylistTags($playlists); $tags[$key] = $playlists; $tags[$key]['title'] = $tag; } View::set('home_tags_playlists', $tags); } // New playlists $newPlaylists = Playlist::orderByDesc('id')->where('published', 1)->paginate(); Base::eagerLoadingPlaylistTags($newPlaylists); View::set('new_playlists', $newPlaylists); if (LOGGED) { $user = Base::$g['logged']; // Liked playlists $likedPlaylists = $user->likedPlaylists(); Base::eagerLoadingPlaylistTags($likedPlaylists); View::set('liked_playlists', $likedPlaylists); // Stream $feedPlaylists = $user->feedPlaylists(); Base::eagerLoadingPlaylistTags($feedPlaylists); View::set('feed_playlists', $feedPlaylists); } View::show('home'); }