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'); }
/** * 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; }