Example #1
0
 private function admin()
 {
     $today = strtotime('today');
     $month = strtotime('first day of this month');
     $last30 = strtotime('-30 days');
     // Users statistics
     $users['today'] = number_format(User::whereGt('reg_date', $today)->count());
     $users['month'] = number_format(User::whereGt('reg_date', $month)->count());
     $users['last30'] = number_format(User::whereGt('reg_date', $last30)->count());
     $users['total'] = number_format(User::count());
     View::set('users', $users);
     // Playlists statistics
     $playlists['today'] = number_format(Playlist::whereGt('date', $today)->count());
     $playlists['month'] = number_format(Playlist::whereGt('date', $month)->count());
     $playlists['last30'] = number_format(Playlist::whereGt('date', $last30)->count());
     $playlists['total'] = number_format(Playlist::count());
     View::set('playlists', $playlists);
     // Tracks statistics
     $tracks = number_format(Track::count());
     View::set('tracks', $tracks);
     // Tags statistics
     $tags = number_format(Tag::count());
     View::set('tags', $tags);
     // Comments statistics
     $comments = number_format(Comment::count());
     View::set('comments', $comments);
     // Likes
     $likes = number_format(PlaylistLike::count());
     View::set('likes', $likes);
     // Reports
     $reports = number_format(Report::count());
     View::set('reports', $reports);
     View::show('admin/admin');
 }
 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');
 }
Example #3
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;
 }