WordPress.org

Plugin Directory

Changeset 1445719


Ignore:
Timestamp:
06/29/16 12:54:16 (18 months ago)
Author:
rohitink
Message:

Major update, new features and oopified

Location:
rt-slider/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • rt-slider/trunk/readme.txt

    r1443797 r1445719  
    33Tags: slider 
    44Requires at least: 4.0 
    5 Tested up to: 4.5.2 
    6 Stable tag: 4.5.2 
     5Tested up to: 4.5.3 
     6Stable tag: 4.5.3 
    77License: GPLv3 
    88License URI: https://www.gnu.org/licenses/gpl-3.0.en.html 
     
    1212== Description == 
    1313 
     14Developers: Integrate this Plugin with your themes. 
     15<a href="https://github.com/rohitink/rt-slider" target="_blank">Documentation here</a> 
     16 
    1417RT Slider is a Very Simple and Easy to use Plugin. All this Plugin does is that, it adds a Panel to your WordPress Customizer, which helps you create a Slider. It works with only those themes, which support this plugin and does not work with every theme. 
    1518 
     
    1821== Installation == 
    1922 
    20 This Plugin is Generally Recommended by themes which Support it. If you theme doesn't suppor this plugin, you will get a notice as soon as your activate this plugin. 
     23This Plugin is Generally Recommended by themes which Support it. If you theme doesn't support this plugin, you will get a notice as soon as your activate this plugin. 
    2124 
    22251. Upload the plugin files to the `/wp-content/plugins/` directory, or install the plugin through the WordPress plugins screen directly. 
    23262. Activate the plugin through the 'Plugins' screen in WordPress 
    24273. Once its Activated, Go to Appearance > Customize to Configure the Slider. 
    25  
    2628 
    2729== Screenshots == 
     
    3436= 0.9 = 
    3537* Initial Release 
     38 
     39= 0.92 = 
     40* Added Configuration Options 
     41* Added Options to Enable Slider on Specific Pages 
     42* More Custom Functions to Make it easy for Theme Developers 
     43* Completely Object Oriented Code now. 
  • rt-slider/trunk/rt-slider.php

    r1443821 r1445719  
    44Plugin Name: RT Slider 
    55Description: A Very Simple & Easy Slider Plugin, which helps you create sliders from Customizer, if your Theme Supports it. Originally Designed to Work with Rohitink.com & Inkhive.com Themes.  
    6 Version: 0.91 
     6Version: 0.92 
    77Author: Rohit Tripathi 
    88Author URI: http://rohitink.com 
     
    1616 
    1717This ensures that Users do not loose their slider data once, they switch themes. 
     18 
     19Naming of Variables: 
     20All instances of rtslider, which are for plugin use only, are named rtslider.  
     21All Those to be referenced by themes are named rt_slider. (with Underscrore). 
    1822*/ 
    1923 
     
    3135//The Purpose of creating a class here, is also to help theme check if plugin is installed by 
    3236// calling a class_exists() functions. 
    33 class rtslider { 
     37class rt_slider { 
    3438    public function __construct() { 
    3539        add_action( 'admin_notices', array($this, 'rtslider_admin_notice__error' ) ); 
    3640        add_action( 'customize_register', array($this, 'rtslider_customize_register') ); 
    3741         
    38     } 
     42    }    
     43     
    3944    //Admin Notice - If theme does not support the plugin 
    4045    public function rtslider_admin_notice__error() { 
     
    4853    } 
    4954     
    50     //The Part which Renders the Slider 
     55     
     56    //The Part which Renders the Slider in Customizer 
    5157    public function rtslider_customize_register( $wp_customize ) { 
    5258     
    53         if ( get_theme_support('rt-slider') ) : 
     59        $max_count = 10; 
     60        $page_support = false; 
     61        $config_support = false; 
     62        $front_page_only = false; 
     63        $effects_array = array(); 
     64        $config_options = array(); 
     65         
     66        $is_supported = get_theme_support('rt-slider'); 
     67                 
     68        //print_r($is_supported[0]['config']); 
     69         
     70        if ( is_array( $is_supported ) ) : 
     71            $max_count = $is_supported[0][0]; 
     72             
     73            if ( in_array( 'pages', $is_supported[0] ) ) 
     74                $page_support = true; 
     75                 
     76            if ( in_array( 'front-page-only', $is_supported[0] ) ) 
     77                $front_page_only = true; 
     78                 
     79            if ( in_array( 'config', $is_supported[0] )) 
     80                $config_support = true;  
     81                 
     82            if (array_key_exists('config', $is_supported[0] ))  : 
     83                 
     84                $config_support = true;  
     85                 
     86                //Put all Available options into the array 
     87                if (array_key_exists('options', $is_supported[0]['config'])) 
     88                    $config_options = $is_supported[0]['config']['options']; 
     89                         
     90                //Put All Available Effects into its array 
     91                if (array_key_exists('effects', $is_supported[0]['config'])) 
     92                    $effects_array = $is_supported[0]['config']['effects']; 
     93             
     94            endif; //options exist 
     95             
     96        endif;   
     97         
     98        if ( $is_supported ) : 
    5499         
    55100            // SLIDER PANEL 
     
    69114                ) 
    70115            ); 
    71              
     116                         
    72117            $wp_customize->add_setting( 
    73                 'rtslider_main_slider_enable', 
     118                'rtslider_enable_front', 
    74119                array( 'sanitize_callback' => 'rtslider_sanitize_checkbox' ) 
    75120            ); 
    76121             
    77122            $wp_customize->add_control( 
    78                     'rtslider_main_slider_enable', array( 
    79                     'settings' => 'rtslider_main_slider_enable', 
    80                     'label'    => __( 'Enable Slider on HomePage.', 'rtslider' ), 
     123                    'rtslider_enable_front', array( 
     124                    'settings' => 'rtslider_enable_front', 
     125                    'label'    => __( 'Enable Slider on Static Front Page.', 'rt-slider' ), 
    81126                    'section'  => 'rtslider_sec_slider_options', 
    82127                    'type'     => 'checkbox', 
     
    84129            ); 
    85130             
     131            //var_dump($front_page_only); 
     132             
     133            if ( !$front_page_only ) : 
     134             
     135                $wp_customize->add_setting( 
     136                    'rtslider_enable', 
     137                    array( 'sanitize_callback' => 'rtslider_sanitize_checkbox' ) 
     138                ); 
     139                 
     140                $wp_customize->add_control( 
     141                        'rtslider_enable', array( 
     142                        'settings' => 'rtslider_enable', 
     143                        'label'    => __( 'Enable Slider on Blog/Home.', 'rt-slider' ), 
     144                        'section'  => 'rtslider_sec_slider_options', 
     145                        'type'     => 'checkbox', 
     146                    ) 
     147                ); 
     148                 
     149                $wp_customize->add_setting( 
     150                    'rtslider_enable_posts', 
     151                    array( 'sanitize_callback' => 'rtslider_sanitize_checkbox' ) 
     152                ); 
     153                 
     154                $wp_customize->add_control( 
     155                        'rtslider_enable_posts', array( 
     156                        'settings' => 'rtslider_enable_posts', 
     157                        'label'    => __( 'Enable Slider on All Posts.', 'rt-slider' ), 
     158                        'section'  => 'rtslider_sec_slider_options', 
     159                        'type'     => 'checkbox', 
     160                    ) 
     161                ); 
     162                 
     163                $wp_customize->add_setting( 
     164                    'rtslider_enable_pages', 
     165                    array( 'sanitize_callback' => 'rtslider_sanitize_checkbox' ) 
     166                ); 
     167                 
     168                $wp_customize->add_control( 
     169                        'rtslider_enable_pages', array( 
     170                        'settings' => 'rtslider_enable_pages', 
     171                        'label'    => __( 'Enable Slider on All Pages.', 'rt-slider' ), 
     172                        'section'  => 'rtslider_sec_slider_options', 
     173                        'type'     => 'checkbox', 
     174                    ) 
     175                ); 
     176                 
     177            endif; //front_page_only     
     178             
     179             
     180            if ( $page_support ) : 
     181             
     182                $wp_customize->add_setting('rtslider_enable_page1', array( 
     183                    'capability' => 'edit_theme_options', 
     184                    'type' => 'option', 
     185                )); 
     186             
     187                $wp_customize->add_control('rtslider_enable_page1', array( 
     188                    'label' => __('Enable Slider on Upto 2 Individual Pages.', 'smu'), 
     189                    'description' => __('Page 1.', 'smu'), 
     190                    'section' => 'rtslider_sec_slider_options', 
     191                    'type' => 'dropdown-pages', 
     192                    'settings' => 'rtslider_enable_page1', 
     193                ));  
     194                 
     195                $wp_customize->add_setting('rtslider_enable_page2', array( 
     196                    'capability' => 'edit_theme_options', 
     197                    'type' => 'option', 
     198                )); 
     199             
     200                $wp_customize->add_control('rtslider_enable_page2', array( 
     201                    'description' => __('Page 2.', 'smu'), 
     202                    'section' => 'rtslider_sec_slider_options', 
     203                    'type' => 'dropdown-pages', 
     204                    'settings' => 'rtslider_enable_page2', 
     205                ));  
     206                 
     207            endif;   
     208             
     209             
     210            if( $config_support ) : 
     211             
     212                //Slider Config 
     213                $wp_customize->add_section( 
     214                    'rtslider_config', 
     215                    array( 
     216                        'title'     => __('Configure Slider','rt-slider'), 
     217                        'priority'  => 0, 
     218                        'panel'     => 'rtslider_panel' 
     219                    ) 
     220                ); 
     221                 
     222                if ( in_array('duration', $config_options) ) : 
     223                 
     224                    $wp_customize->add_setting( 
     225                        'rtslider_duration', 
     226                            array( 
     227                                'default' => 5000, 
     228                                'sanitize_callback' => 'rtslider_sanitize_positive_number' 
     229                            ) 
     230                    ); 
     231                     
     232                    $wp_customize->add_control( 
     233                            'rtslider_duration', array( 
     234                            'settings' => 'rtslider_duration', 
     235                            'label'    => __( 'Time Between Each Slide.' ,'rt-slider'), 
     236                            'section'  => 'rtslider_config', 
     237                            'type'     => 'number', 
     238                            'description' => __('Duration for which each slide must be shown. Value in Milliseconds. Default: 5000.','rt-slider'), 
     239                             
     240                        ) 
     241                    ); 
     242                     
     243                endif;   
     244                 
     245                 
     246                if ( in_array('speed', $config_options) ) : 
     247                 
     248                    $wp_customize->add_setting( 
     249                        'rtslider_speed', 
     250                            array( 
     251                                'default' => 500, 
     252                                'sanitize_callback' => 'rtslider_sanitize_positive_number' 
     253                            ) 
     254                    ); 
     255                     
     256                    $wp_customize->add_control( 
     257                            'rtslider_speed', array( 
     258                            'settings' => 'rtslider_speed', 
     259                            'label'    => __( 'Animation Speed.' ,'rt-slider'), 
     260                            'section'  => 'rtslider_config', 
     261                            'type'     => 'number', 
     262                            'description' => __('The Speed at which Slide Animates from one slide to another. Value in Milliseconds. Default: 500.','rt-slider'), 
     263                             
     264                        ) 
     265                    ); 
     266                 
     267                endif; 
     268                 
     269                 
     270                if ( in_array('duration', $config_options) ) : 
     271                 
     272                    $wp_customize->add_setting( 
     273                        'rtslider_random', 
     274                            array( 
     275                                'default' => false, 
     276                                'sanitize_callback' => 'rtslider_sanitize_checkbox' 
     277                            ) 
     278                    ); 
     279                     
     280                    $wp_customize->add_control( 
     281                            'rtslider_random', array( 
     282                            'settings' => 'rtslider_random', 
     283                            'label'    => __( 'Start Slider from Random Slide.' ,'rt-slider'), 
     284                            'section'  => 'rtslider_config', 
     285                            'type'     => 'checkbox',            
     286                        ) 
     287                    ); 
     288                 
     289                endif; 
     290                     
     291                if ( in_array('pager', $config_options) ) : 
     292                     
     293                    $wp_customize->add_setting( 
     294                        'rtslider_pager', 
     295                            array( 
     296                                'default' => true, 
     297                                'sanitize_callback' => 'rtslider_sanitize_checkbox' 
     298                            ) 
     299                    ); 
     300                     
     301                    $wp_customize->add_control( 
     302                            'rtslider_pager', array( 
     303                            'settings' => 'rtslider_pager', 
     304                            'label'    => __( 'Enable Pager.' ,'rt-slider'), 
     305                            'section'  => 'rtslider_config', 
     306                            'type'     => 'checkbox', 
     307                            'description' => __('Pager is the Small buttons at the bottom, which represent current slide.','rt-slider'),             
     308                        ) 
     309                    ); 
     310                     
     311                endif;   
     312                 
     313                if ( in_array('duration', $config_options) ) : 
     314                 
     315                $wp_customize->add_setting( 
     316                        'rtslider_autoplay', 
     317                            array( 
     318                                'default' => true, //Because, in nivo its Force Manual Transitions. 
     319                                'sanitize_callback' => 'rtslider_sanitize_checkbox' 
     320                            ) 
     321                    ); 
     322                     
     323                    $wp_customize->add_control( 
     324                            'rtslider_autoplay', array( 
     325                            'settings' => 'rtslider_autoplay', 
     326                            'label'    => __( 'Enable Autoplay.' ,'rt-slider'), 
     327                            'section'  => 'rtslider_config', 
     328                            'type'     => 'checkbox', 
     329                        ) 
     330                    ); 
     331                 
     332                endif; 
     333                 
     334                if ( !empty($effects_array ) ):  
     335                 
     336                    $wp_customize->add_setting( 
     337                        'rtslider_effect', 
     338                            array( 
     339                                'default' => 'random', 
     340                                'sanitize_callback' => 'rtslider_sanitize_text' 
     341                            ) 
     342                    ); 
     343                     
     344                    $earray= $effects_array; 
     345                    $earray = array_combine($earray, $earray); 
     346                     
     347                    $wp_customize->add_control( 
     348                            'rtslider_effect', array( 
     349                            'settings' => 'rtslider_effect', 
     350                            'label'    => __( 'Slider Animation Effect.' ,'rt-slider'), 
     351                            'section'  => 'rtslider_config', 
     352                            'type'     => 'select', 
     353                            'choices' => $earray, 
     354                    ) ); 
     355                     
     356                endif;   
     357             
     358            endif;   
     359             
     360             
    86361            $wp_customize->add_setting( 
    87                 'rtslider_main_slider_enable_front', 
    88                 array( 'sanitize_callback' => 'rtslider_sanitize_checkbox' ) 
    89             ); 
    90              
    91             $wp_customize->add_control( 
    92                     'rtslider_main_slider_enable_front', array( 
    93                     'settings' => 'rtslider_main_slider_enable_front', 
    94                     'label'    => __( 'Enable Slider on Static Front Page.', 'rtslider' ), 
    95                     'section'  => 'rtslider_sec_slider_options', 
    96                     'type'     => 'checkbox', 
    97                 ) 
    98             ); 
    99              
    100              
    101             $wp_customize->add_setting( 
    102                 'rtslider_main_slider_count', 
     362                'rtslider_count', 
    103363                    array( 
    104364                        'default' => 0, 
     
    107367            ); 
    108368             
    109             function rtslider_sanitize_positive_number( $input ) { 
    110                 if ( ($input >= 0) && is_numeric($input) ) 
    111                     return $input; 
    112                 else 
    113                     return '';   
    114             } 
    115              
    116             function rtslider_sanitize_checkbox( $input ) { 
    117                 if ( $input == 1 ) { 
    118                     return 1; 
    119                 } else { 
    120                     return ''; 
    121                 } 
    122             } 
    123              
    124             // Select How Many Slides the User wants, and Reload the Page. 
     369            //Select How Many Slides the User wants, and Reload the Page. 
    125370            $wp_customize->add_control( 
    126                     'rtslider_main_slider_count', array( 
    127                     'settings' => 'rtslider_main_slider_count', 
    128                     'label'    => __( 'No. of Slides(Min:0, Max: 10)' ,'rtslider'), 
     371                    'rtslider_count', array( 
     372                    'settings' => 'rtslider_count', 
     373                    'label'    => __( 'No. of Slides(Min:0, Max: '.$max_count.')' ,'rt-slider'), 
    129374                    'section'  => 'rtslider_sec_slider_options', 
    130375                    'type'     => 'number', 
    131                     'description' => __('Set the No. of Slides you want, and go to Previous screen to configure the slides.','rtslider'), 
     376                    'description' => __('Set the No. of Slides you want, and go to Previous screen to configure the slides.','rt-slider'), 
    132377                     
    133378                ) 
    134379            ); 
    135380             
    136             for ( $i = 1 ; $i <= 10 ; $i++ ) : 
     381             
     382            for ( $i = 1 ; $i <= $max_count ; $i++ ) : 
    137383                 
    138384                //Create the settings Once, and Loop through it. 
     
    174420                        'rtslider_slide_title'.$i, array( 
    175421                        'settings' => 'rtslider_slide_title'.$i, 
    176                         'label'    => __( 'Slide Title','rtslider' ), 
     422                        'label'    => __( 'Slide Title','rt-slider' ), 
    177423                        'section'  => 'rtslider_slide_sec'.$i, 
    178424                        'type'     => 'text', 
     
    188434                        'rtslider_slide_desc'.$i, array( 
    189435                        'settings' => 'rtslider_slide_desc'.$i, 
    190                         'label'    => __( 'Slide Description','rtslider' ), 
     436                        'label'    => __( 'Slide Description','rt-slider' ), 
    191437                        'section'  => 'rtslider_slide_sec'.$i, 
    192438                        'type'     => 'text', 
     
    197443                 
    198444                $wp_customize->add_setting( 
    199                     'rtslider_slide_CTA_button'.$i, 
     445                    'rtslider_slide_cta_button'.$i, 
    200446                    array( 'sanitize_callback' => 'sanitize_text_field' ) 
    201447                ); 
    202448                 
    203449                $wp_customize->add_control( 
    204                         'rtslider_slide_CTA_button'.$i, array( 
    205                         'settings' => 'rtslider_slide_CTA_button'.$i, 
    206                         'label'    => __( 'Custom Call to Action Button Text(Optional)','rtslider' ), 
     450                        'rtslider_slide_cta_button'.$i, array( 
     451                        'settings' => 'rtslider_slide_cta_button'.$i, 
     452                        'label'    => __( 'Custom Call to Action Button Text(Optional)','rt-slider' ), 
    207453                        'section'  => 'rtslider_slide_sec'.$i, 
    208454                        'type'     => 'text', 
     
    218464                        'rtslider_slide_url'.$i, array( 
    219465                        'settings' => 'rtslider_slide_url'.$i, 
    220                         'label'    => __( 'Target URL','rtslider' ), 
     466                        'label'    => __( 'Target URL','rt-slider' ), 
    221467                        'section'  => 'rtslider_slide_sec'.$i, 
    222468                        'type'     => 'url', 
     
    228474            //active callback to see if the slide section is to be displayed or not 
    229475            function rtslider_show_slide_sec( $control ) { 
    230                     $option = $control->manager->get_setting('rtslider_main_slider_count'); 
     476                    $option = $control->manager->get_setting('rtslider_count'); 
    231477                    global $x; 
    232478                    if ( $x < $option->value() ){ 
     
    236482                } 
    237483             
    238         endif;   
     484        endif;   //end get theme support 
     485             
     486            function rtslider_sanitize_positive_number( $input ) { 
     487                if ( ($input >= 0) && is_numeric($input) ) 
     488                    return $input; 
     489                else 
     490                    return '';   
     491            } 
     492             
     493            function rtslider_sanitize_checkbox( $input ) { 
     494                if ( $input == 1 ) { 
     495                    return 1; 
     496                } else { 
     497                    return ''; 
     498                } 
     499            } 
     500         
    239501    } 
    240  
    241502     
    242 } 
    243  
    244 $rtslider_inst = new rtslider(); 
     503    public function is_rtslider_enabled() { 
     504        if ( ( get_theme_mod('rtslider_enable') && is_home() ) 
     505            || ( get_theme_mod('rtslider_enable_front') && is_front_page() ) 
     506            || ( get_theme_mod('rtslider_enable_posts') && is_single() )  
     507            || ( get_theme_mod('rtslider_enable_pages') && is_page() ) 
     508            || ( is_page(get_theme_mod('rtslider_enable_page1')) && is_page() ) 
     509            || ( is_page(get_theme_mod('rtslider_enable_page2')) && is_page() ) //Extra check by is_page() added on purpose.         
     510        ) 
     511        return true; 
     512    } 
     513     
     514    //The Function which is to be called by themes. 
     515    public static function render($param1, $param2 = null) { 
     516        global $rtslider_inst; //Global Variable of the Instance 
     517         
     518        if ( $rtslider_inst->is_rtslider_enabled() ) 
     519            get_template_part( $param1, $param2 ); 
     520             
     521    } 
     522     
     523    //The Function to Fetch Various Slider Settings and Values 
     524    public static function fetch( $param, $slide_number = null ) { 
     525         
     526        $return_value = null; 
     527         
     528        if ($slide_number == null) {         
     529            $return_value = get_theme_mod('rtslider_'.$param); 
     530        } elseif ($slide_number > 0) { 
     531            $return_value = get_theme_mod('rtslider_slide_'.$param.$slide_number); 
     532        } 
     533         
     534        return $return_value; 
     535         
     536    } 
     537 
     538} //END CLASS 
     539 
     540//Initialize and Instance of the Slider. 
     541$rtslider_inst = new rt_slider(); 
Note: See TracChangeset for help on using the changeset viewer.