Skip to:
Content

BuddyPress.org

Changeset 3252


Ignore:
Timestamp:
09/10/2010 11:57:02 PM (14 years ago)
Author:
johnjamesjacoby
Message:

Fixes #2603 (trunk)

File:
1 edited

Legend:

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

    r2863 r3252  
    22
    33/* Apply WordPress defined filters */
    4 add_filter( 'bp_get_the_profile_field_value', 'wp_filter_kses', 1 );
    5 add_filter( 'bp_get_the_profile_field_name', 'wp_filter_kses', 1 );
    64
    7 add_filter( 'bp_get_the_site_member_profile_data', 'wp_filter_kses', 1 );
    8 add_filter( 'xprofile_get_field_data', 'wp_filter_kses', 1 );
    9 add_filter( 'xprofile_field_name_before_save', 'wp_filter_kses', 1 );
     5add_filter( 'bp_get_the_profile_field_value',         'wp_filter_kses', 1 );
     6add_filter( 'bp_get_the_profile_field_name',          'wp_filter_kses', 1 );
     7add_filter( 'bp_get_the_profile_field_edit_value',    'wp_filter_kses', 1 );
     8add_filter( 'bp_get_the_profile_field_description',   'wp_filter_kses', 1 );
     9
     10add_filter( 'bp_get_the_profile_field_value',         'wptexturize'        );
     11add_filter( 'bp_get_the_profile_field_value',         'convert_smilies', 2 );
     12add_filter( 'bp_get_the_profile_field_value',         'convert_chars'      );
     13add_filter( 'bp_get_the_profile_field_value',         'wpautop'            );
     14add_filter( 'bp_get_the_profile_field_value',         'make_clickable'     );
     15add_filter( 'bp_get_the_profile_field_value',         'force_balance_tags' );
     16
     17add_filter( 'bp_get_the_profile_field_value',         'stripslashes' );
     18add_filter( 'bp_get_the_profile_field_edit_value',    'stripslashes' );
     19add_filter( 'bp_get_the_profile_field_name',          'stripslashes' );
     20add_filter( 'bp_get_the_profile_field_description',   'stripslashes' );
     21
     22add_filter( 'xprofile_get_field_data',                'wp_filter_kses', 1 );
     23add_filter( 'xprofile_field_name_before_save',        'wp_filter_kses', 1 );
    1024add_filter( 'xprofile_field_description_before_save', 'wp_filter_kses', 1 );
    1125
    12 add_filter( 'bp_get_the_profile_field_edit_value', 'wp_filter_kses', 1 );
    13 add_filter( 'bp_get_the_profile_field_description', 'wp_filter_kses', 1 );
    14 
    15 add_filter( 'xprofile_field_name_before_save', 'force_balance_tags' );
     26add_filter( 'xprofile_get_field_data',                'force_balance_tags' );
     27add_filter( 'xprofile_field_name_before_save',        'force_balance_tags' );
    1628add_filter( 'xprofile_field_description_before_save', 'force_balance_tags' );
    1729
    18 add_filter( 'bp_get_the_profile_field_value', 'wptexturize' );
    19 add_filter( 'bp_get_the_profile_field_value', 'convert_smilies', 2 );
    20 add_filter( 'bp_get_the_profile_field_value', 'convert_chars' );
    21 add_filter( 'bp_get_the_profile_field_value', 'wpautop' );
    22 add_filter( 'bp_get_the_profile_field_value', 'make_clickable' );
    23 add_filter( 'bp_get_the_profile_field_value', 'force_balance_tags' );
    24 
    25 add_filter( 'bp_get_the_site_member_profile_data', 'wptexturize' );
    26 add_filter( 'bp_get_the_site_member_profile_data', 'convert_smilies', 2 );
    27 add_filter( 'bp_get_the_site_member_profile_data', 'convert_chars' );
    28 add_filter( 'bp_get_the_site_member_profile_data', 'make_clickable' );
    29 add_filter( 'bp_get_the_site_member_profile_data', 'force_balance_tags' );
    30 
    31 add_filter( 'bp_get_the_profile_field_value', 'xprofile_filter_format_field_value', 1, 2 );
    32 add_filter( 'bp_get_the_site_member_profile_data', 'xprofile_filter_format_field_value', 1, 2 );
    33 add_filter( 'bp_get_the_profile_field_value', 'xprofile_filter_link_profile_data', 50, 2 );
    34 
    35 add_filter( 'bp_get_the_profile_field_edit_value', 'stripslashes' );
    36 add_filter( 'bp_get_the_profile_field_value', 'stripslashes' );
    37 add_filter( 'bp_get_the_profile_field_name', 'stripslashes' );
    38 add_filter( 'xprofile_get_field_data', 'stripslashes' );
    39 add_filter( 'bp_get_the_profile_field_description', 'stripslashes' );
    40 add_filter( 'bp_get_the_site_member_profile_data', 'stripslashes' );
     30add_filter( 'xprofile_get_field_data',                'stripslashes' );
    4131
    4232/* Custom BuddyPress filters */
     33
     34add_filter( 'bp_get_the_profile_field_value',         'xprofile_filter_format_field_value', 1, 2 );
     35add_filter( 'bp_get_the_site_member_profile_data',    'xprofile_filter_format_field_value', 1, 2 );
     36add_filter( 'bp_get_the_profile_field_value',         'xprofile_filter_link_profile_data', 50, 2 );
     37
     38add_filter( 'xprofile_data_value_before_save',        'xprofile_sanitize_data_value_before_save', 1, 2 );
     39
     40/**
     41 * xprofile_sanitize_data_value_before_save ( $field_value, $field_id )
     42 *
     43 * Safely runs profile field data through kses and force_balance_tags.
     44 *
     45 * @param string $field_value
     46 * @param int $field_id
     47 * @return string
     48 */
     49function xprofile_sanitize_data_value_before_save ( $field_value, $field_id ) {
     50
     51    // Return if empty
     52    if ( empty( $field_value ) )
     53        return;
     54
     55    // Filter single value
     56    if ( !is_array( $field_value ) ) {
     57        $kses_field_value     = wp_filter_kses( $field_value );
     58        $filtered_field_value = force_balance_tags( $kses_field_value );
     59
     60    // Filter each array item independently
     61    } else {
     62        foreach ( (array)$field_value as $value ) {
     63            $kses_field_value       = wp_filter_kses( $value );
     64            $filtered_field_value[] = force_balance_tags( $kses_field_value );
     65        }
     66    }
     67
     68    return $filtered_field_value;
     69}
    4370
    4471function xprofile_filter_format_field_value( $field_value, $field_type = '' ) {
     
    5178        $field_value = str_replace(']]>', ']]>', $field_value );
    5279
    53     return stripslashes( stripslashes( $field_value ) );
     80    return stripslashes( $field_value );
    5481}
    5582
    5683function xprofile_filter_link_profile_data( $field_value, $field_type = 'textbox' ) {
    57     global $bp;
    58 
    5984    if ( 'datebox' == $field_type )
    6085        return $field_value;
     
    6691
    6792    if ( $values ) {
    68         foreach ( (array) $values as $value ) {
     93        foreach ( (array)$values as $value ) {
    6994            $value = trim( $value );
    7095
    71             /* If the value is a URL, skip it and just make it clickable. */
     96            // If the value is a URL, skip it and just make it clickable.
    7297            if ( preg_match( '@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', $value ) ) {
    7398                $new_values[] = make_clickable( $value );
    7499            } else {
    75                 if ( count( explode( ' ', $value ) ) > 5 )
     100                if ( count( explode( ' ', $value ) ) > 5 ) {
    76101                    $new_values[] = $value;
    77                 else
    78                     $new_values[] = '<a href="' . site_url( $bp->members->slug ) . '/?s=' . strip_tags( $value ) . '">' . $value . '</a>';
     102                } else {
     103                    $new_values[] = '<a href="' . site_url( BP_MEMBERS_SLUG ) . '/?s=' . strip_tags( $value ) . '">' . $value . '</a>';
     104                }
    79105            }
    80106        }
     
    88114function xprofile_filter_comments( $comments, $post_id ) {
    89115    foreach( (array)$comments as $comment ) {
    90         if ( $comment->user_id )
     116        if ( $comment->user_id ) {
    91117            $user_ids[] = $comment->user_id;
     118        }
    92119    }
    93120
     
    103130    foreach( (array)$comments as $i => $comment ) {
    104131        if ( !empty( $comment->user_id ) ) {
    105             if ( !empty( $users[$comment->user_id] ) )
     132            if ( !empty( $users[$comment->user_id] ) ) {
    106133                $comments[$i]->comment_author = $users[$comment->user_id];
     134            }
    107135        }
    108136    }
Note: See TracChangeset for help on using the changeset viewer.