'lifestream', 'description' => _a("Your activity around social networks")); $control_ops = array('width' => 500); $this->WP_Widget('atom-lifestream', _a('Lifestream'), $widget_ops, $control_ops); // atom_add('ajax_requests', array(&$this, 'ajax')); // atom_add('jquery_init', array(&$this, 'js')); // include in jQuery(document).ready() // add_action('atom_jquery_init', array(&$this, 'js')); } function ajax(){ if(isset($_GET['atom_get_lastfm_data'])): atom_ajax_header('atom_get_twitter_data'); $this->display_tweets(esc_attr($_GET['widget_id']), esc_attr(($_GET['twituser'])), intval($_GET['twitcount']), false, $_GET['showinfo']); exit(); endif; } function js(){ // we need to process all instances because this function gets to run only once $widget_settings = atom_get_options($this->option_name); foreach((array)$widget_settings as $instance => $options): // identify instance $id = "{$this->id_base}-{$instance}"; $block_id = "instance-{$id}"; if (false === ($data = get_transient($block_id)) && is_active_widget(false, $id, $this->id_base)): ?> $.ajax({ type: "GET", url: "", data: { widget_id: '', twituser: '', twitcount: , showinfo: , _ajax_nonce: "", atom_get_lastfm_data: 1 }, beforeSend: function() { }, complete: function() { }, success: function(response){ $("# .latest-tweets").hide().html(response).slideDown(333); } });
<?php echo $data['user']['name']; ?>
'; if(is_string($error)) printf(_a("Twitter returned error: %s"), $error); else _ae("Could not retrieve tweets. Possible reasons:"); echo ''; if(!is_string($error)): // error endif; else: echo '
'._a("Unavailable for the moment").'
'; endif; endif; } function widget($args, $instance){ extract($args); $instance = wp_parse_args($instance, $this->defaults()); // return false; // under dev. $title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base); $user = esc_attr($instance['twitter-user']); $type = esc_attr($instance['lastfm-get']); // $count = intval($instance['count']); echo '
';
    $url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22".urlencode("http://twitter.com/statuses/user_timeline/35092196.rss")."%22&format=json";
    $response = wp_remote_retrieve_body(wp_remote_request($url));
    if(!is_array($data_twitter = json_decode($response, true))) $error = true;
    print_r($data_twitter['query']['results']['rss']['channel']['item']);

    $url = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22".urlencode("http://ws.audioscrobbler.com/1.0/user/xs/recenttracks.rss")."%22&format=json";
    $response = wp_remote_retrieve_body(wp_remote_request($url));
    if(!is_array($data_lastfm = json_decode($response, true))) $error = true;
    print_r($data_lastfm['query']['results']['rss']['channel']['item']);

    echo '
'; return; if (!function_exists('simplexml_load_file')) echo 'need php 5!'; $url = "http://ws.audioscrobbler.com/2.0/user/{$user}/{$type}.xml?limit={$count}"; $feed = @simplexml_load_file($url); // if (array_key_exists('track', get_object_vars($feed))); $last = count($feed->track); for ($i=0; $i<$last; $i++): echo '
  • '.$feed->track[$i]->artist.' - '.$feed->track[$i]->name.'
  • '; endfor; return; $id = "instance-{$this->id}"; echo $before_widget; if ($title) echo $before_title.$title.$after_title; echo '
    '; if(atom_get_options('jquery')): if (false === ($data = get_transient($id))): echo '
    '._a("Loading tweets...").'
    '; else: $this->display_tweets($id, $user, $count, $data, $instance['info'], intval($instance['cache'])); endif; else: echo '
    '._a("jQuery is required by this widget").'
    '; endif; echo '
    '; echo $after_widget; } function update($new_instance, $old_instance){ $instance = $old_instance; $instance['active-tab'] = esc_attr($new_instance['active-tab']); $instance['title'] = esc_attr($new_instance['title']); $instance['number'] = min(max(intval($new_instance['number']), 1), 20); $instance['limit'] = min(max(intval($new_instance['limit']), 1), 100); $instance['more'] = (bool)$new_instance['more']; $instance['update'] = intval($new_instance['update']); $instance['twitter-user'] = esc_attr($new_instance['twitter-user']); $instance['lastfm-get'] = esc_attr($new_instance['lastfm-get']); delete_transient("instance-".$this->id); return wp_parse_args($instance, $this->defaults()); } function defaults(){ // default settings return apply_filters('atom_widget_lastfm_defaults', array( 'active-tab' => 'general', 'title' => _a('My Lifestream'), 'count' => 10, 'limit' => 100, 'more' => true, 'update' => 90, 'twitter-user' => 'wordpress', 'lastfm-get' => 'recenttracks', ), $this); } function form($instance){ $instance = wp_parse_args($instance, $this->defaults()); ?>
    >