}
        }
        $args = array('httpversion' => '1.1', 'blocking' => true, 'headers' => array('Authorization' => "Bearer {$token}"));
        add_filter('https_ssl_verify', '__return_false');
        $api_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=' . $twitter_name . '&count=' . $tweets_count;
        $response = wp_remote_get($api_url, $args);
        set_transient($transName, wp_remote_retrieve_body($response), 60 * $cacheTime);
    }
    @($twitter = json_decode(get_transient($transName), true));
    if ($twitter && is_array($twitter)) {
        $output .= '<div id="tweets_' . $item_id . '">';
        $output .= '<ul class="mk-tweet-list mk-tweet-shortcode">';
        foreach ($twitter as $tweet) {
            $output .= '<li>';
            $output .= '<span class="tweet-text">';
            $latestTweet = $tweet['text'];
            $latestTweet = preg_replace('/http:\\/\\/([a-z0-9_\\.\\-\\+\\&\\!\\#\\~\\/\\,]+)/i', '&nbsp;<a href="http://$1" target="_blank">http://$1</a>&nbsp;', $latestTweet);
            $latestTweet = preg_replace('/@([a-z0-9_]+)/i', '&nbsp;<a href="http://twitter.com/$1" target="_blank">@$1</a>&nbsp;', $latestTweet);
            $output .= $latestTweet;
            $output .= '</span>';
            $twitterTime = strtotime($tweet['created_at']);
            $timeAgo = mk_ago($twitterTime);
            $output .= '<a href="http://twitter.com/' . $tweet['user']['screen_name'] . '/statuses/' . $tweet['id_str'] . '" class="tweet-time">' . $timeAgo . '</a>';
            $output .= '</li>';
        }
        $output .= '</ul>';
        $output .= '</div>';
    }
}
$output .= '</div>';
echo $output;
Example #2
0
    function widget($args, $instance)
    {
        extract($args);
        global $mk_options;
        $title = $instance['title'];
        $username = $instance['username'];
        $skin = $instance['skin'];
        $count = isset($instance['count']) ? (int) $instance['count'] : 1;
        $consumer_key = $mk_options['twitter_consumer_key'];
        $consumer_secret = $mk_options['twitter_consumer_secret'];
        $access_token = $mk_options['twitter_access_token'];
        $access_token_secret = $mk_options['twitter_access_token_secret'];
        $widget_id = isset($args['widget_id']) ? $args['widget_id'] : '5418a1b132d75';
        if ($count < 1) {
            $count = 1;
        }
        if ($count > 30) {
            $count = 30;
        }
        if ($username && $consumer_key && $consumer_secret && $access_token && $access_token_secret && $count) {
            echo $before_widget;
            if ($title) {
                echo $before_title . $title . $after_title;
            }
            $transName = 'mk_Jupiter_tweets_' . $widget_id;
            $cacheTime = 10;
            if (false === ($twitterData = get_transient($transName))) {
                $token = get_option('mk_twitter_token_' . $widget_id);
                delete_option('mk_twitter_token_' . $widget_id);
                if (!$token) {
                    $credentials = $consumer_key . ':' . $consumer_secret;
                    $toSend = base64_encode($credentials);
                    $args = array('method' => 'POST', 'httpversion' => '1.1', 'blocking' => true, 'headers' => array('Authorization' => 'Basic ' . $toSend, 'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8'), 'body' => array('grant_type' => 'client_credentials'));
                    add_filter('https_ssl_verify', '__return_false');
                    $response = wp_remote_post('https://api.twitter.com/oauth2/token', $args);
                    $keys = json_decode(wp_remote_retrieve_body($response));
                    if ($keys) {
                        update_option('mk_twitter_token_' . $widget_id, $keys->access_token);
                        $token = $keys->access_token;
                    }
                }
                $args = array('httpversion' => '1.1', 'blocking' => true, 'headers' => array('Authorization' => "Bearer {$token}"));
                add_filter('https_ssl_verify', '__return_false');
                $api_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $count;
                $response = wp_remote_get($api_url, $args);
                set_transient($transName, wp_remote_retrieve_body($response), 60 * $cacheTime);
            }
            @($twitter = json_decode(get_transient($transName), true));
            if ($twitter && is_array($twitter)) {
                ?>

					<div id="tweets_<?php 
                echo $widget_id;
                ?>
">
						
						<ul class="mk-tweet-list <?php 
                echo $skin;
                ?>
">
							<?php 
                foreach ($twitter as $tweet) {
                    ?>
							<li>
								<span class="tweet-text">
								<?php 
                    $latestTweet = $tweet['text'];
                    $latestTweet = preg_replace('/http:\\/\\/([a-z0-9_\\.\\-\\+\\&\\!\\#\\~\\/\\,]+)/i', '&nbsp;<a href="http://$1" target="_blank">http://$1</a>&nbsp;', $latestTweet);
                    $latestTweet = preg_replace('/@([a-z0-9_]+)/i', '&nbsp;<a href="http://twitter.com/$1" target="_blank">@$1</a>&nbsp;', $latestTweet);
                    echo $latestTweet;
                    ?>
								</span>
								<?php 
                    $twitterTime = strtotime($tweet['created_at']);
                    $timeAgo = mk_ago($twitterTime);
                    ?>
								<a href="http://twitter.com/<?php 
                    echo $tweet['user']['screen_name'];
                    ?>
/statuses/<?php 
                    echo $tweet['id_str'];
                    ?>
" class="tweet-time"><?php 
                    echo $timeAgo;
                    ?>
</a>
							</li>
							<?php 
                }
                ?>
						</ul>
					</div>
		<?php 
                echo $after_widget;
            }
        }
    }