Пример #1
0
/**
 * Convert a track into the format expected by the Cue plugin.
 *
 * @since 1.5.0
 *
 * @param int|WP_Post $post Post object or ID.
 * @return object Track object expected by Cue.
 */
function get_audiotheme_playlist_track($post = 0)
{
    $post = get_post($post);
    $track = new stdClass();
    $track->id = $post->ID;
    $track->artist = get_audiotheme_track_artist($post->ID);
    $track->audioUrl = get_audiotheme_track_file_url($post->ID);
    $track->title = get_the_title($post->ID);
    if ($thumbnail_id = get_audiotheme_track_thumbnail_id($post->ID)) {
        $size = apply_filters('cue_artwork_size', array(300, 300));
        $image = image_downsize($thumbnail_id, $size);
        $track->artworkUrl = $image[0];
    }
    return $track;
}
 /**
  * Retrieve data about a record's tracks.
  *
  * @since 1.0.0
  *
  * @param int $record_id Record post ID.
  * @return array
  */
 protected function get_track_data($record_id)
 {
     $tracks = array();
     $posts = get_audiotheme_record_tracks($record_id, array('has_file' => true));
     if (empty($posts)) {
         return $tracks;
     }
     foreach ($posts as $track) {
         $data = array();
         $track = get_post($track);
         $record = get_post($track->post_parent);
         $data['track_id'] = $track->ID;
         $data['title'] = $track->post_title;
         $data['artist'] = get_audiotheme_track_artist($track->ID);
         $data['album'] = $record->post_title;
         $data['src'] = get_audiotheme_track_file_url($track->ID);
         $data['length'] = get_audiotheme_track_length($track->ID);
         if ($thumbnail_id = get_audiotheme_track_thumbnail_id($track)) {
             $image = wp_get_attachment_image_src($thumbnail_id, 'thumbnail');
             $data['artwork'] = $image[0];
         }
         $data['id'] = md5($data['artist'] . $data['title'] . $data['src']);
         $data['recordId'] = $record->ID;
         $data['trackId'] = $track->ID;
         $tracks[] = $data;
     }
     return $tracks;
 }
Пример #3
0
/**
 * Transform a track id or array of data into the expected format for use as a
 * JavaScript object.
 *
 * @since 1.1.0
 *
 * @param int|array $track Track ID or array of expected track properties.
 * @return array
 */
function audiotheme_prepare_track_for_js($track)
{
    $data = array('artist' => '', 'artwork' => '', 'mp3' => '', 'record' => '', 'title' => '');
    // Enqueue a track post type.
    if ('audiotheme_track' === get_post_type($track)) {
        $track = get_post($track);
        $record = get_post($track->post_parent);
        $data['artist'] = get_audiotheme_track_artist($track->ID);
        $data['mp3'] = get_audiotheme_track_file_url($track->ID);
        $data['record'] = $record->post_title;
        $data['title'] = $track->post_title;
        // WP playlist format.
        $data['format'] = 'mp3';
        $data['meta']['artist'] = $data['artist'];
        $data['meta']['length_formatted'] = '0:00';
        $data['src'] = $data['mp3'];
        if ($thumbnail_id = get_audiotheme_track_thumbnail_id($track)) {
            $image = wp_get_attachment_image_src($thumbnail_id, apply_filters('audiotheme_track_js_artwork_size', 'thumbnail'));
            $data['artwork'] = $image[0];
        }
    } elseif (is_array($track)) {
        if (isset($track['artwork'])) {
            $data['artwork'] = esc_url($track['artwork']);
        }
        if (isset($track['file'])) {
            $data['mp3'] = esc_url_raw(audiotheme_encode_url_path($track['file']));
        }
        if (isset($track['mp3'])) {
            $data['mp3'] = esc_url_raw(audiotheme_encode_url_path($track['mp3']));
        }
        if (isset($track['title'])) {
            $data['title'] = wp_strip_all_tags($track['title']);
        }
        $data = array_merge($track, $data);
    }
    $data = apply_filters('audiotheme_track_js_data', $data, $track);
    return $data;
}