Fixed PHP syntax for compatibility with the server environment.
authorjond@apple.com <jond@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 1 Dec 2015 19:44:28 +0000 (19:44 +0000)
committerjond@apple.com <jond@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 1 Dec 2015 19:44:28 +0000 (19:44 +0000)
* wp-content/plugins/social-meta.php:
* wp-content/themes/webkit/functions.php:
* wp-content/themes/webkit/widgets/twitter.php:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@192897 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/webkit.org/ChangeLog
Websites/webkit.org/wp-content/plugins/social-meta.php
Websites/webkit.org/wp-content/themes/webkit/functions.php
Websites/webkit.org/wp-content/themes/webkit/widgets/twitter.php

index ef07c6a..ee33cba 100644 (file)
@@ -1,5 +1,13 @@
 2015-12-01  Jonathan Davis  <jond@apple.com>
 
+        Fixed PHP syntax for compatibility with the server environment.
+
+        * wp-content/plugins/social-meta.php:
+        * wp-content/themes/webkit/functions.php:
+        * wp-content/themes/webkit/widgets/twitter.php:
+
+2015-12-01  Jonathan Davis  <jond@apple.com>
+
         Updated webkit.org to use the new theme and WordPress deployment.
 
         * .htaccess:
index 18b7339..ef4d944 100644 (file)
@@ -8,8 +8,11 @@ Author URI:  http://webkit.org
 */
 
 add_action('wp_head', function() { ?>
-    <?php $image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post_id), 'large' )[0]; ?>
-    
+    <?php
+        $image_src = wp_get_attachment_image_src( get_post_thumbnail_id($post_id), 'large' );
+        $image_url = $image_src[0];
+    ?>
+
     <!-- Schema.org markup -->
     <meta itemprop="name" content="<?php the_title(); ?>">
     <meta itemprop="description" content="<?php the_excerpt(); ?>">
