WordPress.org

Plugin Directory

Changeset 418191


Ignore:
Timestamp:
08/02/11 08:09:16 (3 years ago)
Author:
tott
Message:

Adding capability check to settings page

Location:
wp-cron-control/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • wp-cron-control/trunk/readme.txt

    r418031 r418191  
    3131== ChangeLog == 
    3232 
     33= Version 0.2 = 
     34 
     35* Added capability check in settings page 
     36 
    3337= Version 0.1 = 
    3438 
  • wp-cron-control/trunk/wp-cron-control.php

    r418031 r418191  
    55 Description: get control over wp-cron execution. 
    66 Author: Thorsten Ott, Automattic 
    7  Version: 0.1 
     7 Version: 0.2 
    88 Author URI: http://hitchhackerguide.com 
    99 */ 
     
    106106    } 
    107107     
    108     public function settings_page() { ?> 
    109     <div class="wrap"> 
    110     <?php if ( function_exists('screen_icon') ) screen_icon(); ?> 
    111         <h2><?php echo $this->settings_page_name; ?></h2> 
    112      
    113         <form method="post" action="options.php"> 
    114      
    115         <?php settings_fields( $this->plugin_prefix . 'settings' ); ?> 
    116      
    117         <table class="form-table"> 
    118             <?php foreach( $this->settings as $setting => $value): ?> 
    119             <tr valign="top"> 
    120                 <th scope="row"><label for="<?php echo $this->dashed_name . '-' . $setting; ?>"><?php if ( isset( $this->settings_texts[$setting]['label'] ) ) { echo $this->settings_texts[$setting]['label']; } else { echo $setting; } ?></label></th> 
    121                 <td> 
    122                     <?php switch( $this->settings_texts[$setting]['type'] ): 
    123                         case 'yesno': ?> 
    124                             <select name="<?php echo $this->plugin_prefix; ?>settings[<?php echo $setting; ?>]" id="<?php echo $this->dashed_name . '-' . $setting; ?>" class="postform"> 
    125                                 <?php  
    126                                     $yesno = array( 0 => 'No', 1 => 'Yes' );  
    127                                     foreach ( $yesno as $val => $txt ) { 
    128                                         echo '<option value="' . esc_attr( $val ) . '"' . selected( $value, $val, false ) . '>' . esc_html( $txt ) . "&nbsp;</option>\n"; 
    129                                     } 
    130                                 ?> 
    131                             </select><br /> 
    132                         <?php break; 
    133                         case 'text': ?> 
    134                             <div><input type="text" name="<?php echo $this->plugin_prefix; ?>settings[<?php echo $setting; ?>]" id="<?php echo $this->dashed_name . '-' . $setting; ?>" class="postform" value="<?php echo esc_attr( $value ); ?>" /></div> 
    135                         <?php break; 
    136                         case 'echo': ?> 
    137                             <div><span id="<?php echo $this->dashed_name . '-' . $setting; ?>" class="postform"><?php echo esc_attr( $value ); ?></span></div> 
    138                         <?php break; 
    139                         default: ?> 
    140                             <?php echo $this->settings_texts[$setting]['type']; ?> 
    141                         <?php break; 
    142                     endswitch; ?> 
    143                     <?php if ( !empty( $this->settings_texts[$setting]['desc'] ) ) { echo $this->settings_texts[$setting]['desc']; } ?> 
    144                 </td> 
    145             </tr> 
    146             <?php endforeach; ?> 
    147             <?php if ( 1 == $this->settings['enable'] ): ?> 
    148                 <tr> 
    149                     <td colspan="3"> 
    150                         <p>You enabled wp-cron-control. To make sure that scheduled tasks are still executed correctly you will need to setup a system cron job that will call wp-cron.php with the secret parameter defined in the settings.</p> 
    151                         <p> 
    152                             You can either use the function defined in this script and setup a cron job that calls either 
    153                         </p> 
    154                         <p><code>php <?php echo __FILE__; ?> <?php echo get_site_url(); ?> <?php echo $this->settings['secret_string']; ?></code></p> 
    155                         <p>or</p> 
    156                         <p><code>wget -q "<?php echo get_site_url(); ?>/wp-cron.php?doing_wp_cron&<?php echo $this->settings['secret_string']; ?>"</code></p> 
    157                         <p>You can setup an interval as low as one minute, but should consider a reasonable value of 5-15 minutes as well.</p> 
    158                         <p>If you need help setting up a cron job please refer to the documentation that your provider offers.</p> 
    159                         <p>Anyway, chances are high that either <a href="http://docs.cpanel.net/twiki/bin/view/AllDocumentation/CpanelDocs/CronJobs#Adding a cron job" target="_blank">the CPanel</a>, <a href="http://download1.parallels.com/Plesk/PP10/10.3.1/Doc/en-US/online/plesk-administrator-guide/plesk-control-panel-user-guide/index.htm?fileName=65208.htm" target="_blank">Plesk</a> or <a href="http://www.thegeekstuff.com/2011/07/php-cron-job/" target="_blank">the crontab</a> documentation will help you.</p> 
     108    public function settings_page() {  
     109        if ( !current_user_can( 'manage_options' ) )  { 
     110            wp_die( __( 'You do not permission to access this page' ) ); 
     111        } 
     112        ?> 
     113        <div class="wrap"> 
     114        <?php if ( function_exists('screen_icon') ) screen_icon(); ?> 
     115            <h2><?php echo $this->settings_page_name; ?></h2> 
     116         
     117            <form method="post" action="options.php"> 
     118         
     119            <?php settings_fields( $this->plugin_prefix . 'settings' ); ?> 
     120         
     121            <table class="form-table"> 
     122                <?php foreach( $this->settings as $setting => $value): ?> 
     123                <tr valign="top"> 
     124                    <th scope="row"><label for="<?php echo $this->dashed_name . '-' . $setting; ?>"><?php if ( isset( $this->settings_texts[$setting]['label'] ) ) { echo $this->settings_texts[$setting]['label']; } else { echo $setting; } ?></label></th> 
     125                    <td> 
     126                        <?php switch( $this->settings_texts[$setting]['type'] ): 
     127                            case 'yesno': ?> 
     128                                <select name="<?php echo $this->plugin_prefix; ?>settings[<?php echo $setting; ?>]" id="<?php echo $this->dashed_name . '-' . $setting; ?>" class="postform"> 
     129                                    <?php  
     130                                        $yesno = array( 0 => 'No', 1 => 'Yes' );  
     131                                        foreach ( $yesno as $val => $txt ) { 
     132                                            echo '<option value="' . esc_attr( $val ) . '"' . selected( $value, $val, false ) . '>' . esc_html( $txt ) . "&nbsp;</option>\n"; 
     133                                        } 
     134                                    ?> 
     135                                </select><br /> 
     136                            <?php break; 
     137                            case 'text': ?> 
     138                                <div><input type="text" name="<?php echo $this->plugin_prefix; ?>settings[<?php echo $setting; ?>]" id="<?php echo $this->dashed_name . '-' . $setting; ?>" class="postform" value="<?php echo esc_attr( $value ); ?>" /></div> 
     139                            <?php break; 
     140                            case 'echo': ?> 
     141                                <div><span id="<?php echo $this->dashed_name . '-' . $setting; ?>" class="postform"><?php echo esc_attr( $value ); ?></span></div> 
     142                            <?php break; 
     143                            default: ?> 
     144                                <?php echo $this->settings_texts[$setting]['type']; ?> 
     145                            <?php break; 
     146                        endswitch; ?> 
     147                        <?php if ( !empty( $this->settings_texts[$setting]['desc'] ) ) { echo $this->settings_texts[$setting]['desc']; } ?> 
    160148                    </td> 
    161149                </tr> 
    162             <?php endif; ?> 
    163         </table> 
    164          
    165         <p class="submit"> 
    166     <?php 
    167             if ( function_exists( 'submit_button' ) ) { 
    168                 submit_button( null, 'primary', $this->dashed_name . '-submit', false ); 
    169                 echo ' '; 
    170                 submit_button( 'Reset to Defaults', 'primary', $this->dashed_name . '-defaults', false ); 
    171             } else { 
    172                 echo '<input type="submit" name="' . $this->dashed_name . '-submit" class="button-primary" value="Save Changes" />' . "\n"; 
    173                 echo '<input type="submit" name="' . $this->dashed_name . '-defaults" id="' . $this->dashed_name . '-defaults" class="button-primary" value="Reset to Defaults" />' . "\n"; 
    174             } 
    175     ?> 
    176         </p> 
    177      
    178         </form> 
    179     </div> 
    180      
    181     <?php 
     150                <?php endforeach; ?> 
     151                <?php if ( 1 == $this->settings['enable'] ): ?> 
     152                    <tr> 
     153                        <td colspan="3"> 
     154                            <p>You enabled wp-cron-control. To make sure that scheduled tasks are still executed correctly you will need to setup a system cron job that will call wp-cron.php with the secret parameter defined in the settings.</p> 
     155                            <p> 
     156                                You can either use the function defined in this script and setup a cron job that calls either 
     157                            </p> 
     158                            <p><code>php <?php echo __FILE__; ?> <?php echo get_site_url(); ?> <?php echo $this->settings['secret_string']; ?></code></p> 
     159                            <p>or</p> 
     160                            <p><code>wget -q "<?php echo get_site_url(); ?>/wp-cron.php?doing_wp_cron&<?php echo $this->settings['secret_string']; ?>"</code></p> 
     161                            <p>You can setup an interval as low as one minute, but should consider a reasonable value of 5-15 minutes as well.</p> 
     162                            <p>If you need help setting up a cron job please refer to the documentation that your provider offers.</p> 
     163                            <p>Anyway, chances are high that either <a href="http://docs.cpanel.net/twiki/bin/view/AllDocumentation/CpanelDocs/CronJobs#Adding a cron job" target="_blank">the CPanel</a>, <a href="http://download1.parallels.com/Plesk/PP10/10.3.1/Doc/en-US/online/plesk-administrator-guide/plesk-control-panel-user-guide/index.htm?fileName=65208.htm" target="_blank">Plesk</a> or <a href="http://www.thegeekstuff.com/2011/07/php-cron-job/" target="_blank">the crontab</a> documentation will help you.</p> 
     164                        </td> 
     165                    </tr> 
     166                <?php endif; ?> 
     167            </table> 
     168             
     169            <p class="submit"> 
     170        <?php 
     171                if ( function_exists( 'submit_button' ) ) { 
     172                    submit_button( null, 'primary', $this->dashed_name . '-submit', false ); 
     173                    echo ' '; 
     174                    submit_button( 'Reset to Defaults', 'primary', $this->dashed_name . '-defaults', false ); 
     175                } else { 
     176                    echo '<input type="submit" name="' . $this->dashed_name . '-submit" class="button-primary" value="Save Changes" />' . "\n"; 
     177                    echo '<input type="submit" name="' . $this->dashed_name . '-defaults" id="' . $this->dashed_name . '-defaults" class="button-primary" value="Reset to Defaults" />' . "\n"; 
     178                } 
     179        ?> 
     180            </p> 
     181         
     182            </form> 
     183        </div> 
     184         
     185        <?php 
    182186    } 
    183187     
Note: See TracChangeset for help on using the changeset viewer.