Example #1
0
 public static function mapPublicPlaylistShow(Playlist $playlist)
 {
     $tracks = [];
     foreach ($playlist->tracks as $track) {
         /** @var $track Track */
         $tracks[] = Track::mapPublicTrackSummary($track);
     }
     $formats = [];
     foreach (Track::$Formats as $name => $format) {
         $formats[] = ['name' => $name, 'extension' => $format['extension'], 'url' => $playlist->getDownloadUrl($name), 'size' => Helpers::formatBytes($playlist->getFilesize($name)), 'isCacheable' => in_array($name, Track::$CacheableFormats) ? true : false];
     }
     $comments = [];
     foreach ($playlist->comments as $comment) {
         $comments[] = Comment::mapPublic($comment);
     }
     $data = self::mapPublicPlaylistSummary($playlist);
     $data['tracks'] = $tracks;
     $data['comments'] = $comments;
     $data['formats'] = $formats;
     $data['share'] = ['url' => action('PlaylistsController@getShortlink', ['id' => $playlist->id]), 'tumblrUrl' => 'http://www.tumblr.com/share/link?url=' . urlencode($playlist->url) . '&name=' . urlencode($playlist->title) . '&description=' . urlencode($playlist->description), 'twitterUrl' => 'https://platform.twitter.com/widgets/tweet_button.html?text=' . $playlist->title . ' by ' . $playlist->user->display_name . ' on Pony.fm'];
     return $data;
 }