Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
05/15/2011 05:23:50 PM (15 years ago)
Author:
boonebgorges
Message:

Applies pre-save filters to permitted xprofile options before comparing with submitted values, to account for special characters. Fixes #3213

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-xprofile/bp-xprofile-template.php

    r4211 r4362  
    433433                    $selected = '';
    434434                   
     435                    // Run the allowed option name through the before_save
     436                    // filter, so we'll be sure to get a match
     437                    $allowed_options = xprofile_sanitize_data_value_before_save( $options[$k]->name, false, false );
     438                   
    435439                    // First, check to see whether the user-entered value
    436440                    // matches
    437                     if ( in_array( $options[$k]->name, (array) $option_values ) )
     441                    if ( in_array( $allowed_options, (array) $option_values ) )
    438442                        $selected = ' selected="selected"';
    439443
     
    459463                    }
    460464                   
     465                    // Run the allowed option name through the before_save
     466                    // filter, so we'll be sure to get a match
     467                    $allowed_options = xprofile_sanitize_data_value_before_save( $options[$k]->name, false, false );
     468                   
    461469                    $selected = '';
    462                     if ( $option_value == $options[$k]->name || !empty( $value ) && $value == $options[$k]->name || ( empty( $option_value ) && $options[$k]->is_default_option ) )
     470                    if ( $option_value == $allowed_options || !empty( $value ) && $value == $allowed_options || ( empty( $option_value ) && $options[$k]->is_default_option ) )
    463471                        $selected = ' checked="checked"';
    464472
     
    486494                    // match the option
    487495                    for ( $j = 0; $j < count($option_values); $j++ ) {
    488                         if ( $option_values[$j] == $options[$k]->name || @in_array( $options[$k]->name, $value ) ) {
     496                       
     497                        // Run the allowed option name through the
     498                        // before_save filter, so we'll be sure to get a
     499                        // match
     500                        $allowed_options = xprofile_sanitize_data_value_before_save( $options[$k]->name, false, false );
     501                       
     502                        if ( $option_values[$j] == $allowed_options || @in_array( $allowed_options, $value ) ) {
    489503                            $selected = ' checked="checked"';
    490504                            break;
Note: See TracChangeset for help on using the changeset viewer.