예제 #1
0
 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');
 }