8tracks Mix Feeds Information
For detailed help and documentation, please visit the plugin web page.
'created',
'items' => 5,
'user' => '',
'heading' => '',
'item_size' => 50,
'items_per_row' => 5,
'mix_label_size' => '25px',
'css_id' => ''
), $atts ) );
$api_url = 'http://8tracks.com/users/'
. urlencode( $user ) . '/mixes.json'
. '?api_key=' . API_KEY
. '&api_version=' . API_VERSION
. '&per_page=' . $items;
switch ( $type )
{
case 'liked':
case 'mix_feed':
$api_url .= '&view=' . $type;
case 'created':
default:
break;
}
$output = '';
$api_response = wp_remote_get( $api_url );
$json_body = wp_remote_retrieve_body( $api_response );
if ( empty( $json_body ) ) return false;
$mix_list = json_decode( $json_body, true );
$items_per_row = (int) $items_per_row;
$item_count = 1;
$style = 'width: ' . $item_size . 'px; height: ' . $item_size . 'px; background-size: ' . $item_size . 'px ' . $item_size . 'px;';
foreach( $mix_list[ 'mixes' ] as $mix )
{
$output .= '
';
$output .= '';
$output .= '
';
$output .= '' . $mix[ 'name' ] . '
';
$output .= '';
if ( ( $item_count % $items_per_row ) == 0 ) $output .= '
';
$item_count++;
}
$output .= '
';
return $output;
}
class mac8tmf_mix_feed_widget extends WP_Widget {
//process the new widget
function mac8tmf_mix_feed_widget() {
$widget_ops = array(
'classname' => 'mac8tmf_mix_feed_widget_class',
'description' => 'Display liked, created, or feed mixes from an 8tracks profile.'
);
$this->WP_Widget( 'mac8tmf_mix_feed_widget', '8tracks Mix Feed', $widget_ops );
}
//build the widget settings form
function form($instance) {
$defaults = array(
'type' => 'created',
'items' => 5,
'user' => '',
'heading' => '',
'item_size' => 50,
'items_per_row' => 5,
'mix_label_size' => '25px',
'css_id' => ''
);
$instance = wp_parse_args( (array) $instance, $defaults );
$type = $instance['type'];
$items = $instance['items'];
$user = $instance['user'];
$heading = $instance['heading'];
$item_size = $instance['item_size'];
$items_per_row = $instance['items_per_row'];
$mix_label_size = $instance['mix_label_size'];
$css_id = $instance['css_id'];
?>
8tracks username:
Type of feed:
Feed heading:
Number of mixes to display (Max is 50):
Mix image size (measure in px, default is 50, max is 250):
Number of mixes in each row:
Mix label size (e.g. "16px", "1em", "100%"):
Container CSS ID:
50 ) $items = 50;
if ( ! absint( $items ) ) $items = 5;
if ( $item_size > 250 ) $items = 250;
if ( ! absint( $item_size ) ) $item_size = 50;
if ( $items_per_row > 50 ) $items_per_row = 50;
if ( ! absint( $items_per_row ) ) $items_per_row = 1;
if ( $user ) {
echo do_shortcode( '[mixes heading="' . ''
. '" item_size="' . $item_size
. '" user="' . $user
. '" items="' . $items
. '" items_per_row="' . $items_per_row
. '" type="' . $type
. '" mix_label_size="' . $mix_label_size
. '" css_id="' . $css_id
.'"]' );
}
echo $after_widget;
}
}
?>