@@ -28,7 +31,7 @@ add_action('wp_head', function() { ?>
     <?php if ( $image_url ): // Twitter summary card with large image must be at least 280x150px ?>
     <meta name="twitter:image:src" content="<?php echo $image_url; ?>">
     <?php endif; ?>
-    
+
     <!-- Open Graph data -->
     <meta property="og:title" content="<?php the_title(); ?>" />
     <meta property="og:type" content="article" />
@@ -40,11 +43,11 @@ add_action('wp_head', function() { ?>
     <meta property="og:site_name" content="<?php bloginfo('title'); ?>" />
     <meta property="article:published_time" content="<?php the_time('c'); ?>" />
     <meta property="article:modified_time" content="<?php the_modified_date('c'); ?>" />
-    <?php     
+    <?php
         $categories = wp_get_object_terms( get_the_ID(), 'category', array( 'fields' => 'names' ) );
         $tags = wp_get_object_terms( get_the_ID(), 'post_tag', array( 'fields' => 'names' ) );
-        
-        if ( ! empty($categories) ): 
+
+        if ( ! empty($categories) ):
             $section = array_shift($categories);      // The first category is used as the section
             $tags = array_merge($categories, $tags);  // The rest are prepended to the tag list
     ?>
@@ -58,6 +61,6 @@ add_action('wp_head', function() { ?>
     <?php
         endforeach; endif;
     ?>
-    
+
 <?php
 });
\ No newline at end of file
index 5737850..06e2630 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 // Declare theme features
-add_theme_support( 'post-thumbnails' ); 
+add_theme_support( 'post-thumbnails' );
 
 function register_menus() {
 }
@@ -13,36 +13,36 @@ add_action( 'init', function () {
 
 function modify_contact_methods($profile_fields) {
 
-       // Add new fields
-       $profile_fields['twitter'] = 'Twitter Handle';
-       unset($profile_fields['aim']);
-       unset($profile_fields['yim']);
-       unset($profile_fields['jabber']);
+    // Add new fields
+    $profile_fields['twitter'] = 'Twitter Handle';
+    unset($profile_fields['aim']);
+    unset($profile_fields['yim']);
+    unset($profile_fields['jabber']);
 
-       return $profile_fields;
+    return $profile_fields;
 }
 
 add_filter('user_contactmethods', function ($fields) {
     // Add Twitter field to user profiles
-       $fields['twitter'] = 'Twitter Handle';
-    
+    $fields['twitter'] = 'Twitter Handle';
+
     // Remove unused social networks
-       unset($fields['aim']);
-       unset($fields['yim']);
-       unset($fields['jabber']);
+    unset($fields['aim']);
+    unset($fields['yim']);
+    unset($fields['jabber']);
 
-       return $fields;
+    return $fields;
 });
 
 add_action('init', function () {
-       register_sidebar(array(
-               'name'=> 'Home Tiles',
-               'id' => 'tiles',
-               'before_widget' => '',
-               'after_widget' => '',
-               'before_title' => '',
-               'after_title' => '',
-       ));
+    register_sidebar(array(
+        'name'=> 'Home Tiles',
+        'id' => 'tiles',
+        'before_widget' => '',
+        'after_widget' => '',
+        'before_title' => '',
+        'after_title' => '',
+    ));
 } );
 
 add_filter('the_title', function( $title ) {
@@ -66,10 +66,10 @@ include('widgets/page.php');
 
 add_filter( 'get_the_excerpt', function( $excerpt ) {
     $sentences = preg_split( '/(\.|!|\?)\s/', $excerpt, 2, PREG_SPLIT_DELIM_CAPTURE );
-    
+
     // if ( empty($sentences[1]) )
     //     $sentences[1] = '&hellip;';
-    
+
     return $sentences[0] . $sentences[1];
 
 });
@@ -97,10 +97,11 @@ function tag_post_image_luminance( $post_id ) {
     $tags = array();
 
     // Get the image data
-       $image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post_id), 'small' )[0];
-    
+    $image_src = wp_get_attachment_image_src( get_post_thumbnail_id($post_id), 'small' );
+    $image_url = $image_src[0];
+
     if ( empty($image_url) ) return $post_id;
-    
+
     // detect luminence value
     $luminance = calculate_image_luminance($image_url);
     $tags = wp_get_post_tags($post_id, array('fields' => 'names'));
@@ -113,65 +114,65 @@ function tag_post_image_luminance( $post_id ) {
     // Set a tag class
     if ( ! empty($tags) )
         wp_set_post_tags( $post_id, $tags, true );
-    
+
     return $post_id;
 }
 
 function calculate_image_luminance($image_url) {
     // Get original image dimensions
     $size = getimagesize($image_url);
-    
+
     // Create image resource from source image
     $image = ImageCreateFromString(file_get_contents($image_url));
-    
+
     // Allocate image resource
     $sample = ImageCreateTrueColor(1, 1);
-    
+
     // Flood fill with a white background (to properly calculate luminance of PNGs with alpha)
     ImageFill($sample , 0, 0, ImageColorAllocate($sample, 255, 255, 255));
-    
+
     // Downsample to 1x1 image
     ImageCopyResampled($sample, $image, 0, 0, 0, 0, 1, 1, $size[0], $size[1]);
 
     // Get the RGB value of the pixel
-    $rgb   = ImageColorAt($sample, 0, 0);    
+    $rgb   = ImageColorAt($sample, 0, 0);
     $red   = ($rgb >> 16) & 0xFF;
     $green = ($rgb >> 8) & 0xFF;
     $blue  = $rgb & 0xFF;
-    
+
     // Calculate relative luminance value (https://en.wikipedia.org/wiki/Relative_luminance)
     return ( 0.2126 * $red + 0.7152 * $green + 0.0722 * $blue);
 }
 
 function html_select_options(array $list, $selected = null, $values = false, $append = false) {
-               if ( ! is_array($list) ) return '';
-
-               $_ = '';
-        
-               // Append the options if the selected value doesn't exist
-               if ( ( ! in_array($selected, $list) && ! isset($list[ $selected ])) && $append )
-                       $_ .= '<option value="' . esc_attr($selected) . '">' .esc_html($selected) . '</option>';
-
-               foreach ( $list as $value => $text ) {
-
-                       $value_attr = $selected_attr = '';
-
-                       if ( $values ) $value_attr = ' value="' . esc_attr($value) . '"';
-                       if ( ( $values && (string)$value === (string)$selected)
-                               || ( ! $values && (string)$text === (string)$selected ) )
-                                       $selected_attr = ' selected="selected"';
-    
-                       if ( is_array($text) ) {
-                               $label = $value;
-                               $_ .= '<optgroup label="' . esc_attr($label) . '">';
-                               $_ .= self::menuoptions($text, $selected, $values);
-                               $_ .= '</optgroup>';
-                               continue;
-                       } else $_ .= "<option$value_attr$selected_attr>$text</option>";
-
-               }
-               return $_;
-       }
+        if ( ! is_array($list) ) return '';
+
+        $_ = '';
+
+        // Append the options if the selected value doesn't exist
+        if ( ( ! in_array($selected, $list) && ! isset($list[ $selected ])) && $append )
+            $_ .= '<option value="' . esc_attr($selected) . '">' .esc_html($selected) . '</option>';
+
+        foreach ( $list as $value => $text ) {
+
+            $value_attr = $selected_attr = '';
+
+            if ( $values ) $value_attr = ' value="' . esc_attr($value) . '"';
+            if ( ( $values && (string)$value === (string)$selected)
+                || ( ! $values && (string)$text === (string)$selected ) )
+                    $selected_attr = ' selected="selected"';
+
+            if ( is_array($text) ) {
+                $label = $value;
+                $_ .= '<optgroup label="' . esc_attr($label) . '">';
+                $_ .= self::menuoptions($text, $selected, $values);
+                $_ .= '</optgroup>';
+                continue;
+            } else $_ .= "<option$value_attr$selected_attr>$text</option>";
+
+        }
+        return $_;
+    }
 
 add_filter('save_post', 'tag_post_image_luminance');
 
@@ -199,10 +200,10 @@ add_action( 'wp_enqueue_scripts', function () {
 } );
 
 class Responsive_Toggle_Walker_Nav_Menu extends Walker_Nav_Menu {
-    
+
     private $toggleid = null;
-    
-       public function start_lvl( &$output, $depth = 0, $args = array() ) {
+
+    public function start_lvl( &$output, $depth = 0, $args = array() ) {
         $output .= "\n" . str_repeat("\t", $depth);
         if ( ! empty($this->toggleid) )
             $output .= "<input type=\"checkbox\" id=\"toggle-{$this->toggleid}\" class=\"menu-toggle\" />";
@@ -214,17 +215,17 @@ class Responsive_Toggle_Walker_Nav_Menu extends Walker_Nav_Menu {
         $class_names = esc_attr(join( ' ', $classes ));
         $output .= "<ul class=\"$class_names\" role=\"menu\"$id>\n";
     }
-    
-       public function end_lvl( &$output, $depth = 0, $args = array() ) {
-               $indent = str_repeat("\t", $depth);
-               $output .= "$indent</ul>\n";
-       }
-    
+
+    public function end_lvl( &$output, $depth = 0, $args = array() ) {
+        $indent = str_repeat("\t", $depth);
+        $output .= "$indent</ul>\n";
+    }
+
     public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
-        
+
         $before = $args->link_before;
         $after = $args->link_after;
-        
+
         if ( in_array('menu-item-has-children', $item->classes) && 0 == $depth ) {
             $args->link_before = "<label for=\"toggle-{$item->ID}\" class=\"label-toggle\">" . $args->link_before;
             $args->link_after .= "</label>";
@@ -232,77 +233,77 @@ class Responsive_Toggle_Walker_Nav_Menu extends Walker_Nav_Menu {
             $item->url = '#nav-sub-menu';
         } elseif ( in_array('menu-item-has-children', $item->classes) && 1 == $depth ) {
             // $item->role = "presentation";
-        } else $toggleid = null;        
-        
-               $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
+        } else $toggleid = null;
+
+        $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
 
-               $classes = empty( $item->classes ) ? array() : (array) $item->classes;
-               $classes[] = 'menu-item-' . $item->ID;
+        $classes = empty( $item->classes ) ? array() : (array) $item->classes;
+        $classes[] = 'menu-item-' . $item->ID;
 
-               $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
-               $class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
+        $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
+        $class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
 
-               $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args, $depth );
-               $id = $id ? ' id="' . esc_attr( $id ) . '"' : '';
+        $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args, $depth );
+        $id = $id ? ' id="' . esc_attr( $id ) . '"' : '';
 
-               $output .= $indent . '<li' . $id . $class_names . '>';
+        $output .= $indent . '<li' . $id . $class_names . '>';
 
-               $atts = array();
-               $atts['title']  = ! empty( $item->attr_title ) ? $item->attr_title : '';
-               $atts['target'] = ! empty( $item->target )     ? $item->target     : '';
-               $atts['rel']    = ! empty( $item->xfn )        ? $item->xfn        : '';
-               $atts['href']   = ! empty( $item->url )        ? $item->url        : '';
+        $atts = array();
+        $atts['title']  = ! empty( $item->attr_title ) ? $item->attr_title : '';
+        $atts['target'] = ! empty( $item->target )     ? $item->target     : '';
+        $atts['rel']    = ! empty( $item->xfn )        ? $item->xfn        : '';
+        $atts['href']   = ! empty( $item->url )        ? $item->url        : '';
         $atts['role']   = ! empty( $item->role )       ? $item->role       : '';
-        
+
         if ( in_array('menu-item-has-children', $item->classes) && 0 == $depth ) {
             $atts['aria-haspopup'] = "true";
             $atts['aria-owns'] = 'sub-menu-for-' . $item->ID;
             $atts['aria-controls'] = 'sub-menu-for-' . $item->ID;
             $atts['aria-expanded'] = 'true';
         }
-        
-               $atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args, $depth );
-
-               $attributes = '';
-               foreach ( $atts as $attr => $value ) {
-                       if ( ! empty( $value ) ) {
-                               $value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
-                               $attributes .= ' ' . $attr . '="' . $value . '"';
-                       }
-               }
-
-               $item_output = $args->before;
-               $item_output .= '<a'. $attributes .'>';
-               $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
-               $item_output .= '</a>';
-               $item_output .= $args->after;
-
-               $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
-        
+
+        $atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args, $depth );
+
+        $attributes = '';
+        foreach ( $atts as $attr => $value ) {
+            if ( ! empty( $value ) ) {
+                $value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
+                $attributes .= ' ' . $attr . '="' . $value . '"';
+            }
+        }
+
+        $item_output = $args->before;
+        $item_output .= '<a'. $attributes .'>';
+        $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
+        $item_output .= '</a>';
+        $item_output .= $args->after;
+
+        $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
+
         $args->link_before = $before;
         $args->link_after = $after;
     }
-    
+
 }
 
 class Front_Page_Posts {
-    
-       private static $object;     // Singleton instance
+
+    private static $object;     // Singleton instance
+
     private static $wp_query;   // WP_Query instance
-    
-       public static function &object () {
-               if ( ! self::$object instanceof self )
-                       self::$object = new self;
-        
+
+    public static function &object () {
+        if ( ! self::$object instanceof self )
+            self::$object = new self;
+
         if ( empty(self::$wp_query) )
             self::$wp_query = new WP_Query(array('post_type' => 'post'));
-        
-               return self::$object;
-       }
-    
+
+        return self::$object;
+    }
+
     public static function WP_Query() {
         return self::$wp_query;
     }
-    
+
 }
\ No newline at end of file
index 9c06f9e..9de42aa 100644 (file)
@@ -7,23 +7,23 @@
 defined('WPINC') || header('HTTP/1.1 403') & exit; // Prevent direct access
 
 if ( ! class_exists('WP_Widget') ) return;
-       
+
 class WebKitTwitterTileWidget extends WebKitPostTileWidget {
-    
+
     const CACHEKEY = 'webkit_twitter_feed';
 
     function __construct() {
-        parent::WP_Widget(false, 
-                       __('Twitter Tile'), 
-                       array('description' => __('Twitter tile for the home page'))
-               );
+        parent::WP_Widget(false,
+            __('Twitter Tile'),
+            array('description' => __('Twitter tile for the home page'))
+        );
     }
 
     function widget( array $args, array $options ) {
-        
+
         if ( ! empty($args) )
             extract($args, EXTR_SKIP);
-        
+
         $Tweet = $this->tweet();
 
         // Show "Follow @webkit" instead of tweet for empty text
@@ -44,7 +44,7 @@ class WebKitTwitterTileWidget extends WebKitPostTileWidget {
         if ( ! empty($Tweet->text) )
             $text = $Tweet->text;
 
-        if ( ! empty($options['url']) ) 
+        if ( ! empty($options['url']) )
             $url = (string)$options['url'];
 
         // Expand URLs
@@ -53,10 +53,10 @@ class WebKitTwitterTileWidget extends WebKitPostTileWidget {
                                  . $entry->display_url . '</a>';
             $text = str_replace($entry->url, $expanded, $text);
         }
-        
+
         $text = preg_replace('/RT @[^:]+:\s+/', '', $text, 1);
-        
-        if ( empty($Tweet->entities) || empty($Tweet->entities->media) ) { 
+
+        if ( empty($Tweet->entities) || empty($Tweet->entities->media) ) {
 
             $Image = $Tweet->entities->media[0];
             if ( empty($Image) ) $classes[] = 'text-only';
@@ -66,7 +66,7 @@ class WebKitTwitterTileWidget extends WebKitPostTileWidget {
                 $text = str_replace($entry->url, '', $text);
             }
         }
-        
+
         ?>
         <div class="<?php echo esc_attr(join(' ', $classes)); ?>">
             <a href="http://twitter.com/webkit/status/<?php echo esc_attr($Tweet->id); ?>" class="tile-link">Clickable link to tweet</a>
@@ -76,7 +76,7 @@ class WebKitTwitterTileWidget extends WebKitPostTileWidget {
             <?php else: ?>
             <?php endif;?>
                 <p><?php echo $text; ?></p>
-            
+
             </div>
             <ul class="twitter-controls">
                 <li><a href="https://twitter.com/intent/follow?screen_name=webkit" target="twitter-modal"><span class="twitter-icon">Twitter</span> @webkit</a></li>
@@ -87,12 +87,12 @@ class WebKitTwitterTileWidget extends WebKitPostTileWidget {
         </div>
         <?php
     }
-    
+
     function follow_markup ($options) {
-        
+
         $url = 'https://twitter.com/intent/follow?screen_name=webkit';
         $classes = array('tile', 'third-tile', 'twitter-tile');
-        
+
         ?>
         <div class="<?php echo esc_attr(join(' ', $classes)); ?>">
             <a class="tile-link" href="<?php echo esc_url($url); ?>">Clickable link</a>
@@ -103,86 +103,87 @@ class WebKitTwitterTileWidget extends WebKitPostTileWidget {
     }
 
     function form( array $options ) {
-               ?>
-               <p><label for="<?php echo $this->get_field_id('text'); ?>"><?php _e('Text'); ?></label>
-               <textarea type="text" name="<?php echo $this->get_field_name('text'); ?>" id="<?php echo $this->get_field_id('text'); ?>" class="widefat"><?php echo $options['text']; ?></textarea></p>
-               <?php
+        ?>
+        <p><label for="<?php echo $this->get_field_id('text'); ?>"><?php _e('Text'); ?></label>
+        <textarea type="text" name="<?php echo $this->get_field_name('text'); ?>" id="<?php echo $this->get_field_id('text'); ?>" class="widefat"><?php echo $options['text']; ?></textarea></p>
+        <?php
     }
-    
-       function tweet () {
+
+    function tweet () {
 
         if ( false !== ( $cached = get_transient(self::CACHEKEY) ) )
             return json_decode($cached);
-        
-               $endpoint = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
-               $parameters = array();
-               $options = array(
-                       'method' => 'GET',
-               );
-
-               $oauth_consumer_key = 'ypSvRp37vmyt3ldMPhs0e62c9';
-               $oauth_consumer_key_secret = 'mLuYD3AjUehUZKOgQIICA5Na69te45aSJTkdIDTGSg4cfHd6Lz';
-               $oauth_token = '14315023-7pHbcI5bk2QZhNiHR9uFudaksBzMPubEuOEmYj7YQ';
-               $oauth_token_secret = '0K9T9znxG4S9PUGunYZ5LwyKL9AR6v3eAXp6WKY2oi7Bg';
-               $oauth_timestamp = time();
-               $oauth_nonce = sha1(rand() . $oauth_timestamp);
-
-               $fields = array(
-                       'oauth_consumer_key' => $oauth_consumer_key,
-                       'oauth_nonce' => sha1(rand() . time()),
-                       'oauth_signature_method' => 'HMAC-SHA1',
-                       'oauth_timestamp' => time(),
-                       'oauth_token' => $oauth_token,
-                       'oauth_version' => '1.0',
-               );
-               $fields = array_merge($parameters, $fields);
-
-               $base = array(
-                       'GET', $endpoint, http_build_query($fields, '', '&')
-               );
-               $base = join('&', array_map('rawurlencode', $base));
-
-
-               $key = array(
-                       $oauth_consumer_key_secret, $oauth_token_secret
-               );
-               $key = join('&', array_map('rawurlencode', $key));
-
-               $signature = base64_encode( hash_hmac('sha1', $base, $key, true) );
-
-               $oauth = array(
-                       'oauth_consumer_key' => $oauth_consumer_key,
-                       'oauth_nonce' => $fields['oauth_nonce'],
-                       'oauth_signature' => $signature,
-                       'oauth_signature_method' => 'HMAC-SHA1',
-                       'oauth_timestamp' => $fields['oauth_timestamp'],
-                       'oauth_token' => $oauth_token,
-                       'oauth_version' => '1.0',
-               );
-               $oauth = array_map(create_function('$h','return "\"$h\"";'), $oauth);
-
-               $oauth = http_build_query($oauth, '', ', ');
-               $oauth = str_replace('%22', '"', $oauth);
-
-               $headers = array(
-                       'Authorization' => "OAuth $oauth"
-               );
-
-               $options['headers'] = $headers;
-        
-               $response = wp_remote_get($endpoint, $options);
-
-        if ( is_a($response, 'WP_Error') ) 
+
+        $endpoint = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
+        $parameters = array();
+        $options = array(
+            'method' => 'GET',
+        );
+
+        $oauth_consumer_key = 'ypSvRp37vmyt3ldMPhs0e62c9';
+        $oauth_consumer_key_secret = 'mLuYD3AjUehUZKOgQIICA5Na69te45aSJTkdIDTGSg4cfHd6Lz';
+        $oauth_token = '14315023-7pHbcI5bk2QZhNiHR9uFudaksBzMPubEuOEmYj7YQ';
+        $oauth_token_secret = '0K9T9znxG4S9PUGunYZ5LwyKL9AR6v3eAXp6WKY2oi7Bg';
+        $oauth_timestamp = time();
+        $oauth_nonce = sha1(rand() . $oauth_timestamp);
+
+        $fields = array(
+            'oauth_consumer_key' => $oauth_consumer_key,
+            'oauth_nonce' => sha1(rand() . time()),
+            'oauth_signature_method' => 'HMAC-SHA1',
+            'oauth_timestamp' => time(),
+            'oauth_token' => $oauth_token,
+            'oauth_version' => '1.0',
+        );
+        $fields = array_merge($parameters, $fields);
+
+        $base = array(
+            'GET', $endpoint, http_build_query($fields, '', '&')
+        );
+        $base = join('&', array_map('rawurlencode', $base));
+
+
+        $key = array(
+            $oauth_consumer_key_secret, $oauth_token_secret
+        );
+        $key = join('&', array_map('rawurlencode', $key));
+
+        $signature = base64_encode( hash_hmac('sha1', $base, $key, true) );
+
+        $oauth = array(
+            'oauth_consumer_key' => $oauth_consumer_key,
+            'oauth_nonce' => $fields['oauth_nonce'],
+            'oauth_signature' => $signature,
+            'oauth_signature_method' => 'HMAC-SHA1',
+            'oauth_timestamp' => $fields['oauth_timestamp'],
+            'oauth_token' => $oauth_token,
+            'oauth_version' => '1.0',
+        );
+        $oauth = array_map(create_function('$h','return "\"$h\"";'), $oauth);
+
+        $oauth = http_build_query($oauth, '', ', ');
+        $oauth = str_replace('%22', '"', $oauth);
+
+        $headers = array(
+            'Authorization' => "OAuth $oauth"
+        );
+
+        $options['headers'] = $headers;
+
+        $response = wp_remote_get($endpoint, $options);
+
+        if ( is_a($response, 'WP_Error') )
             return false;
 
-               if ( 200 == $response['response']['code'] && ! empty($response['body']) ) {
-            $data = json_decode($response['body'])[0];
+        if ( 200 == $response['response']['code'] && ! empty($response['body']) ) {
+            $body = json_decode($response['body']);
+            $data = $body[0];
             set_transient(self::CACHEKEY, json_encode($data), DAY_IN_SECONDS/2);
             return $data;
-               }
+        }
 
-               return false;
-       }
+        return false;
+    }
 
 } // END class WebKitTwitterTileWidget