Skip to:
Content

bbPress.org

Changeset 4979


Ignore:
Timestamp:
06/04/2013 04:42:44 AM (13 years ago)
Author:
johnjamesjacoby
Message:

Add $filter parameter and supporting phpdoc to bbp_displayed_user_field() && bbp_get_displayed_user_field() to allow more accurate sanitization of displayed user field values. Remove superfluous isset() check. Use 'edit' parameter in form-user-edit.php. See #1999.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/includes/users/template-tags.php

    r4977 r4979  
    110110 * Output a sanitized user field value
    111111 *
     112 * This function relies on the $filter parameter to decide how to sanitize
     113 * the field value that it finds. Since it uses the WP_User object's magic
     114 * __get() method, it can also be used to get user_meta values.
     115 *
    112116 * @since bbPress (r2688)
    113117 *
    114118 * @param string $field Field to get
     119 * @param string $filter How to filter the field value (null|raw|db|display|edit)
    115120 * @uses bbp_get_displayed_user_field() To get the field
    116121 */
    117 function bbp_displayed_user_field( $field = '' ) {
    118     echo bbp_get_displayed_user_field( $field );
     122function bbp_displayed_user_field( $field = '', $filter = 'display' ) {
     123    echo bbp_get_displayed_user_field( $field, $filter );
    119124}
    120125    /**
    121126     * Return a sanitized user field value
    122127     *
     128     * This function relies on the $filter parameter to decide how to sanitize
     129     * the field value that it finds. Since it uses the WP_User object's magic
     130     * __get() method, it can also be used to get user_meta values.
     131     *
    123132     * @since bbPress (r2688)
    124133     *
    125134     * @param string $field Field to get
    126      * @uses sanitize_text_field() To sanitize the field
    127      * @uses esc_attr() To sanitize the field
     135     * @param string $filter How to filter the field value (null|raw|db|display|edit)
     136     * @see WP_User::__get() for more on how the value is retrieved
     137     * @see sanitize_user_field() for more on how the value is sanitized
    128138     * @uses apply_filters() Calls 'bbp_get_displayed_user_field' with the value
    129139     * @return string|bool Value of the field if it exists, else false
    130140     */
    131     function bbp_get_displayed_user_field( $field = '' ) {
    132         $bbp   = bbpress();
    133         $value = false;
    134 
    135         // Return field if exists
    136         if ( isset( $bbp->displayed_user->$field ) )
    137             $value = sanitize_text_field( $bbp->displayed_user->$field );
     141    function bbp_get_displayed_user_field( $field = '', $filter = 'display' ) {
     142        $bbp = bbpress();
     143
     144        // Juggle the user filter property because it's byref, and we don't want
     145        // to muck up how other code might interact with this object.
     146        $old_filter                  = $bbp->displayed_user->filter;
     147        $bbp->displayed_user->filter = $filter;
     148
     149        // Get the field value from the WP_User object. We don't need to perform
     150        // an isset() because the WP_User::__get() does it for us.
     151        $value = $bbp->displayed_user->$field;
     152
     153        // Put back the user filter property that was previously juggled above.
     154        $bbp->displayed_user->filter = $old_filter;
     155
     156        // Clean up the temporary variable
     157        unset( $old_filter );
    138158
    139159        // Return empty
  • trunk/templates/default/bbpress/form-user-edit.php

    r4956 r4979  
    2323        <div>
    2424            <label for="first_name"><?php _e( 'First Name', 'bbpress' ) ?></label>
    25             <input type="text" name="first_name" id="first_name" value="<?php bbp_displayed_user_field( 'first_name' ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
     25            <input type="text" name="first_name" id="first_name" value="<?php bbp_displayed_user_field( 'first_name', 'edit' ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
    2626        </div>
    2727
    2828        <div>
    2929            <label for="last_name"><?php _e( 'Last Name', 'bbpress' ) ?></label>
    30             <input type="text" name="last_name" id="last_name" value="<?php bbp_displayed_user_field( 'last_name' ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
     30            <input type="text" name="last_name" id="last_name" value="<?php bbp_displayed_user_field( 'last_name', 'edit' ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
    3131        </div>
    3232
    3333        <div>
    3434            <label for="nickname"><?php _e( 'Nickname', 'bbpress' ); ?></label>
    35             <input type="text" name="nickname" id="nickname" value="<?php bbp_displayed_user_field( 'nickname' ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
     35            <input type="text" name="nickname" id="nickname" value="<?php bbp_displayed_user_field( 'nickname', 'edit' ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
    3636        </div>
    3737
     
    5656        <div>
    5757            <label for="url"><?php _e( 'Website', 'bbpress' ) ?></label>
    58             <input type="text" name="url" id="url" value="<?php bbp_displayed_user_field( 'user_url' ); ?>" class="regular-text code" tabindex="<?php bbp_tab_index(); ?>" />
     58            <input type="text" name="url" id="url" value="<?php bbp_displayed_user_field( 'user_url', 'edit' ); ?>" class="regular-text code" tabindex="<?php bbp_tab_index(); ?>" />
    5959        </div>
    6060
     
    8181        <div>
    8282            <label for="description"><?php _e( 'Biographical Info', 'bbpress' ); ?></label>
    83             <textarea name="description" id="description" rows="5" cols="30" tabindex="<?php bbp_tab_index(); ?>"><?php echo esc_attr( bbp_get_displayed_user_field( 'description' ) ); ?></textarea>
     83            <textarea name="description" id="description" rows="5" cols="30" tabindex="<?php bbp_tab_index(); ?>"><?php echo bbp_get_displayed_user_field( 'stuff', 'edit' ); ?></textarea>
    8484        </div>
    8585
     
    9797        <div>
    9898            <label for="user_login"><?php _e( 'Username', 'bbpress' ); ?></label>
    99             <input type="text" name="user_login" id="user_login" value="<?php bbp_displayed_user_field( 'user_login' ); ?>" disabled="disabled" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
     99            <input type="text" name="user_login" id="user_login" value="<?php bbp_displayed_user_field( 'user_login', 'edit' ); ?>" disabled="disabled" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
    100100        </div>
    101101
     
    103103            <label for="email"><?php _e( 'Email', 'bbpress' ); ?></label>
    104104
    105             <input type="text" name="email" id="email" value="<?php bbp_displayed_user_field( 'user_email' ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
     105            <input type="text" name="email" id="email" value="<?php bbp_displayed_user_field( 'user_email', 'edit' ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
    106106
    107107            <?php
     
    109109            // Handle address change requests
    110110            $new_email = get_option( bbp_get_displayed_user_id() . '_new_email' );
    111             if ( $new_email && $new_email != bbp_get_displayed_user_field( 'user_email' ) ) : ?>
     111            if ( $new_email && $new_email != bbp_get_displayed_user_field( 'user_email', 'edit' ) ) : ?>
    112112
    113113                <span class="updated inline">
Note: See TracChangeset for help on using the changeset viewer.