Esempio n. 1
0
 private function playlist()
 {
     // Playlist Author
     $author = $this->playlist->user();
     $author->playlists = $author->playlists();
     View::set('author', $author->asArray());
     // Tags
     $tags = $this->playlist->tags();
     View::set('tags', $tags);
     // Similar playlists
     if ($tags) {
         $similarPlaylists = Playlist::filter('byTags', $tags)->select('p.*')->whereNotEqual('p.id', $this->playlist->id);
         $count = $similarPlaylists->countDistinct('p.id');
         $similarPlaylists = $similarPlaylists->groupBy('p.id')->paginate($count);
         // View all link
         if ($similarPlaylists) {
             $similarPlaylists['href'] = implode('/', $tags);
         }
         View::set('similar_playlists', $similarPlaylists);
     }
     // Liked
     if (LOGGED) {
         $likeActive = PlaylistLike::filter('isActive', $this->playlist->id, LOGGED);
         View::set('like_active', $likeActive);
         $followDisplay = $this->playlist->user_id !== LOGGED;
         View::set('follow_display', $followDisplay);
         if ($followDisplay) {
             $followActive = UserRelation::filter('isActive', $this->playlist->user_id, LOGGED);
             View::set('follow_active', $followActive);
         }
         $reportActive = Report::filter('isActive', $this->playlist->id, 'playlist', LOGGED);
         View::set('report_active', $reportActive);
     }
     $edit = ADMIN || LOGGED === $this->playlist->user_id;
     View::set('edit', $edit);
     // View
     View::set('playlist', $this->playlist->asArray());
     View::set('tracks', $this->playlist->tracks());
     View::set('comments', $this->playlist->comments());
     View::show('playlist/playlist');
 }
Esempio n. 2
0
 /**
  * Like a playlist
  * @return json success
  */
 private function like()
 {
     Base::requireLogged();
     $ret = array('active' => 0);
     if (!Validate::id($_GET['id'])) {
         return $ret;
     }
     $id = (int) $_GET['id'];
     // Add the like
     PlaylistLike::filter('add', $id, LOGGED);
     // Get current status
     $ret['active'] = PlaylistLike::filter('isActive', $id, LOGGED);
     // Update likes count in playlist
     $playlist = Playlist::selectMany('id', 'likes_count')->findOne($id);
     $playlist->likes_count += !!$ret['active'] * 2 - 1;
     $playlist->save();
     // Show status
     return $ret;
 }