bp_profile_search_escaped_form_data( $form = false )
Escape BuddyBoss Profile Search Form data.
Description
Source
File: bp-core/profile-search/bps-form.php
function bp_profile_search_escaped_form_data ( $form = false ) { if ( empty( $form ) ) { $form = bp_profile_search_main_form(); } $location ='directory'; $meta = bp_ps_meta ( $form ); $fields = bp_ps_parse_request ( bp_ps_get_request ( 'form', $form ) ); wp_register_script ('bp-ps-template-form', buddypress()->plugin_url . 'bp-core/profile-search/bp-ps-template.js', array (), bp_get_version()); wp_enqueue_script('bp-ps-template-form'); $F = new stdClass; $F->id = $form; $F->title = get_the_title ( $form ); $F->location = $location; $F->unique_id = bp_ps_unique_id ('form_'. $form); $F->page = parse_url ($_SERVER['REQUEST_URI'], PHP_URL_PATH); $F->action = parse_url ( $_SERVER['REQUEST_URI'], PHP_URL_PATH ); if (defined ('DOING_AJAX')) $F->action = parse_url ($_SERVER['HTTP_REFERER'], PHP_URL_PATH); $F->method = 'POST'; $F->fields = array (); foreach ( $meta['field_code'] as $k => $code ) { if (empty ($fields[$code])) continue; $f = $fields[$code]; $mode = $meta['field_mode'][$k]; if ( !bp_ps_Fields::set_display ($f, $mode)) continue; $f->label = $f->name; $custom_label = $meta['field_label'][$k]; if (!empty ($custom_label)) { $f->label = $custom_label; $F->fields[] = bp_ps_set_hidden_field ($f->code. '_label', $f->label); } $custom_desc = $meta['field_desc'][$k]; if ($custom_desc == '-') $f->description = ''; else if (!empty ($custom_desc)) $f->description = $custom_desc; else $f->description = ''; switch ($f->display) { case 'range': case 'range-select': if (!isset ($f->value['min'])) $f->value['min'] = ''; if (!isset ($f->value['max'])) $f->value['max'] = ''; $f->min = $f->value['min']; $f->max = $f->value['max']; break; case 'date_range': if (!isset ($f->value['min'])) $f->value['min'] = array( 'day' => '', 'month' => '', 'year' => '' ); if (!isset ($f->value['max'])) $f->value['max'] = array( 'day' => '', 'month' => '', 'year' => '' ); $f->min = $f->value['min']; $f->max = $f->value['max']; break; case 'textbox': case 'number': if (!isset ($f->value)) $f->value = ''; break; case 'distance': if (!isset ($f->value['location'])) $f->value['distance'] = $f->value['units'] = $f->value['location'] = $f->value['lat'] = $f->value['lng'] = ''; wp_enqueue_script ($f->script_handle); wp_enqueue_script ('bp-ps-template'); break; case 'selectbox': if (!isset ($f->value)) $f->value = ''; $f->options = array ('' => '') + $f->options; break; case 'radio': if (!isset ($f->value)) $f->value = ''; wp_enqueue_script ('bp-ps-template'); break; case 'multiselectbox': case 'checkbox': if (!isset ($f->value)) $f->value = ''; break; } $f->values = (array)$f->value; $f->html_name = ($mode == '')? $f->code: $f->code. '_'. $mode; $f->unique_id = bp_ps_unique_id ($f->html_name); $f->mode = $mode; $f->full_label = bp_ps_full_label ($f); /** * @todo add title/description * * @since BuddyBoss 1.0.0 */ do_action ('bp_ps_field_before_search_form', $f); $f->code = ($mode == '')? $f->code: $f->code. '_'. $mode; // to be removed $F->fields[] = $f; } $F->fields[] = bp_ps_set_hidden_field ( BP_PS_FORM, $form); /** * @todo add title/description * * @since BuddyBoss 1.0.0 */ do_action ('bp_ps_before_search_form', $F); foreach ($F->fields as $f) { if (!is_array ($f->value)) $f->value = esc_attr (stripslashes ($f->value)); if ($f->display == 'hidden') continue; $f->label = esc_attr ($f->label); $f->description = esc_attr ($f->description); foreach ( $f->values as $k => $value ) { if ( is_array( $value ) ) { foreach( $value as $sub_k => $sub_value ) { $f->values[ $k ][ $sub_k ] = esc_attr( stripslashes( $sub_value ) ); } } else { $f->values[ $k ] = esc_attr( stripslashes( $value ) ); } } $options = array (); foreach ($f->options as $key => $label) $options[esc_attr ($key)] = esc_attr ($label); $f->options = $options; } return $F; }
Changelog
Version | Description |
---|---|
BuddyBoss 1.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.