',$this->get_field_id($field),esc_html__($caption),$this->get_field_id($field),$this->get_field_name($field),esc_attr($value));
}
public function form_input_option($field,$caption,$value,$options){
foreach ($options as $option) {
if ($option == $value) {$select = 'selected="selected"'; } else {$select = '';}
$opthtml = sprintf('%s',$opthtml,$select,$option );
}
printf('',$this->get_field_id($field),esc_html__($caption),$this->get_field_id($field),$this->get_field_name($field),$opthtml);
}
public function form_input_checkbox($field,$caption,$value){
if ($value) {
$checked = 'checked="checked"';
}
printf ('',$this->get_field_id($field),$this->get_field_name($field),$checked,$this->get_field_id($field),esc_html__($caption));
}
}
class TwitterBadgeWidget extends AGC_Widget_Base {
function TwitterBadgeWidget() {
//Constructor
$widget_ops = array('classname' => 'TwitterBadgeWidget', 'description' => __('A widget to show twitter badge and latest tweet'));
$this->WP_Widget('TwitterBadgeWidget', 'Twitter Badge Widget', $widget_ops);
if ( is_active_widget( false, false, $this->id_base ) && !is_admin() ) {
do_action( 'TB_QueueScripts');
}
}
function queuescripts(){
wp_enqueue_script("jquery");
wp_enqueue_script("TwitterBadgeScript",plugins_url('/twitterbadgescript.js', __FILE__));
wp_enqueue_script("TwitterWidgets","http://platform.twitter.com/widgets.js",array(),'',true);
//A localised version of the relative time function
wp_enqueue_script("LocRelativeTime",plugins_url('/loc_relative_time.js', __FILE__));
wp_localize_script("LocRelativeTime", 'RelTimeL10n', array(
'RelTSeconds' => __('less than a minute ago'),
'RelTMinute' => __( 'about a minute ago' ),
'RelTMinutes' => __('%s minutes ago'),
'RelTHour' => __('about an hour ago'),
'RelTHours' => __('%s hours ago'),
'RelTDay' => __('yesterday'),
'RelTDays' => __('%s day ago')
) );
wp_enqueue_style("TwitterBadgeStyle",plugins_url('/twitterbadge.css', __FILE__));
}
function widget($args, $instance) {
// prints the widget to the user
extract($args, EXTR_SKIP);
$Twitter_ID = empty($instance['Twitter_ID']) ? ' ' : apply_filters('widget_Twitter_ID', $instance['Twitter_ID']);
$Count = absint(empty($instance['Count']) ? 1 : $instance['Count']);
$title = apply_filters('widget_title', $instance['title']);
$Format = empty($instance['Format']) ? 'Narrow' : $instance['Format'];
$InteractiveFollow = (bool) $instance['InteractiveFollow'];
$InteractiveCount = (bool) $instance['InteractiveCount'];
$Lang = WPLANG == '' ? 'EN' : WPLANG;
$widget_id = $args['widget_id'];
$div_id = 'twitter_status_'.$widget_id;
echo $before_widget;
if ( !empty( $title ) ) {
echo $before_title . $title . $after_title;
};
do_action( 'TB_RenderTwitterBadge', $div_id,$title,$Format,$Twitter_ID,$Count,$InteractiveFollow,$InteractiveCount,$Lang );
echo $after_widget;
}
function render($div_id,$title,$Format,$Twitter_ID,$Count,$InteractiveFollow,$InteractiveCount,$Lang)
{
$Follow = sprintf(esc_html__('Follow @%s'), $Twitter_ID);
$url = esc_url('http://www.twitter.com/'.$Twitter_ID);
//See http://dev.twitter.com/doc/get/statuses/user_timeline for other parameters that can be used here.
$jsonurl = esc_url('http://api.twitter.com/1/statuses/user_timeline.json?screen_name='.$Twitter_ID).'&callback=?&trim_user=true&include_entities=false';
if ($Count > 20) {
$jsonurl = $jsonurl.'&count='.$Count;
}
//See http://dev.twitter.com/pages/follow_button
//You can get the langage from
//define ('WPLANG', 'fr_FR');
//
//
//
//
echo '';
//Use alias for Javascript to avoid conflicts with other plugins and themes
//http://api.jquery.com/jQuery.noConflict/
echo '';
}
function update($new_instance, $old_instance) {
//save the widget
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
$instance['Twitter_ID'] = strip_tags($new_instance['Twitter_ID']);
$count = absint(strip_tags($new_instance['Count']));
if ($count > 200) { $count = 200;}
if ($count < 1) { $count = 1;}
$instance['Count'] = $count;
$instance['Format'] = strip_tags($new_instance['Format']);
$instance['InteractiveFollow'] = isset($new_instance['InteractiveFollow']);
if ((bool) $instance['InteractiveFollow']){
$instance['InteractiveCount'] = isset($new_instance['InteractiveCount']);
}
else{
$instance['InteractiveCount'] = false;
}
return $instance;
}
function form($instance) {
//widgetform in backend
$instance = wp_parse_args( (array) $instance, array( 'title' => 'Twitter Badge Widget', 'Twitter_ID' => '','Count' => 1, 'Format' => 'Narrow', 'InteractiveFollow' => false, 'InteractiveCount' => false ) );
$title = strip_tags($instance['title']);
$Twitter_ID = strip_tags($instance['Twitter_ID']);
$Count = absint($instance['Count']);
$Format = $instance['Format'];
$InteractiveFollow = (bool) $instance['InteractiveFollow'];
$InteractiveCount = (bool) $instance['InteractiveCount'];
//Not sure about localising the data values here...
//See Wickett widget for a technique for giving a user a number box with spin buttons
$this->form_input_text('title','Title',$title);
$this->form_input_text('Twitter_ID','Twitter User ID',$Twitter_ID);
$this->form_input_text('Count','Number of tweets to display (default = 1)',$Count);
$this->form_input_option('Format','Format',$Format,array ('Narrow','Wide'));
echo '';
printf('';
}
}
add_action( 'widgets_init', create_function('', 'return register_widget("TwitterBadgeWidget");') );
add_action( 'TB_RenderTwitterBadge', array('TwitterBadgeWidget', 'render'),10,8 );
add_action( 'TB_QueueScripts', array('TwitterBadgeWidget', 'queuescripts'),10,0 );
?>