WordPress.org

Plugin Directory

Changeset 600169


Ignore:
Timestamp:
09/17/12 17:20:39 (19 months ago)
Author:
aaroncampbell
Message:

Converting to Range Plugin Framework

Location:
twitter-widget-pro/trunk
Files:
1 deleted
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • twitter-widget-pro/trunk/range-plugin-framework.php

    r599141 r600169  
    11<?php 
    22/** 
    3  * Version: 1.0.15 
     3 * Version: 1.1.0 
    44 */ 
    55/** 
    66 * Changelog: 
    77 * 
     8 * 1.1.0: 
     9 *  - Complete change to Range framework 
     10 *  - Coding standards 
     11 *  - Move from camelCase to underscores for function names 
     12 *  - Drop support for WP 2.8 & 2.9 
     13 * 
    814 * 1.0.15: 
    915 *  - Fix support forum link 
     
    4955 *  - Changed to use new cdn for images 
    5056 */ 
    51 if (!class_exists('XavisysPlugin')) { 
     57if (!class_exists('RangePlugin')) { 
    5258    /** 
    53      * Abstract class XavisysPlugin used as a WordPress Plugin framework 
     59     * Abstract class RangePlugin used as a WordPress Plugin framework 
    5460     * 
    5561     * @abstract 
    5662     */ 
    57     abstract class XavisysPlugin { 
     63    abstract class RangePlugin { 
    5864        /** 
    5965         * @var array Plugin settings 
     
    102108 
    103109        /** 
    104          * @var string - The plugin slug used on WordPress.org and/or Xavisys forums 
     110         * @var string - The plugin slug used on WordPress.org 
    105111         */ 
    106112        protected $_slug = ''; 
    107113 
    108114        /** 
    109          * @var string - The feed URL for Xavisys 
     115         * @var string - The feed URL for Range 
    110116         */ 
    111117        protected $_feed_url = 'http://ran.ge/feed/'; 
     
    123129         */ 
    124130        protected function __construct() { 
    125             if ( is_callable( array($this, '_init') ) ) { 
     131            if ( is_callable( array($this, '_init') ) ) 
    126132                $this->_init(); 
    127             } 
    128             $this->_getSettings(); 
    129             if ( is_callable( array($this, '_postSettingsInit') ) ) { 
    130                 $this->_postSettingsInit(); 
    131             } 
     133 
     134            $this->_get_settings(); 
     135            if ( is_callable( array($this, '_post_settings_init') ) ) 
     136                $this->_post_settings_init(); 
     137 
    132138            add_filter( 'init', array( $this, 'init_locale' ) ); 
    133             add_action( 'admin_init', array( $this, 'registerOptions' ) ); 
    134             add_filter( 'plugin_action_links', array( $this, 'addPluginPageLinks' ), 10, 2 ); 
    135             add_filter( 'plugin_row_meta', array( $this, 'addPluginMetaLinks' ), 10, 2 ); 
    136             add_action( 'admin_menu', array( $this, 'registerOptionsPage' ) ); 
    137             if ( is_callable(array( $this, 'addOptionsMetaBoxes' )) ) { 
    138                 add_action( 'admin_init', array( $this, 'addOptionsMetaBoxes' ) ); 
    139             } 
    140             add_action( 'admin_init', array( $this, 'addDefaultOptionsMetaBoxes' ) ); 
    141             add_action( 'wp_dashboard_setup', array( $this, 'addDashboardWidgets' ), null, 9 ); 
    142             add_action( 'admin_print_scripts', array( $this,'optionsPageScripts' ) ); 
    143             add_action( 'admin_print_styles', array( $this,'optionsPageStyles' ) ); 
    144             /** 
    145              * Add update messages that can be attached to the CURRENT release (not 
    146              * this one), but only for 2.8+ 
    147              */ 
    148             global $wp_version; 
    149             if ( version_compare('2.8', $wp_version, '<=') ) { 
    150                 add_action ( 'in_plugin_update_message-'.$this->_file , array ( $this , 'changelog' ), null, 2 ); 
    151             } 
     139            add_action( 'admin_init', array( $this, 'register_options' ) ); 
     140            add_filter( 'plugin_action_links', array( $this, 'add_plugin_page_links' ), 10, 2 ); 
     141            add_filter( 'plugin_row_meta', array( $this, 'add_plugin_meta_links' ), 10, 2 ); 
     142            add_action( 'admin_menu', array( $this, 'register_options_page' ) ); 
     143            if ( is_callable(array( $this, 'add_options_meta_boxes' )) ) 
     144                add_action( 'admin_init', array( $this, 'add_options_meta_boxes' ) ); 
     145 
     146            add_action( 'admin_init', array( $this, 'add_default_options_meta_boxes' ) ); 
     147            add_action( 'wp_dashboard_setup', array( $this, 'add_dashboard_widgets' ), null, 9 ); 
     148            add_action( 'admin_print_scripts', array( $this,'admin_print_scripts' ) ); 
     149            add_action( 'admin_enqueue_scripts', array( $this,'admin_enqueue_scripts' ) ); 
     150 
     151            add_action ( 'in_plugin_update_message-'.$this->_file , array ( $this , 'changelog' ), null, 2 ); 
    152152        } 
    153153 
     
    162162        } 
    163163 
    164         protected function _getSettings() { 
     164        protected function _get_settings() { 
    165165            foreach ( $this->_optionNames as $opt ) { 
    166166                $this->_settings[$opt] = apply_filters($this->_slug.'-opt-'.$opt, get_option($opt)); 
     
    168168        } 
    169169 
    170         public function registerOptions() { 
     170        public function register_options() { 
    171171            foreach ( $this->_optionNames as $opt ) { 
    172172                if ( !empty($this->_optionCallbacks[$opt]) && is_callable( $this->_optionCallbacks[$opt] ) ) { 
     
    201201        } 
    202202 
    203         public function registerOptionsPage() { 
    204             if ( apply_filters( 'xpf-options_page-'.$this->_slug, true ) && is_callable( array( $this, 'options_page' ) ) ) { 
     203        public function register_options_page() { 
     204            if ( apply_filters( 'rpf-options_page-'.$this->_slug, true ) && is_callable( array( $this, 'options_page' ) ) ) 
    205205                add_options_page( $this->_pageTitle, $this->_menuTitle, $this->_accessLevel, $this->_hook, array( $this, 'options_page' ) ); 
    206             } 
    207         } 
    208  
    209         protected function _filterBoxesMain($boxName) { 
    210             if ( 'main' == strtolower($boxName) ) { 
     206        } 
     207 
     208        protected function _filter_boxes_main($boxName) { 
     209            if ( 'main' == strtolower($boxName) ) 
    211210                return false; 
    212             } 
    213             return $this->_filterBoxesHelper($boxName, 'main'); 
    214         } 
    215  
    216         protected function _filterBoxesSidebar($boxName) { 
    217             return $this->_filterBoxesHelper($boxName, 'sidebar'); 
    218         } 
    219  
    220         protected function _filterBoxesHelper($boxName, $test) { 
     211 
     212            return $this->_filter_boxes_helper($boxName, 'main'); 
     213        } 
     214 
     215        protected function _filter_boxes_sidebar($boxName) { 
     216            return $this->_filter_boxes_helper($boxName, 'sidebar'); 
     217        } 
     218 
     219        protected function _filter_boxes_helper($boxName, $test) { 
    221220            return ( strpos( strtolower($boxName), strtolower($test) ) !== false ); 
    222221        } 
     
    224223        public function options_page() { 
    225224            global $wp_meta_boxes; 
    226             $allBoxes = array_keys( $wp_meta_boxes['xavisys-'.$this->_slug] ); 
    227             $mainBoxes = array_filter( $allBoxes, array( $this, '_filterBoxesMain' ) ); 
     225            $allBoxes = array_keys( $wp_meta_boxes['range-'.$this->_slug] ); 
     226            $mainBoxes = array_filter( $allBoxes, array( $this, '_filter_boxes_main' ) ); 
    228227            unset($mainBoxes['main']); 
    229228            sort($mainBoxes); 
    230             $sidebarBoxes = array_filter( $allBoxes, array( $this, '_filterBoxesSidebar' ) ); 
     229            $sidebarBoxes = array_filter( $allBoxes, array( $this, '_filter_boxes_sidebar' ) ); 
    231230            unset($sidebarBoxes['sidebar']); 
    232231            sort($sidebarBoxes); 
     
    235234            ?> 
    236235                <div class="wrap"> 
    237                     <?php $this->screenIconLink(); ?> 
     236                    <?php $this->screen_icon_link(); ?> 
    238237                    <h2><?php echo esc_html($this->_pageTitle); ?></h2> 
    239238                    <div class="metabox-holder"> 
    240239                        <div class="postbox-container" style="width:<?php echo $main_width; ?>;"> 
    241240                        <?php 
    242                             do_action( 'xpf-pre-main-metabox', $main_width ); 
     241                            do_action( 'rpf-pre-main-metabox', $main_width ); 
    243242                            if ( in_array( 'main', $allBoxes ) ) { 
    244243                        ?> 
    245                             <form action="<?php esc_attr_e( $this->_optionsPageAction ); ?>" method="post"<?php do_action( 'xpf-options-page-form-tag' ) ?>> 
     244                            <form action="<?php esc_attr_e( $this->_optionsPageAction ); ?>" method="post"<?php do_action( 'rpf-options-page-form-tag' ) ?>> 
    246245                                <?php 
    247246                                settings_fields( $this->_optionGroup ); 
    248                                 do_meta_boxes( 'xavisys-' . $this->_slug, 'main', '' ); 
    249                                 if ( apply_filters( 'xpf-show-general-settings-submit'.$this->_slug, true ) ) { 
     247                                do_meta_boxes( 'range-' . $this->_slug, 'main', '' ); 
     248                                if ( apply_filters( 'rpf-show-general-settings-submit'.$this->_slug, true ) ) { 
    250249                                ?> 
    251250                                <p class="submit"> 
     
    259258                            } 
    260259                            foreach( $mainBoxes as $context ) { 
    261                                 do_meta_boxes( 'xavisys-' . $this->_slug, $context, '' ); 
     260                                do_meta_boxes( 'range-' . $this->_slug, $context, '' ); 
    262261                            } 
    263262                        ?> 
     
    269268                            <?php 
    270269                            foreach( $sidebarBoxes as $context ) { 
    271                                 do_meta_boxes( 'xavisys-' . $this->_slug, $context, '' ); 
     270                                do_meta_boxes( 'range-' . $this->_slug, $context, '' ); 
    272271                            } 
    273272                            ?> 
     
    281280        } 
    282281 
    283         public function addPluginPageLinks( $links, $file ){ 
     282        public function add_plugin_page_links( $links, $file ){ 
    284283            if ( $file == $this->_file ) { 
    285284                // Add Widget Page link to our plugin 
    286                 $link = $this->getOptionsLink(); 
     285                $link = $this->get_options_link(); 
    287286                array_unshift( $links, $link ); 
    288287 
    289288                // Add Support Forum link to our plugin 
    290                 $link = $this->getSupportForumLink(); 
     289                $link = $this->get_support_forum_link(); 
    291290                array_unshift( $links, $link ); 
    292291            } 
     
    294293        } 
    295294 
    296         public function addPluginMetaLinks( $meta, $file ){ 
    297             if ( $file == $this->_file ) { 
    298                 // Add Widget Page link to our plugin 
    299                 $meta[] = $this->getDonateLink(__('Donate')); 
    300             } 
     295        public function add_plugin_meta_links( $meta, $file ){ 
     296            if ( $file == $this->_file ) 
     297                $meta[] = $this->get_plugin_link(__('Rate Plugin')); 
    301298            return $meta; 
    302299        } 
    303300 
    304         public function getSupportForumLink( $linkText = '' ) { 
     301        public function get_support_forum_link( $linkText = '' ) { 
    305302            if ( empty($linkText) ) { 
    306                 $linkText = __( 'Support Forum', $this->_slug ); 
    307             } 
    308             return '<a href="' . $this->getSupportForumUrl() . '">' . $linkText . '</a>'; 
    309         } 
    310  
    311         public function getDonateLink( $linkText = '' ) { 
     303                $linkText = __( 'Support', $this->_slug ); 
     304            } 
     305            return '<a href="' . $this->get_support_forum_url() . '">' . $linkText . '</a>'; 
     306        } 
     307 
     308        public function get_donate_link( $linkText = '' ) { 
    312309            $url = 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=' . $this->_paypalButtonId; 
    313310            if ( empty($linkText) ) { 
     
    317314        } 
    318315 
    319         public function getSupportForumUrl() { 
     316        public function get_support_forum_url() { 
    320317            return 'http://wordpress.org/support/plugin/' . $this->_slug; 
    321318        } 
    322319 
    323         public function getOptionsLink( $linkText = '' ) { 
     320        public function get_plugin_link( $linkText = '' ) { 
     321            if ( empty($linkText) ) 
     322                $linkText = __( 'Give it a good rating on WordPress.org.', $this->_slug ); 
     323            return "<a href='" . $this->get_plugin_url() . "'>{$linkText}</a>"; 
     324        } 
     325 
     326        public function get_plugin_url() { 
     327            return 'http://wordpress.org/extend/plugins/' . $this->_slug; 
     328        } 
     329 
     330        public function get_options_link( $linkText = '' ) { 
    324331            if ( empty($linkText) ) { 
    325332                $linkText = __( 'Settings', $this->_slug ); 
    326333            } 
    327             return '<a href="' . $this->getOptionsUrl() . '">' . $linkText . '</a>'; 
    328         } 
    329  
    330         public function getOptionsUrl() { 
     334            return '<a href="' . $this->get_options_url() . '">' . $linkText . '</a>'; 
     335        } 
     336 
     337        public function get_options_url() { 
    331338            return admin_url( 'options-general.php?page=' . $this->_hook ); 
    332339        } 
    333340 
    334         public function optionsPageStyles() { 
     341        public function admin_enqueue_scripts() { 
    335342            if (isset($_GET['page']) && $_GET['page'] == $this->_hook) { 
    336343                wp_enqueue_style('dashboard'); 
    337                 wp_enqueue_style('xavisys-options-css', plugin_dir_url( __FILE__ ) . 'xavisys-plugin-framework.css'); 
    338             } 
    339         } 
    340  
    341         public function addDefaultOptionsMetaBoxes() { 
    342             if ( apply_filters( 'show-xavisys-like-this', true ) ) { 
    343                 add_meta_box( $this->_slug . '-like-this', __('Like this Plugin?', $this->_slug), array($this, 'likeThisMetaBox'), 'xavisys-' . $this->_slug, 'sidebar'); 
    344             } 
    345             if ( apply_filters( 'show-xavisys-support', true ) ) { 
    346                 add_meta_box( $this->_slug . '-support', __('Need Support?', $this->_slug), array($this, 'supportMetaBox'), 'xavisys-' . $this->_slug, 'sidebar'); 
    347             } 
    348             if ( apply_filters( 'show-xavisys-feed', true ) ) { 
    349                 add_meta_box( $this->_slug . '-xavisys-feed', __('Latest news from Xavisys', $this->_slug), array($this, 'xavisysFeedMetaBox'), 'xavisys-' . $this->_slug, 'sidebar'); 
    350             } 
    351         } 
    352  
    353         public function likeThisMetaBox() { 
     344                add_action( 'admin_print_styles-settings_page_' . $this->_hook, array( $this, 'option_page_styles' ) ); 
     345            } 
     346        } 
     347 
     348        public function option_page_styles() { 
     349            ?> 
     350            <style type="text/css"> 
     351                #icon-range { 
     352                    background:transparent url(http://s1.ran.ge/assets/range-icon-square-32x32.png) no-repeat scroll bottom left; 
     353                } 
     354            </style> 
     355            <?php 
     356        } 
     357 
     358        public function add_default_options_meta_boxes() { 
     359            if ( apply_filters( 'show-range-like-this', true ) ) 
     360                add_meta_box( $this->_slug . '-like-this', __('Like this Plugin?', $this->_slug), array($this, 'like_this_meta_box'), 'range-' . $this->_slug, 'sidebar'); 
     361 
     362            if ( apply_filters( 'show-range-support', true ) ) 
     363                add_meta_box( $this->_slug . '-support', __('Need Support?', $this->_slug), array($this, 'support_meta_box'), 'range-' . $this->_slug, 'sidebar'); 
     364 
     365            if ( apply_filters( 'show-range-feed', true ) ) 
     366                add_meta_box( $this->_slug . '-range-feed', __('Latest news from Range', $this->_slug), array($this, 'range_feed_meta_box'), 'range-' . $this->_slug, 'sidebar'); 
     367        } 
     368 
     369        public function like_this_meta_box() { 
    354370            echo '<p>'; 
    355371            _e('Then please do any or all of the following:', $this->_slug); 
    356372            echo '</p><ul>'; 
    357373 
    358             $url = apply_filters('xavisys-plugin-url-'.$this->_slug, 'http://bluedogwebservices.com/wordpress-plugin/'.$this->_slug); 
     374            $url = apply_filters('range-plugin-url-'.$this->_slug, 'http://bluedogwebservices.com/wordpress-plugin/'.$this->_slug); 
    359375            echo "<li><a href='{$url}'>"; 
    360376            _e('Link to it so others can find out about it.', $this->_slug); 
    361377            echo "</a></li>"; 
    362378 
    363             $url = 'http://wordpress.org/extend/plugins/' . $this->_slug; 
    364             echo "<li><a href='{$url}'>"; 
    365             _e('Give it a good rating on WordPress.org.', $this->_slug); 
    366             echo "</a></li>"; 
    367  
    368             echo '<li>' . $this->getDonateLink() . '</li>'; 
     379            echo '<li>' . $this->get_plugin_link() . '</li>'; 
     380 
     381            echo '<li>' . $this->get_donate_link() . '</li>'; 
    369382 
    370383            echo '</ul>'; 
    371384        } 
    372385 
    373         public function supportMetaBox() { 
     386        public function support_meta_box() { 
    374387            echo '<p>'; 
    375             echo sprintf(__('If you have any problems with this plugin or ideas for improvements or enhancements, please use the <a href="%s">Support Forums</a>.', $this->_slug), $this->getSupportForumUrl() ); 
     388            echo sprintf(__('If you have any problems with this plugin or ideas for improvements or enhancements, please use the <a href="%s">Support Forums</a>.', $this->_slug), $this->get_support_forum_url() ); 
    376389            echo '</p>'; 
    377390        } 
    378391 
    379         public function xavisysFeedMetaBox() { 
     392        public function range_feed_meta_box() { 
    380393            $args = array( 
    381394                'url'           => $this->_feed_url, 
     
    387400        } 
    388401 
    389         public function addDashboardWidgets() { 
    390             if ( apply_filters( 'xpf-dashboard-widget', true ) ) { 
    391                 wp_add_dashboard_widget( 'dashboardb_xavisys' , 'The Latest News From Range' , array( $this, 'dashboardWidget' ) ); 
    392             } 
    393         } 
    394  
    395         public function dashboardWidget() { 
     402        public function add_dashboard_widgets() { 
     403            if ( apply_filters( 'rpf-dashboard-widget', true ) ) 
     404                wp_add_dashboard_widget( 'dashboardb_range' , 'The Latest News From Range' , array( $this, 'dashboard_widget' ) ); 
     405        } 
     406 
     407        public function dashboard_widget() { 
    396408            $args = array( 
    397409                'url'           => $this->_feed_url, 
     
    401413            ); 
    402414            echo '<div class="rss-widget">'; 
    403             echo '<a href="http://ran.ge"><img class="alignright" src="http://s1.ran.ge/content/uploads/2012/06/range-trans.png" /></a>'; 
     415            echo '<a href="http://ran.ge"><img class="alignright" style="padding:0 0 5px 10px;" src="http://s1.ran.ge/content/uploads/2012/06/range-trans.png" /></a>'; 
    404416            wp_widget_rss_output( $args ); 
    405417            echo '<p style="border-top: 1px solid #CCC; padding-top: 10px; font-weight: bold;">'; 
     
    409421        } 
    410422 
    411         public function screenIconLink($name = 'xavisys') { 
     423        public function screen_icon_link($name = 'range') { 
    412424            $link = '<a href="http://ran.ge">'; 
    413425            if ( function_exists( 'get_screen_icon' ) ) { 
     
    419431            } 
    420432            $link .= '</a>'; 
    421             echo apply_filters('xpf-screenIconLink', $link, $name ); 
    422         } 
    423  
    424         public function optionsPageScripts() { 
     433            echo apply_filters('rpf-screen_icon_link', $link, $name ); 
     434        } 
     435 
     436        public function admin_print_scripts() { 
    425437            if (isset($_GET['page']) && $_GET['page'] == $this->_hook) { 
    426438                wp_enqueue_script('postbox'); 
  • twitter-widget-pro/trunk/readme.txt

    r599789 r600169  
    131131== Upgrade Notice == 
    132132 
    133 = 2.3.11 = 
     133= 2.4.0 = 
    134134Better linking to fix issues with links followed by punctuation 
    135135 
     
    169169== Changelog == 
    170170 
    171 = 2.3.11 = 
     171= 2.4.0 = 
    172172* Better linking of URLs, especially handling of punctuation at end of URLs 
    173173* More efficient regex for link parsing 
    174174* Link FTP links 
    175175* Link E-Mail addresses 
    176  
     176* Complete conversion to Range plugin framework from Xavisys framework 
    177177 
    178178= 2.3.10 = 
  • twitter-widget-pro/trunk/wp-twitter-widget.php

    r599789 r600169  
    44 * Plugin URI: http://bluedogwebservices.com/wordpress-plugin/twitter-widget-pro/ 
    55 * Description: A widget that properly handles twitter feeds, including @username, #hashtag, and link parsing.  It can even display profile images for the users.  Requires PHP5. 
    6  * Version: 2.3.11-beta 
     6 * Version: 2.4.0-beta 
    77 * Author: Aaron D. Campbell 
    88 * Author URI: http://ran.ge/ 
     
    3030 
    3131require_once( 'tlc-transients.php' ); 
    32 require_once( 'xavisys-plugin-framework.php' ); 
    33 define( 'TWP_VERSION', '2.3.11' ); 
     32require_once( 'range-plugin-framework.php' ); 
     33define( 'TWP_VERSION', '2.4.0' ); 
    3434 
    3535/** 
     
    183183 * It also helps us avoid name collisions. 
    184184 */ 
    185 class wpTwitterWidget extends XavisysPlugin { 
     185class wpTwitterWidget extends RangePlugin { 
    186186    private $_api_url; 
    187187 
     
    221221    } 
    222222 
    223     protected function _postSettingsInit() { 
     223    protected function _post_settings_init() { 
    224224        if ( ! in_array( $this->_settings['twp']['http_vs_https'], array( 'http', 'https' ) ) ) 
    225225            $this->_settings['twp']['http_vs_https'] = 'https'; 
     
    266266    } 
    267267 
    268     public function addOptionsMetaBoxes() { 
    269         add_meta_box( $this->_slug . '-general-settings', __( 'General Settings', $this->_slug ), array( $this, 'generalSettingsMetaBox' ), 'xavisys-' . $this->_slug, 'main' ); 
    270         add_meta_box( $this->_slug . '-defaults', __( 'Defaults', $this->_slug ), array( $this, 'defaultSettingsMetaBox' ), 'xavisys-' . $this->_slug, 'main' ); 
    271     } 
    272  
    273     public function generalSettingsMetaBox() { 
     268    public function add_options_meta_boxes() { 
     269        add_meta_box( $this->_slug . '-general-settings', __( 'General Settings', $this->_slug ), array( $this, 'general_settings_meta_box' ), 'range-' . $this->_slug, 'main' ); 
     270        add_meta_box( $this->_slug . '-defaults', __( 'Defaults', $this->_slug ), array( $this, 'default_settings_meta_box' ), 'range-' . $this->_slug, 'main' ); 
     271    } 
     272 
     273    public function general_settings_meta_box() { 
    274274        $clear_locks_url = wp_nonce_url( add_query_arg( array( 'action' => 'clear-locks' ) ), 'clear-locks' ); 
    275275        ?> 
     
    301301        <?php 
    302302    } 
    303     public function defaultSettingsMetaBox() { 
     303    public function default_settings_meta_box() { 
    304304        ?> 
    305305                <table class="form-table"> 
     
    685685 
    686686        if ( 'true' == $args['showXavisysLink'] ) { 
    687             $widgetContent .= '<div class="xavisys-link"><span class="xavisys-link-text">'; 
     687            $widgetContent .= '<div class="range-link"><span class="range-link-text">'; 
    688688            $linkAttrs = array( 
    689689                'href'  => 'http://bluedogwebservices.com/wordpress-plugin/twitter-widget-pro/', 
Note: See TracChangeset for help on using the changeset viewer.