'twitter', 'description' => _a("Your latest Twitter updates"));
$this->WP_Widget('atom-twitter', _a('Twitter'), $widget_ops);
atom_add('ajax_requests', array(&$this, 'ajax'));
// include in jQuery(document).ready()
atom_add('jquery_init', array(&$this, 'js'));
}
function ajax(){
if(atom_ajax_request('get_twitter_data')):
atom_ajax_header('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_twitter_data'
},
beforeSend: function() { },
complete: function() { },
success: function(response){
var block = $('#');
$('.latest-tweets', block).html(response);
// animate list
$('.latest-tweets li', block).hide().each(function(i){
$(this).delay(333*i).animate(
{
"opacity": "show",
"height": "show",
"marginTop": "show",
"marginBottom": "show",
"paddingTop": "show",
"paddingBottom": "show"
},
{ duration: 333,
step: function(now, fx){
$('.latest-tweets', block).parents('li.block .sections').height((block.height()) + 5);
}
});
});
}
});
';
if(is_string($error)) printf(_a("Twitter returned error: %s"), $error);
else _ae("Could not retrieve tweets.");
echo '';
if(!is_string($error)):
echo ''._a("Possible reasons:").'
';
echo '';
echo '- '._a("Your host doesn't allow outgoing connections").'
';
echo '- '._a("Your server has made too many requests and is being limited (try increasing the cache value)").'
';
echo '- '._a("The user has protected his/her tweets").'
';
echo '- '._a("Twitter may be down").'
';
echo '
'._a("Unavailable for the moment").'';
endif;
endif;
}
function widget($args, $instance){
extract($args);
$instance = wp_parse_args($instance, $this->defaults());
$title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);
$user = esc_attr($instance['user']);
$count = intval($instance['count']);
$id = "instance-{$this->id}";
echo $before_widget;
if ($title) echo $before_title.$title.$after_title;
echo '';
echo $after_widget;
}
function update($new_instance, $old_instance){
$instance = $old_instance;
$instance['title'] = esc_attr($new_instance['title']);
$instance['user'] = esc_attr($new_instance['user']);
$instance['count'] = min(max(intval($new_instance['count']), 1), 20);
$instance['info'] = (bool)$new_instance['info'];
$instance['cache'] = intval($new_instance['cache']);
delete_transient("instance-".$this->id);
return wp_parse_args($instance, $this->defaults());
}
function defaults(){
// default settings
return apply_filters('atom_widget_twitter_defaults', array(
'title' => _a('My latest tweets'),
'user' => 'tweetnorris',
'count' => 4,
'info' => true,
'cache' => 90,
), $this);
}
function form($instance){
$instance = wp_parse_args($instance, $this->defaults());
?>