WordPress.org

Plugin Directory

Changeset 643119


Ignore:
Timestamp:
12/21/12 20:53:53 (16 months ago)
Author:
alexkingorg
Message:

version 2.7

Location:
social/trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • social/trunk/README.txt

    r617518 r643119  
    33Tags: comments, facebook, twitter, social, broadcast, import, integrate, integration 
    44Requires at least: 3.3 
    5 Tested up to: 3.4.2 
    6 Stable tag: 2.6 
     5Tested up to: 3.5 
     6Stable tag: 2.7 
    77License: GPLv2 
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     
    238238    add_action('init', 'social_enable_meta_comments_in_feed'); 
    239239 
     240= Why is facebook not getting the correct image for my broadcasts? = 
     241 
     242Facebook prefers to use Open Graph tags (http://ogp.me/) to pull in meta data about posted content.  Featured Images will be send with broadcasts, but if no featured image is present, facebook will calculate a best guess based on a few factors.  To control what images and metadata facebook uses to describe your post, use Open Graph tags in your theme. 
     243 
    240244= Does Social output Facebook Open Graph tags for my site? = 
    241245 
     
    261265== Upgrade Notice == 
    262266 
    263 = 2.6 = 
    264 This version fixes numerous bugs, provides compatibility with the newest Twitter API, and provides a few new filters to customize the date output.  See the Changelog for details 
     267= 2.7 = 
     268Make sure to upgrade ASAP. This release includes a pointer to the new Social proxy URL (the old URL will stop working on Jan 15th).  
     269 
     270= 2.6.1 = 
     271This version fixes several bugs and may help with HostGator's weird server "security" settings.  See the Changelog for details. 
     272 
    265273 
    266274== Changelog == 
     275 
     276= 2.7 = 
     277* New Social proxy endpoint (the old one will go away on Jan 15th) 
     278* Separate setting for fetching social comments and WP Cron integration (used in Twitter Tools) 
     279* Change Facebook endpoint for posting links (should accept passed images again) 
     280 
     281 
     282= 2.6.1 = 
     283* More consistent comment date output 
     284* Try to work around draconian HostGator faux-security rules 
     285* Strip shortcodes from content before creating default broadcast 
     286 
    267287 
    268288= 2.6 = 
  • social/trunk/assets/admin.css

    r547543 r643119  
    127127 
    128128#social-broadcast-by-default-yes, 
    129 #social-broadcast-by-default-no { 
     129#social-broadcast-by-default-no, 
     130#social-aggregate-comments-yes, 
     131#social-aggregate-comments-no { 
    130132    margin: 0 5px; 
    131133} 
    132134 
    133 #social-broadcast-by-default-no { 
     135#social-broadcast-by-default-no, 
     136#social-aggregate-comments-no { 
    134137    margin-left: 15px; 
    135138} 
  • social/trunk/lib/social/controller/aggregation.php

    r617518 r643119  
    1717        $this->verify_nonce(); 
    1818 
    19         $fetch = Social::option('fetch_comments'); 
     19        $fetch = Social::option('aggregate_comments'); 
    2020        if (empty($fetch)) { 
    2121            Social::log('Aggregation has been disabled, exiting.'); 
  • social/trunk/lib/social/controller/auth.php

    r547543 r643119  
    2323     */ 
    2424    public function action_authorize() { 
    25         $proxy = urldecode($this->request->query('target')); 
     25        $proxy = apply_filters('social_authorize_url', Social::$api_url.$this->request->query('key').'/authorize/', $this->request->query('key')); 
    2626        if (strpos($proxy, Social::$api_url) !== false) { 
    2727            $salt = $this->auth_nonce_salt(); 
  • social/trunk/lib/social/controller/cron.php

    r547543 r643119  
    1818        if ($this->request->action() != 'check_crons') { 
    1919            // Social system cron? 
    20             if (Social::option('fetch_comments') == '2' or $this->request->query('api_key') !== null) { 
     20            if ($this->request->query('api_key') !== null) { 
    2121                $api_key = $this->request->query('api_key'); 
    2222                if ($api_key != Social::option('system_cron_api_key')) { 
  • social/trunk/lib/social/controller/settings.php

    r617518 r643119  
    3030            } 
    3131 
     32            if (isset($_POST['social_aggregate_comments'])) { 
     33                Social::option('aggregate_comments', $_POST['social_aggregate_comments']); 
     34            } 
     35            else { 
     36                delete_option('social_aggregate_comments'); 
     37            } 
     38 
    3239            // Store the default accounts 
    3340            $accounts = array(); 
     
    5461 
    5562            // System CRON 
    56             if ($this->request->post('social_fetch_comments') !== null) { 
    57                 Social::option('fetch_comments', $this->request->post('social_fetch_comments')); 
     63            if ($this->request->post('social_cron') !== null) { 
     64                Social::option('cron', $this->request->post('social_cron')); 
    5865 
    5966                // Unschedule the CRONs 
    60                 if ($this->request->post('social_fetch_comments') != '1' and ($timestamp = wp_next_scheduled('social_cron_15_init')) !== false) { 
     67                if ($this->request->post('social_cron') != '1' and ($timestamp = wp_next_scheduled('social_cron_15_init')) !== false) { 
    6168                    wp_unschedule_event($timestamp, 'social_cron_15_init'); 
    6269                } 
  • social/trunk/lib/social/date.php

    r617518 r643119  
    127127 
    128128        // Months 
    129         if (!empty($span['months'])) { 
     129        elseif (!empty($span['months'])) { 
    130130            if ($span['months'] == '1') { 
    131131                $output = __('1 month', 'social'); 
     
    137137 
    138138        // Weeks 
    139         if (!empty($span['weeks'])) { 
     139        elseif (!empty($span['weeks'])) { 
    140140            if ($span['weeks'] == '1') { 
    141141                $output = __('1 week', 'social'); 
    142142            } 
    143143            else { 
    144                 $output = sprintf(__('%s weeks', $span['weeks']), $span['weeks']); 
     144                $output = sprintf(__('%s weeks', 'social'), $span['weeks']); 
    145145            } 
    146146        } 
    147147 
    148148        // Days 
    149         if (!empty($span['days'])) { 
     149        elseif (!empty($span['days'])) { 
    150150            if ($span['days'] == '1') { 
    151151                $output = __('1 day', 'social'); 
     
    156156        } 
    157157 
    158         // Hours 
    159         $hours = ''; 
    160         if (!empty($span['hours'])) { 
    161             if ($span['hours'] == '1') { 
    162                 $hours = __('1 hour', 'social'); 
    163             } 
    164             else { 
    165                 $hours = sprintf(__('%s hours', 'social'), $span['hours']); 
    166             } 
    167         } 
    168  
    169         // Minutes 
    170         $minutes = ''; 
    171         if (!empty($span['minutes'])) { 
    172             if ($span['minutes'] == '1') { 
    173                 $minutes = __('1 minute', 'social'); 
    174             } 
    175             else { 
    176                 $minutes = sprintf(__('%s minutes', 'social'), $span['minutes']); 
    177             } 
    178         } 
    179  
    180         // Seconds 
    181         if (empty($hours) and empty($minutes)) { 
    182             if (!empty($span['seconds'])) { 
    183                 if ($span['seconds'] == '1') { 
    184                     $output = __('1 second', 'social'); 
     158        // Hours and Minutes 
     159        elseif (!empty($span['hours']) || !empty($span['minutes'])) { 
     160            $hours = ''; 
     161            $minutes = ''; 
     162 
     163            if (!empty($span['hours'])) { 
     164                if ($span['hours'] == '1') { 
     165                    $hours = __('1 hour', 'social'); 
    185166                } 
    186167                else { 
    187                     $output = sprintf(__('%s seconds', 'social'), $span['seconds']); 
     168                    $hours = sprintf(__('%s hours', 'social'), $span['hours']); 
    188169                } 
    189170            } 
    190         } 
    191  
    192         if (!empty($hours) and !empty($minutes)) { 
    193             $output = $hours.' '.$minutes; 
    194         } 
    195         else if (!empty($hours)) { 
    196             $output = $hours; 
    197         } 
    198         else { 
    199             $output = $minutes; 
    200         } 
     171 
     172            if (!empty($span['minutes'])) { 
     173                if ($span['minutes'] == '1') { 
     174                    $minutes = __('1 minute', 'social'); 
     175                } 
     176                else { 
     177                    $minutes = sprintf(__('%s minutes', 'social'), $span['minutes']); 
     178                } 
     179            } 
     180 
     181            if (!empty($hours) and !empty($minutes)) { 
     182                $output = $hours.' and '.$minutes; 
     183            } 
     184            else if (!empty($hours)) { 
     185                $output = $hours; 
     186            } 
     187            else { 
     188                $output = $minutes; 
     189            } 
     190 
     191        } 
     192 
     193        // Seconds 
     194        elseif (!empty($span['seconds'])) { 
     195            if ($span['seconds'] == '1') { 
     196                $output = __('1 second', 'social'); 
     197            } 
     198            else { 
     199                $output = sprintf(__('%s seconds', 'social'), $span['seconds']); 
     200            } 
     201        } 
     202 
    201203 
    202204        return apply_filters('social_formatted_date', $output, $remote, $local); 
     
    226228 
    227229        // Months 
    228         if (!empty($span['months'])) { 
     230        elseif (!empty($span['months'])) { 
    229231            if ($span['months'] == '1') { 
    230232                $output = __('1 month ago', 'social'); 
     
    236238 
    237239        // Weeks 
    238         if (!empty($span['weeks'])) { 
     240        elseif (!empty($span['weeks'])) { 
    239241            if ($span['weeks'] == '1') { 
    240242                $output = __('1 week ago', 'social'); 
    241243            } 
    242244            else { 
    243                 $output = sprintf(__('%s weeks ago', $span['weeks']), $span['weeks']); 
     245                $output = sprintf(__('%s weeks ago', 'social'), $span['weeks']); 
    244246            } 
    245247        } 
    246248 
    247249        // Days 
    248         if (!empty($span['days'])) { 
     250        elseif (!empty($span['days'])) { 
    249251            if ($span['days'] == '1') { 
    250                 $output = __('1 day', 'social'); 
     252                $output = __('1 day ago', 'social'); 
    251253            } 
    252254            else { 
     
    256258 
    257259        // Hours 
    258         $hours = ''; 
    259         if (!empty($span['hours'])) { 
     260        elseif (!empty($span['hours'])) { 
    260261            if ($span['hours'] == '1') { 
    261                 $hours = __('1 hour', 'social'); 
    262             } 
    263             else { 
    264                 $hours = sprintf(__('%s hours', 'social'), $span['hours']); 
     262                $output = __('1 hour ago', 'social'); 
     263            } 
     264            else { 
     265                $output = sprintf(__('%s hours', 'social'), $span['hours']); 
    265266            } 
    266267        } 
    267268 
    268269        // Minutes 
    269         $minutes = ''; 
    270         if (!empty($span['minutes'])) { 
     270        elseif (!empty($span['minutes'])) { 
    271271            if ($span['minutes'] == '1') { 
    272                 $minutes = __('1 minute', 'social'); 
    273             } 
    274             else { 
    275                 $minutes = sprintf(__('%s minutes', 'social'), $span['minutes']); 
     272                $output = __('1 minute ago', 'social'); 
     273            } 
     274            else { 
     275                $output = sprintf(__('%s minutes ago', 'social'), $span['minutes']); 
    276276            } 
    277277        } 
    278278 
    279279        // Seconds 
    280         if (empty($hours) and empty($minutes)) { 
     280        else { 
    281281            $output =  __('just now', 'social'); 
    282         } 
    283  
    284         if (!empty($hours)) { 
    285             if ($span['hours'] > 1) { 
    286                 $output = sprintf(__('%s ago', 'social'), $hours); 
    287             } 
    288             else { 
    289                 $output = sprintf(__('%s ago', 'social'), $hours.' '.$minutes); 
    290             } 
    291         } 
    292         else { 
    293             $output = sprintf(__('%s ago', 'social'), $minutes); 
    294282        } 
    295283 
  • social/trunk/lib/social/service.php

    r617518 r643119  
    6060        global $post; 
    6161 
    62         $proxy = Social::$api_url.$this->_key.'/authorize'; 
    63         $url = apply_filters('social_authorize_url', $proxy, $this->_key); 
    64  
    65         $params = '?social_controller=auth&social_action=authorize&target='.urlencode($url); 
     62        $params = '?social_controller=auth&social_action=authorize&key='.$this->_key; 
    6663        if (is_admin()) { 
    6764            $url = (defined('IS_PROFILE_PAGE') ? 'profile.php' : 'options-general.php'); 
     
    410407                    break; 
    411408                case '{content}': 
    412                     $content = htmlspecialchars_decode(strip_tags($post->post_content)); 
     409                    $content = do_shortcode($post->post_content); 
     410                    $content = htmlspecialchars_decode(strip_tags($content)); 
    413411                    $content = str_replace(array("\n", "\r", PHP_EOL, ' '), ' ', $content); 
    414412                    $content = preg_replace('/\s+/', ' ', $content); 
  • social/trunk/lib/social/service/facebook.php

    r617518 r643119  
    144144 
    145145        $args = apply_filters($this->key().'_broadcast_args', $args, $post_id, $comment_id); 
    146         $endpoint = isset($args['link']) ? 'links' : 'feed'; 
    147         return $this->request($account, 'me/'.$endpoint, $args, 'POST'); 
     146        return $this->request($account, 'me/feed', $args, 'POST'); 
    148147    } 
    149148 
  • social/trunk/social.php

    r617518 r643119  
    44Plugin URI: http://mailchimp.com/social-plugin-for-wordpress/ 
    55Description: Broadcast newly published posts and pull in discussions using integrations with Twitter and Facebook. Brought to you by <a href="http://mailchimp.com">MailChimp</a>. 
    6 Version: 2.6 
     6Version: 2.7 
    77Author: Crowd Favorite 
    88Author URI: http://crowdfavorite.com/ 
     
    2121     * @var  string  URL of the API 
    2222     */ 
    23     public static $api_url = 'https://sopresto.mailchimp.com/'; 
     23    public static $api_url = 'https://sopresto.socialize-this.com/'; 
    2424 
    2525    /** 
    2626     * @var  string  version number 
    2727     */ 
    28     public static $version = '2.6'; 
     28    public static $version = '2.7'; 
    2929 
    3030    /** 
     
    6868        'comment_broadcast_format' => '{content} {url}', 
    6969        'system_cron_api_key' => null, 
    70         'fetch_comments' => '1', 
     70        'cron' => '1', 
     71        'aggregate_comments' => '1', 
    7172        'broadcast_by_default' => '0', 
    7273        'use_standard_comments' => '0', 
     
    488489        Social::log('Checking system CRON'); 
    489490        // Schedule CRONs 
    490         if (Social::option('fetch_comments') == '1') { 
     491        if (Social::option('cron') == '1') { 
    491492            if (wp_next_scheduled('social_cron_15_init') === false) { 
    492493                Social::log('Adding Social 15 CRON schedule'); 
     
    790791                    'add_meta_box_broadcast' 
    791792                ), $post_type, 'side', 'high'); 
    792      
    793                 $fetch = Social::option('fetch_comments'); 
    794                 if ($this->_enabled and !empty($fetch)) { 
    795                     if ($post->post_status == 'publish') { 
    796                         add_meta_box('social_meta_aggregation_log', __('Social Comments', 'social'), array( 
    797                             $this, 
    798                             'add_meta_box_log' 
    799                         ), $post_type, 'normal', 'core'); 
    800                     } 
     793 
     794                $fetch = Social::option('aggregate_comments'); 
     795                if ($this->_enabled 
     796                    && !empty($fetch) 
     797                    && $post->post_status == 'publish' 
     798                    && post_type_supports($post->post_type, 'comments') 
     799                    && Social::option('aggregate_comments')) 
     800                { 
     801                    add_meta_box('social_meta_aggregation_log', __('Social Comments', 'social'), array( 
     802                        $this, 
     803                        'add_meta_box_log' 
     804                    ), $post_type, 'normal', 'core'); 
    801805                } 
    802806            } 
     
    16791683     */ 
    16801684    public function post_row_actions(array $actions, $post) { 
    1681         if ($post->post_status == 'publish' && in_array(Social::option('fetch_comments'), array('1', '2'))) { 
     1685        if (post_type_supports( get_current_screen()->post_type, 'comments' ) 
     1686            && $post->post_status == 'publish' 
     1687            && Social::option('aggregate_comments')) 
     1688        { 
    16821689            $actions['social_aggregation'] = sprintf(__('<a href="%s" rel="%s">Social Comments</a>', 'social'), esc_url(wp_nonce_url(admin_url('options-general.php?social_controller=aggregation&social_action=run&post_id='.$post->ID), 'run')), $post->ID). 
    16831690                '<img src="'.esc_url(admin_url('images/wpspin_light.gif')).'" class="social_run_aggregation_loader" />'; 
     
    17011708 
    17021709        if (!empty($current_object->post_type) 
    1703             and ($post_type_object = get_post_type_object($current_object->post_type)) 
    1704                 and current_user_can($post_type_object->cap->edit_post, $current_object->ID) 
    1705                     and ($post_type_object->show_ui or 'attachment' == $current_object->post_type) 
    1706                         and (in_array(Social::option('fetch_comments'), array('1', '2'))) 
    1707         ) { 
     1710            && ($post_type_object = get_post_type_object($current_object->post_type)) 
     1711            && current_user_can($post_type_object->cap->edit_post, $current_object->ID) 
     1712            && ($post_type_object->show_ui || 'attachment' == $current_object->post_type) 
     1713            && Social::option('aggregate_comments') 
     1714            && post_type_supports($current_object->post_type, 'comments')) 
     1715        { 
    17081716            $wp_admin_bar->add_menu(array( 
    17091717                'parent' => 'comments', 
     
    19281936        } 
    19291937 
     1938 
    19301939        $data = array( 
    19311940            'timeout' => 0.01, 
     
    22262235// CRON Actions 
    22272236add_action('social_cron_15_init', array($social, 'cron_15_init')); 
    2228 add_action('social_cron_15', array($social, 'run_aggregation')); 
     2237if (Social::option('aggregate_comments')) { 
     2238    add_action('social_cron_15', array($social, 'run_aggregation')); 
     2239} 
    22292240 
    22302241// Admin Actions 
  • social/trunk/views/wp-admin/options.php

    r617518 r643119  
    3939            </tr> 
    4040            <tr> 
     41                <th><?php _e('Pull in social comments from Facebook and Twitter', 'social'); ?></th> 
     42                <td> 
     43                    <input type="radio" name="social_aggregate_comments" id="social-aggregate-comments-yes" value="1"<?php checked('1', Social::option('aggregate_comments'), true); ?> 
     44                    <label for="social-aggregate-comments-yes"><?php _e('Yes', 'social'); ?></label> 
     45 
     46                    <input type="radio" name="social_aggregate_comments" id="social-aggregate-comments-no" value="0"<?php checked('0', Social::option('aggregate_comments'), true); ?> 
     47                    <label for="social-aggregate-comments-no"><?php _e('No', 'social'); ?></label> 
     48                </td> 
     49            </tr> 
     50            <tr> 
    4151                <th> 
    4252                    <label for="social_broadcast_format"><?php _e('Post broadcast format', 'social'); ?></label> 
     
    97107        </table> 
    98108<?php 
    99 $fetch = Social::option('fetch_comments'); 
     109$cron = Social::option('cron'); 
    100110$toggle = ( 
    101     (!empty($fetch) and $fetch != '1') or 
     111    (empty($cron)) or 
    102112    Social::option('debug') == '1' or 
    103113    Social::option('use_standard_comments') == 1 or 
     
    149159                    </tr> 
    150160                    <tr> 
    151                         <th><?php _e('Fetch new comments', 'social'); ?></th> 
     161                        <th><?php _e('Cron settings', 'social'); ?></th> 
    152162                        <td> 
    153163                            <ul> 
    154164                                <li> 
    155                                     <label for="fetch_comments_auto"> 
    156                                         <input type="radio" name="social_fetch_comments" value="1" id="fetch_comments_auto" style="position:relative;top:-1px"<?php echo Social::option('fetch_comments') == '1' ? ' checked="checked"' : ''; ?> /> 
    157                                         <?php _e('Automatically', 'social'); ?> 
     165                                    <label for="cron_auto"> 
     166                                        <input type="radio" name="social_cron" value="1" id="cron_auto" style="position:relative;top:-1px"<?php echo Social::option('cron') == '1' ? ' checked="checked"' : ''; ?> /> 
     167                                        <?php _e('Automatic (WP Cron)', 'social'); ?> 
    158168                                        <span class="description"><?php _e('(easiest)', 'social'); ?></span> 
    159169                                    </label> 
    160170                                </li> 
    161171                                <li> 
    162                                     <label for="fetch_comments_never"> 
    163                                         <input type="radio" name="social_fetch_comments" value="0" id="fetch_comments_never" style="position:relative;top:-1px"<?php echo !in_array(Social::option('fetch_comments'), array('1', '2')) ? ' checked="checked"' : ''; ?> /> 
    164                                         <?php _e('Never', 'social'); ?> 
    165                                         <span class="description"><?php _e('(disables fetching of comments)', 'social'); ?></span> 
    166                                     </label> 
    167                                 </li> 
    168                                 <li> 
    169                                     <label for="fetch_comments_cron"> 
    170                                         <input type="radio" name="social_fetch_comments" value="2" id="fetch_comments_cron" style="position:relative;top:-1px"<?php echo Social::option('fetch_comments') == '2' ? ' checked="checked"' : ''; ?> /> 
    171                                         <?php _e('Using a custom CRON job <span class="description">(advanced)</span>', 'social'); ?> 
     172                                    <label for="cron_manual"> 
     173                                        <input type="radio" name="social_cron" value="0" id="cron_manual" style="position:relative;top:-1px"<?php echo Social::option('cron') == '0' ? ' checked="checked"' : ''; ?> /> 
     174                                        <?php _e('Manual <span class="description">(advanced)</span>', 'social'); ?> 
    172175                                    </label> 
    173176                                    <p class="description"><?php _e('If you select this option, new tweets and Facebook posts will not be fetched unless you set up a system CRON job or fetch new items manually from the post edit screen. More help is also available in&nbsp;<code>README.txt</code>.', 'social'); ?></p> 
    174                                     <?php if (Social::option('fetch_comments') == '2'): ?> 
     177<?php 
     178if (Social::option('cron') === '0') { 
     179?> 
    175180                                    <div class="social-callout"> 
    176181                                        <h3 class="social-title"><?php _e('CRON Setup', 'social'); ?></h3> 
     
    183188                                        <p><?php _e('For your system CRON to run correctly, make sure it is pointing towards a URL that looks something like the following:', 'social'); ?></p> 
    184189                                        <code><?php echo esc_url(home_url('index.php?social_controller=cron&social_action=cron_15&api_key='.Social::option('system_cron_api_key'))); ?></code> 
    185                                         <?php endif; ?> 
     190<?php 
     191} 
     192?> 
    186193                                    </div> 
    187194                                </li> 
  • social/trunk/views/wp-admin/post/meta/log/shell.php

    r617518 r643119  
    1313</div><!-- .social-meta-box-block --> 
    1414 
    15 <?php if (in_array(Social::option('fetch_comments'), array('1', '2'))) { ?> 
     15<?php 
     16if (Social::option('aggregate_comments')) { 
     17?> 
    1618<div class="social-meta-box-block cf-clearfix"> 
    1719    <h4> 
     
    2527    </p> 
    2628</div><!-- .social-meta-box-block --> 
    27 <?php } ?> 
     29<?php 
     30} 
     31?> 
    2832 
    2933<div class="social-meta-box-block"> 
Note: See TracChangeset for help on using the changeset viewer.