WordPress.org

Plugin Directory

Changeset 546720


Ignore:
Timestamp:
05/20/12 21:46:01 (2 years ago)
Author:
cnorris23
Message:

More Settings API work

Location:
edit-author-slug/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • edit-author-slug/trunk/edit-author-slug.php

    r546119 r546720  
    110110 
    111111    /** 
    112      * Edit Author Slug Version 
    113      * @access public 
    114      * @var array Original options 
    115      * @deprecated 0.9.0 
    116      */ 
    117     public $options = array(); 
    118  
    119     /** 
    120      * Edit Author Slug Version 
    121      * @access public 
    122      * @var string Original author base 
    123      */ 
    124     public $original_author_base = ''; 
    125  
    126     /** 
    127112     * PHP5 constructor 
    128113     * 
     
    154139        if ( $base = get_option( '_ba_eas_author_base' ) ) { 
    155140            // Author base 
    156             $this->author_base = $this->original_author_base = 'author'; 
     141            $this->author_base = 'author'; 
    157142            if ( 'author' != $base ) 
    158                 $this->author_base = $this->original_author_base = $base; 
     143                $this->author_base = $base; 
    159144 
    160145            // Current DB version 
     
    164149 
    165150        // Pre-0.9 Back compat 
    166         } elseif ( $options = get_option( 'ba_edit_author_slug' ) { 
     151        } elseif ( $options = get_option( 'ba_edit_author_slug' ) ) { 
    167152            // Author base 
    168             $this->author_base = $this->original_author_base = 'author'; 
     153            $this->author_base = 'author'; 
    169154            if ( 'author' != $options['author_base'] ) 
    170                 $this->author_base = $this->original_author_base = $options['author_base']; 
     155                $this->author_base = $options['author_base']; 
    171156 
    172157            // Current DB version 
     
    177162        } else { 
    178163            // Author base 
    179             $this->author_base = $this->original_author_base = 'author'; 
     164            $this->author_base = 'author'; 
    180165        } 
    181  
    182166    } 
    183167 
  • edit-author-slug/trunk/includes/admin-functions.php

    r545656 r546720  
    205205 * @uses flush_rewrite_rules() To update Edit Author Slug options 
    206206 */ 
    207 function ba_eas_sanitize_author_base() { 
     207function ba_eas_sanitize_author_base( $author_base ) { 
    208208    global $ba_eas, $wp_rewrite; 
    209209 
    210     if ( isset( $_POST['permalink_structure'] ) || isset( $_POST['category_base'] ) ) { 
    211         check_admin_referer( 'update-permalink' ); 
    212  
    213         if ( isset( $_POST['ba-eas-author-base'] ) ) { 
    214             $ba_eas->author_base = trim( $_POST['ba-eas-author-base'] ); 
    215  
    216             // Filter and sanitize the new author_base 
    217             if ( !empty( $ba_eas->author_base ) ) { 
    218                 $ba_eas->author_base = preg_replace('#/+#', '/', '/' . str_replace( '#', '', $ba_eas->author_base ) ); 
    219                 // Add to filter, see option_category_base 
    220                 //$ba_eas->author_base = _wp_filter_taxonomy_base( $ba_eas->author_base ); 
    221             } 
    222  
    223             // Do we need to update the author_base 
    224             if ( $ba_eas->author_base != $ba_eas->original_author_base ) { 
    225                 // Setup the new author_base 
    226                 $ba_eas->options['author_base'] = $ba_eas->author_base; 
    227  
    228                 // Update options with new author_base 
    229                 update_option( 'ba_edit_author_slug', $ba_eas->options ); 
    230  
    231                 // Update the author_base in the WP_Rewrite object 
    232                 if ( !empty( $ba_eas->author_base ) ) 
    233                     $wp_rewrite->author_base = $ba_eas->author_base; 
    234  
    235                 // Courtesy flush 
    236                 flush_rewrite_rules( false ); 
    237             } 
    238         } 
     210    // Sanitize the author base 
     211    $author_base = sanitize_title( $author_base ); 
     212 
     213    // Make sure we have something 
     214    if ( empty( $author_base ) ) 
     215        $author_base = 'author'; 
     216 
     217 
     218    // Do we need to update the author_base 
     219    if ( $author_base != $ba_eas->author_base ) { 
     220        // Setup the new author_base global 
     221        $ba_eas->author_base = $author_base; 
     222 
     223        // Update options with new author_base 
     224        update_option( '_ba_eas_author_base', $ba_eas->author_base ); 
     225 
     226        // Update the author_base in the WP_Rewrite object 
     227        if ( !empty( $ba_eas->author_base ) ) 
     228            $wp_rewrite->author_base = $ba_eas->author_base; 
     229 
     230        // Courtesy flush 
     231        flush_rewrite_rules( false ); 
    239232    } 
     233 
     234    return $author_base; 
    240235} 
    241236 
     
    301296    add_settings_field( '_ba_eas_author_base', __( 'Author Base', 'edit-author-slug' ), 'ba_eas_admin_setting_callback_author_base', 'edit-author-slug', 'ba_eas_author_base' ); 
    302297    register_setting( 'edit-author-slug', '_ba_eas_author_base', 'ba_eas_sanitize_author_base' ); 
     298 
     299    // Add the default user nicename section 
     300    add_settings_section( 'ba_eas_default_user_nicename', __( 'Author Slug Creation', 'edit-author-slug' ), 'ba_eas_admin_setting_callback_default_user_nicename_section', 'edit-author-slug' ); 
     301 
     302    // Default user nicename setting 
     303    add_settings_field( '_ba_eas_default_user_nicename', __( 'Author Base', 'edit-author-slug' ), 'ba_eas_admin_setting_callback_default_user_nicename', 'edit-author-slug', 'ba_eas_default_user_nicename' ); 
     304    register_setting( 'edit-author-slug', '_ba_eas_default_user_nicename' ); 
    303305} 
    304306 
     
    317319 
    318320/** 
     321 * Add default user nicename settings section. 
     322 * 
     323 * @since 0.9.0 
     324 */ 
     325function ba_eas_admin_setting_callback_default_user_nicename_section() { 
     326?> 
     327 
     328    <p><?php _e( 'Set the default Author Slug structure for new users', 'edit-author-slug' ); ?></p> 
     329 
     330<?php 
     331} 
     332 
     333/** 
    319334 * Add Author Base settings field. 
    320335 * 
    321336 * @since 0.9.0 
    322337 * 
    323  * @uses esc_attr() To sanitize the author base 
     338 * @uses esc_attr_e() To sanitize the author base 
    324339 */ 
    325340function ba_eas_admin_setting_callback_author_base() { 
     
    327342?> 
    328343 
    329     <input id="_ba_eas_author_base" name="_ba_eas_author_base" type="text" value="<?php esc_attr( $ba_eas->author_base ); ?>" class="regular-text code" /> 
     344    <input id="_ba_eas_author_base" name="_ba_eas_author_base" type="text" value="<?php esc_attr_e( $ba_eas->author_base ); ?>" class="regular-text code" /> 
     345 
     346<?php 
     347} 
     348 
     349/** 
     350 * Add default user nicename options. 
     351 * 
     352 * @since 0.9.0 
     353 * 
     354 * @uses get_option() To get the default user nicename 
     355 * @uses apply_filters() To call 'ba_eas_admin_setting_callback_default_user_nicename_list' hook 
     356 * @uses esc_attr_e() To sanitize the nicename options 
     357 */ 
     358function ba_eas_admin_setting_callback_default_user_nicename() { 
     359    global $ba_eas; 
     360 
     361    $structure = get_option( '_ba_eas_default_user_nicename', 'username' ); 
     362 
     363    $options = apply_filters( 'ba_eas_admin_setting_callback_default_user_nicename_list', array( 
     364        'username'  => 'Default (Username)', 
     365        'nickname'  => 'Nickname', 
     366        'firstname' => 'First Name', 
     367        'lastname'  => 'Last Name', 
     368        'firstlast' => 'First Name + Last Name', 
     369        'lastfirst' => 'Last Name + First Name', 
     370    ) ); 
     371 
     372    $options = (array) $options; 
     373    $options = array_map( 'trim', $options ); 
     374    $options = array_unique( $options ); 
     375?> 
     376 
     377    <select id="_ba_eas_default_user_nicename" name="_ba_eas_default_user_nicename"> 
     378    <?php foreach ( (array) $options as $id => $item ) { ?> 
     379        <option id="<?php esc_attr_e( $id ); ?>" value="<?php esc_attr_e( $id ); ?>"<?php selected( $structure, $id ); ?>><?php esc_attr_e( $item ); ?></option> 
     380    <?php } ?> 
     381    </select> 
    330382 
    331383<?php 
Note: See TracChangeset for help on using the changeset viewer.