WordPress.org

Plugin Directory

Changeset 567832


Ignore:
Timestamp:
07/05/12 14:30:22 (22 months ago)
Author:
jorbin
Message:

add updated version of addthis_addjs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • addthis/trunk/includes/addthis_addjs.php

    r556734 r567832  
    1111    private $_cuid; 
    1212 
     13    private $_atPlugins = array( 
     14        'AddThis Social Bookmarking Widget' => array('http://wordpress.org/extend/plugins/addthis/', 'Share') , 
     15        'AddThis Follow Widget' => array('http://wordpress.org/extend/plugins/addthis-follow/', 'Follow'), 
     16//        'AddThis Trending Content Widget' => array('http://wordpress.org/extend/plugins/addthis-trending', 'Trending' ), 
     17//        'AddThis Welcome Bar' => array('http://wordpress.org/extend/plugins/addthis-welcome/', 'Welcome'),  
     18    ); 
     19    private $_atInstalled = array(); 
     20 
    1321    var $pubid; 
    1422     
    1523    var $jsToAdd; 
     24 
     25    var $jsAfterAdd; 
    1626 
    1727    var $atversion; 
     
    2636    public function __construct ($options){ 
    2737        if ( did_action('addthis_addjs_created') !== 0){ 
    28             _doing_it_wrong( 'addthis_addjs', 'Only one instance of this class should be initialized.  Look for the $addthis_addjs global first' );  
     38            _doing_it_wrong( 'addthis_addjs', 'Only one instance of this class should be initialized.  Look for the $addthis_addjs global first',1 );  
    2939        } 
    3040 
     
    7989            $this->wrapJs(); 
    8090            $this->addWidgetToJs(); 
     91            $this->addAfterToJs(); 
    8192            echo $this->jsToAdd; 
    8293            $this->_js_added = true; 
     
    89100            $this->wrapJs(); 
    90101            $this->addWidgetToJs(); 
     102            $this->addAfterToJs(); 
    91103            $content = $content . $this->jsToAdd; 
    92104            $this->_js_added = true; 
     
    135147    } 
    136148     
     149    function addAfterScript($newData){ 
     150        $this->jsAfterAdd .= $newData; 
     151    } 
    137152 
    138153    function addWidgetToJs(){ 
    139154        $this->jsToAdd .= '<script type="text/javascript" src="//s7.addthis.com/js/'.$this->atversion.'/addthis_widget.js#pubid='. urlencode( $this->pubid ).'"></script>'; 
     155    } 
     156 
     157    function addAfterToJs(){ 
     158        if (! empty($this->jsAfterAdd)); 
     159            $this->jsToAdd .= '<script type="text/javascript">' . $this->jsAfterAdd . '</script>'; 
    140160    } 
    141161 
     
    157177    function setProfileId($profile){ 
    158178        $this->_options['profile'] = sanitize_text_field($profile); 
    159         update_option( 'addthis_settings', $options);  
     179        update_option( 'addthis_settings', $this->_options);  
    160180    }    
    161181 
     
    169189    } 
    170190 
     191    function getAtPluginPromoText(){ 
     192        if (! did_action('admin_init') && !  current_filter('admin_init')) 
     193        { 
     194            _doing_it_wrong('getAtPluginPromoText', 'This function should only be called on an admin page load and no earlier the admin_init', 1); 
     195            return null; 
     196        } 
     197        if (apply_filters('addthis_crosspromote', '__return_true')) 
     198        { 
     199            $plugins = get_plugins(); 
     200            if (empty($this->_atInstalled)) 
     201            { 
     202                foreach($plugins as $plugin) 
     203                { 
     204                    if (substr($plugin['Name'], 0, 7) === 'AddThis') 
     205                        array_push($this->_atInstalled, $plugin['Name']); 
     206                } 
     207            } 
     208            $keys = array_keys($this->_atPlugins); 
     209            $uninstalled = array_diff( $keys, $this->_atInstalled); 
     210            if (empty($uninstalled)) 
     211                return false; 
     212 
     213            // Get rid of our keys, we just want the names which are the keys elsewhere 
     214            $uninstalled = array_values($uninstalled); 
     215 
     216            $string = __('Want to increase your site traffic?  AddThis also has '); 
     217            $count = count($uninstalled); 
     218            if ($count == 1){ 
     219                $string .= __('a plugin for ', 'addthis'); 
     220                $string .= __( sprintf('<a href="%s" target="_blank">' .$this->_atPlugins[$uninstalled[0]][1] .'</a>', $this->_atPlugins[$uninstalled[0]][0]), 'addthis'); 
     221            }  else { 
     222                $string . __('plugins for '); 
     223                 
     224                for ($i = 0; $i < $count; $i++) { 
     225                    $string .= __( sprintf('<strong><a href="%s" target="_blank" >' .$this->_atPlugins[$uninstalled[$i]][1] .'</a></strong>', $this->_atPlugins[$uninstalled[$i]][0]), 'addthis'); 
     226                    if ($i < ($count - 2)) 
     227                        $string .= ', '; 
     228                    else if ($i == ($count -2)) 
     229                        $string .= ' and '; 
     230                    else if ($i == ($count -1)) 
     231                        $string .= ' plugins available.'; 
     232                     
     233                } 
     234 
     235 
     236            } 
     237 
     238            return '<p class="addthis_more_promo">' .$string . '</p>'; 
     239             
     240 
     241 
     242 
     243 
     244 
     245        } 
     246    } 
    171247 
    172248} 
Note: See TracChangeset for help on using the changeset viewer.