Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
08/07/2024 01:46:38 AM (23 months ago)
Author:
espellcaste
Message:

Move some BP_User_Query::populate_extras() properties to custom action hooks.

The action of populating class properties were moved from the populate_extras method into action hooks, allowing developers to remove any of them, if needed.

Props r-a-y and imath.

Fixes #9205

File:
1 edited

Legend:

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

    r13878 r13994  
    1313defined( 'ABSPATH' ) || exit;
    1414
    15 add_filter( 'bp_get_the_profile_group_name',        'wp_filter_kses', 1 );
     15add_filter( 'bp_get_the_profile_group_name', 'wp_filter_kses', 1 );
    1616add_filter( 'bp_get_the_profile_group_description', 'wp_filter_kses', 1 );
    17 add_filter( 'bp_get_the_profile_field_name',        'wp_filter_kses', 1 );
    18 add_filter( 'bp_get_the_profile_field_edit_value',  'xprofile_sanitize_data_value_before_display', 1, 3 );
     17add_filter( 'bp_get_the_profile_field_name', 'wp_filter_kses', 1 );
     18add_filter( 'bp_get_the_profile_field_edit_value', 'xprofile_sanitize_data_value_before_display', 1, 3 );
    1919add_filter( 'bp_get_the_profile_field_description', 'wp_filter_kses', 1 );
    20 add_filter( 'bp_get_the_profile_field_value',       'xprofile_sanitize_data_value_before_display', 1, 3 );
    21 
    22 add_filter( 'bp_get_the_profile_field_value',           'wptexturize'        );
    23 add_filter( 'bp_get_the_profile_field_value',           'convert_chars'      );
    24 add_filter( 'bp_get_the_profile_field_value',           'wpautop'            );
    25 add_filter( 'bp_get_the_profile_field_value',           'force_balance_tags' );
    26 add_filter( 'bp_get_the_profile_field_value',           'make_clickable'    );
    27 add_filter( 'bp_get_the_profile_field_value',           'bp_xprofile_escape_field_data', 8, 3 );
    28 add_filter( 'bp_get_the_profile_field_value',           'convert_smilies', 9 );
    29 add_filter( 'bp_get_the_profile_field_value',           'xprofile_filter_format_field_value',        1, 2 );
    30 add_filter( 'bp_get_the_profile_field_value',           'xprofile_filter_format_field_value_by_type', 8, 3 );
    31 add_filter( 'bp_get_the_profile_field_value',           'xprofile_filter_link_profile_data',          9, 3 );
    32 
    33 add_filter( 'bp_get_the_profile_field_edit_value',      'force_balance_tags' );
    34 add_filter( 'bp_get_the_profile_field_edit_value',      'bp_xprofile_escape_field_data', 10, 3 );
    35 
    36 add_filter( 'bp_get_the_profile_group_name',            'stripslashes' );
    37 add_filter( 'bp_get_the_profile_group_description',     'stripslashes' );
    38 add_filter( 'bp_get_the_profile_field_value',           'stripslashes' );
    39 add_filter( 'bp_get_the_profile_field_edit_value',      'stripslashes' );
    40 add_filter( 'bp_get_the_profile_field_name',            'stripslashes' );
    41 add_filter( 'bp_get_the_profile_field_description',     'stripslashes' );
    42 
    43 add_filter( 'xprofile_get_field_data',                  'xprofile_sanitize_data_value_before_display_from_get_field_data', 1, 2 );
    44 add_filter( 'xprofile_field_name_before_save',          'wp_filter_kses', 1 );
    45 add_filter( 'xprofile_field_description_before_save',   'wp_filter_kses', 1 );
    46 
    47 add_filter( 'xprofile_get_field_data',                  'force_balance_tags' );
    48 add_filter( 'xprofile_field_name_before_save',          'force_balance_tags' );
    49 add_filter( 'xprofile_field_description_before_save',   'force_balance_tags' );
    50 
    51 add_filter( 'xprofile_get_field_data',                  'stripslashes' );
    52 add_filter( 'xprofile_get_field_data',                  'xprofile_filter_format_field_value_by_field_id', 5, 2 );
    53 
    54 add_filter( 'bp_xprofile_set_field_data_pre_validate',  'xprofile_filter_pre_validate_value_by_field_type', 10, 3 );
    55 add_filter( 'xprofile_data_value_before_save',          'xprofile_sanitize_data_value_before_save', 1, 4 );
     20add_filter( 'bp_get_the_profile_field_value', 'xprofile_sanitize_data_value_before_display', 1, 3 );
     21
     22add_filter( 'bp_get_the_profile_field_value', 'wptexturize' );
     23add_filter( 'bp_get_the_profile_field_value', 'convert_chars' );
     24add_filter( 'bp_get_the_profile_field_value', 'wpautop' );
     25add_filter( 'bp_get_the_profile_field_value', 'force_balance_tags' );
     26add_filter( 'bp_get_the_profile_field_value', 'make_clickable' );
     27add_filter( 'bp_get_the_profile_field_value', 'bp_xprofile_escape_field_data', 8, 3 );
     28add_filter( 'bp_get_the_profile_field_value', 'convert_smilies', 9 );
     29add_filter( 'bp_get_the_profile_field_value', 'xprofile_filter_format_field_value', 1, 2 );
     30add_filter( 'bp_get_the_profile_field_value', 'xprofile_filter_format_field_value_by_type', 8, 3 );
     31add_filter( 'bp_get_the_profile_field_value', 'xprofile_filter_link_profile_data', 9, 3 );
     32
     33add_filter( 'bp_get_the_profile_field_edit_value', 'force_balance_tags' );
     34add_filter( 'bp_get_the_profile_field_edit_value', 'bp_xprofile_escape_field_data', 10, 3 );
     35
     36add_filter( 'bp_get_the_profile_group_name', 'stripslashes' );
     37add_filter( 'bp_get_the_profile_group_description', 'stripslashes' );
     38add_filter( 'bp_get_the_profile_field_value', 'stripslashes' );
     39add_filter( 'bp_get_the_profile_field_edit_value', 'stripslashes' );
     40add_filter( 'bp_get_the_profile_field_name', 'stripslashes' );
     41add_filter( 'bp_get_the_profile_field_description', 'stripslashes' );
     42
     43add_filter( 'xprofile_get_field_data', 'xprofile_sanitize_data_value_before_display_from_get_field_data', 1, 2 );
     44add_filter( 'xprofile_field_name_before_save', 'wp_filter_kses', 1 );
     45add_filter( 'xprofile_field_description_before_save', 'wp_filter_kses', 1 );
     46
     47add_filter( 'xprofile_get_field_data', 'force_balance_tags' );
     48add_filter( 'xprofile_field_name_before_save', 'force_balance_tags' );
     49add_filter( 'xprofile_field_description_before_save', 'force_balance_tags' );
     50
     51add_filter( 'xprofile_get_field_data', 'stripslashes' );
     52add_filter( 'xprofile_get_field_data', 'xprofile_filter_format_field_value_by_field_id', 5, 2 );
     53
     54add_filter( 'bp_xprofile_set_field_data_pre_validate', 'xprofile_filter_pre_validate_value_by_field_type', 10, 3 );
     55add_filter( 'xprofile_data_value_before_save', 'xprofile_sanitize_data_value_before_save', 1, 4 );
    5656add_filter( 'xprofile_filtered_data_value_before_save', 'trim', 2 );
    5757
    5858// Save field groups.
    59 add_filter( 'xprofile_group_name_before_save',        'wp_filter_kses' );
     59add_filter( 'xprofile_group_name_before_save', 'wp_filter_kses' );
    6060add_filter( 'xprofile_group_description_before_save', 'wp_filter_kses' );
    6161
    62 add_filter( 'xprofile_group_name_before_save',         'stripslashes' );
    63 add_filter( 'xprofile_group_description_before_save',  'stripslashes' );
     62add_filter( 'xprofile_group_name_before_save', 'stripslashes' );
     63add_filter( 'xprofile_group_description_before_save', 'stripslashes' );
    6464
    6565// Save fields.
    66 add_filter( 'xprofile_field_name_before_save',         'wp_filter_kses' );
    67 add_filter( 'xprofile_field_type_before_save',         'wp_filter_kses' );
    68 add_filter( 'xprofile_field_description_before_save',  'wp_filter_kses' );
    69 add_filter( 'xprofile_field_order_by_before_save',     'wp_filter_kses' );
    70 
    71 add_filter( 'xprofile_field_is_required_before_save',  'absint' );
    72 add_filter( 'xprofile_field_field_order_before_save',  'absint' );
     66add_filter( 'xprofile_field_name_before_save', 'wp_filter_kses' );
     67add_filter( 'xprofile_field_type_before_save', 'wp_filter_kses' );
     68add_filter( 'xprofile_field_description_before_save', 'wp_filter_kses' );
     69add_filter( 'xprofile_field_order_by_before_save', 'wp_filter_kses' );
     70
     71add_filter( 'xprofile_field_is_required_before_save', 'absint' );
     72add_filter( 'xprofile_field_field_order_before_save', 'absint' );
    7373add_filter( 'xprofile_field_option_order_before_save', 'absint' );
    74 add_filter( 'xprofile_field_can_delete_before_save',   'absint' );
     74add_filter( 'xprofile_field_can_delete_before_save', 'absint' );
    7575
    7676// Save field options.
     
    138138    if ( $field_id && bp_xprofile_is_richtext_enabled_for_field( $field_id ) ) {
    139139        $richtext_tags = array(
    140             'img'  => array( 'src' => 1, 'alt' => 1, 'width' => 1, 'height' => 1 ),
     140            'img'  => array(
     141                'src'    => 1,
     142                'alt'    => 1,
     143                'width'  => 1,
     144                'height' => 1,
     145            ),
    141146            'ul'   => array(),
    142147            'ol'   => array(),
     
    237242        $filtered_field_value = apply_filters( 'xprofile_filtered_data_value_before_save', $filtered_field_value, $field_value, $data_obj );
    238243
    239     // Sanitize multiple individual option values.
     244        // Sanitize multiple individual option values.
    240245    } else {
    241246        $filtered_values = array();
     
    426431        $values      = explode( ';', $field_value );
    427432
    428         array_walk( $values, function ( &$value, $key ) use ( $field_type, $field ) {
    429             $value = bp_xprofile_escape_field_data( $value, $field_type, $field->id );
    430         } );
     433        array_walk(
     434            $values,
     435            function ( &$value, $key ) use ( $field_type, $field ) {
     436                $value = bp_xprofile_escape_field_data( $value, $field_type, $field->id );
     437            }
     438        );
    431439    }
    432440
     
    439447                $new_values[] = make_clickable( $value );
    440448
    441             // Is not clickable.
     449                // Is not clickable.
    442450            } else {
    443451
     
    446454                    $new_values[] = $value;
    447455
    448                 // Less than 5 spaces.
     456                    // Less than 5 spaces.
    449457                } else {
    450458                    $query_arg    = bp_core_get_component_search_query_arg( 'members' );
     
    516524 * @since 1.7.0
    517525 *
    518  * @param BP_User_Query $user_query   User query to filter.
    519  * @param string        $user_ids_sql SQL statement to use.
    520  */
    521 function bp_xprofile_filter_user_query_populate_extras( BP_User_Query $user_query, $user_ids_sql = '' ) {
     526 * @param BP_User_Query $user_query The BP_User_Query object.
     527 */
     528function bp_xprofile_filter_user_query_populate_extras( $user_query ) {
    522529
    523530    if ( ! bp_is_active( 'xprofile' ) ) {
     
    534541    }
    535542}
    536 add_filter( 'bp_user_query_populate_extras', 'bp_xprofile_filter_user_query_populate_extras', 2, 2 );
     543add_action( 'bp_user_query_populate_extras', 'bp_xprofile_filter_user_query_populate_extras', 2 );
    537544
    538545/**
     
    541548 * @since 2.2.0
    542549 *
    543  * @param BP_User_Query $q User query object.
    544  */
    545 function bp_xprofile_add_xprofile_query_to_user_query( BP_User_Query $q ) {
     550 * @param BP_User_Query $q The BP_User_Query object.
     551 */
     552function bp_xprofile_add_xprofile_query_to_user_query( $q ) {
    546553
    547554    // Bail if no `xprofile_query` clause.
     
    555562    if ( ! empty( $sql['join'] ) ) {
    556563        $q->uid_clauses['select'] .= $sql['join'];
    557         $q->uid_clauses['where'] .= $sql['where'];
     564        $q->uid_clauses['where']  .= $sql['where'];
    558565    }
    559566}
     
    609616         * - append the 'object type' WHERE clause
    610617         */
    611         case 'SELECT' :
     618        case 'SELECT':
    612619            $q = str_replace(
    613620                array(
     
    630637         * - append the 'object type' WHERE clause
    631638         */
    632         case 'UPDATE' :
    633         case 'DELETE' :
     639        case 'UPDATE':
     640        case 'DELETE':
    634641            $q = str_replace(
    635642                array(
     
    650657         * - ensure that the object_type field gets filled in
    651658         */
    652         case 'INSERT' :
     659        case 'INSERT':
    653660            $q = str_replace(
    654661                array(
     
    658665                array(
    659666                    '`object_type`,`object_id`',
    660                     $wpdb->prepare( "VALUES (%s,", $matches[1] ),
     667                    $wpdb->prepare( 'VALUES (%s,', $matches[1] ),
    661668                ),
    662669                $q
     
    669676        for ( $i = 0; $i < count( $quoted_matches[0] ); $i++ ) {
    670677            $quote_pos = strpos( $q, '__QUOTE__' );
    671             $q = substr_replace( $q, $quoted_matches[0][ $i ], $quote_pos, 9 );
     678            $q         = substr_replace( $q, $quoted_matches[0][ $i ], $quote_pos, 9 );
    672679        }
    673680    }
Note: See TracChangeset for help on using the changeset viewer.