mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
- fixed member directory dropdown filters;
- code formatting for URL field type sanitizing;
This commit is contained in:
@@ -303,12 +303,14 @@ function um_ajax_get_members( directory, args ) {
|
||||
var filter_name = filter.find('select').attr('name');
|
||||
var value = um_get_data_for_directory( directory, 'filter_' + filter_name );
|
||||
if ( typeof value != 'undefined' ) {
|
||||
value = um_unsanitize_value( value );
|
||||
request[ filter_name ] = value.split( '||' );
|
||||
}
|
||||
} else if ( filter.hasClass( 'um-text-filter-type' ) && filter.find('input[type="text"]').length ) {
|
||||
var filter_name = filter.find('input[type="text"]').attr('name');
|
||||
var value = um_get_data_for_directory( directory, 'filter_' + filter_name );
|
||||
if ( typeof value != 'undefined' ) {
|
||||
value = um_unsanitize_value( value );
|
||||
request[ filter_name ] = value;
|
||||
}
|
||||
} else {
|
||||
@@ -491,9 +493,11 @@ function um_get_filters_data( directory ) {
|
||||
filter_title = filter.find('select').data('placeholder');
|
||||
|
||||
var filter_value = um_get_data_for_directory( directory, 'filter_' + filter_name );
|
||||
|
||||
if ( typeof filter_value == 'undefined' ) {
|
||||
filter_value = [];
|
||||
} else {
|
||||
filter_value = um_unsanitize_value( filter_value );
|
||||
filter_value = filter_value.split( '||' );
|
||||
}
|
||||
|
||||
@@ -956,7 +960,8 @@ jQuery(document.body).ready( function() {
|
||||
|
||||
//filtration process
|
||||
jQuery( document.body ).on( 'change', '.um-directory .um-search-filter select', function() {
|
||||
var selected_val = um_sanitize_value( jQuery(this).val() );
|
||||
var selected_val_raw = jQuery(this).val();
|
||||
var selected_val = um_sanitize_value( selected_val_raw );
|
||||
|
||||
if ( selected_val === '' ) {
|
||||
return;
|
||||
@@ -991,7 +996,7 @@ jQuery(document.body).ready( function() {
|
||||
}
|
||||
|
||||
//disable options and disable select if all options are disabled
|
||||
jQuery(this).find('option[value="' + selected_val + '"]').prop('disabled', true).hide();
|
||||
jQuery(this).find('option[value="' + selected_val_raw + '"]').prop('disabled', true).hide();
|
||||
if ( jQuery(this).find('option:not(:disabled)').length === 1 ) {
|
||||
jQuery(this).prop('disabled', true);
|
||||
}
|
||||
@@ -1115,6 +1120,7 @@ jQuery(document.body).ready( function() {
|
||||
if ( typeof current_value == 'undefined' ) {
|
||||
current_value = [];
|
||||
} else {
|
||||
current_value = um_unsanitize_value( current_value );
|
||||
current_value = current_value.split( '||' );
|
||||
}
|
||||
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -9,6 +9,13 @@ function um_sanitize_value( value, el ) {
|
||||
return sanitized_value;
|
||||
}
|
||||
|
||||
function um_unsanitize_value( input ) {
|
||||
var e = document.createElement( 'textarea' );
|
||||
e.innerHTML = input;
|
||||
// handle case of empty input
|
||||
return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
|
||||
}
|
||||
|
||||
|
||||
function um_init_datetimepicker() {
|
||||
jQuery('.um-datepicker:not(.picker__input)').each(function(){
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -128,7 +128,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
|
||||
"SELECT DISTINCT meta_value
|
||||
FROM $wpdb->usermeta
|
||||
WHERE meta_key = %s AND
|
||||
meta_value != ''",
|
||||
meta_value != ''",
|
||||
$arr_options['post']['child_name']
|
||||
)
|
||||
);
|
||||
@@ -586,31 +586,32 @@ if ( ! class_exists( 'um\core\Form' ) ) {
|
||||
}
|
||||
break;
|
||||
case 'url':
|
||||
$f = UM()->builtin()->get_a_field( $k );
|
||||
if( isset( $f['match'] ) && isset( $f['advanced'] ) && $f['advanced'] === 'social' ){
|
||||
$v = sanitize_text_field( $form[ $k ] );
|
||||
$f = UM()->builtin()->get_a_field( $k );
|
||||
|
||||
// Make a proper social link
|
||||
if ( ! empty( $v ) && ! strstr( $v, $f['match'] ) ) {
|
||||
$domain = trim( strtr( $f['match'], array(
|
||||
'https://' => '',
|
||||
'http://' => ''
|
||||
) ), ' /' );
|
||||
if ( array_key_exists( 'match', $f ) && array_key_exists( 'advanced', $f ) && 'social' === $f['advanced'] ) {
|
||||
$v = sanitize_text_field( $form[ $k ] );
|
||||
|
||||
if ( ! strstr( $v, $domain ) ) {
|
||||
$v = $f['match'] . $v;
|
||||
} else {
|
||||
$v = 'https://' . trim( strtr( $v, array(
|
||||
'https://' => '',
|
||||
'http://' => ''
|
||||
) ), ' /' );
|
||||
}
|
||||
}
|
||||
// Make a proper social link
|
||||
if ( ! empty( $v ) && ! strstr( $v, $f['match'] ) ) {
|
||||
$domain = trim( strtr( $f['match'], array(
|
||||
'https://' => '',
|
||||
'http://' => '',
|
||||
) ), ' /' );
|
||||
|
||||
$form[ $k ] = $v;
|
||||
} else {
|
||||
$form[ $k ] = esc_url_raw( $form[ $k ] );
|
||||
}
|
||||
if ( ! strstr( $v, $domain ) ) {
|
||||
$v = $f['match'] . $v;
|
||||
} else {
|
||||
$v = 'https://' . trim( strtr( $v, array(
|
||||
'https://' => '',
|
||||
'http://' => '',
|
||||
) ), ' /' );
|
||||
}
|
||||
}
|
||||
|
||||
$form[ $k ] = $v;
|
||||
} else {
|
||||
$form[ $k ] = esc_url_raw( $form[ $k ] );
|
||||
}
|
||||
break;
|
||||
case 'text':
|
||||
case 'select':
|
||||
@@ -745,7 +746,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
|
||||
if ( strstr( $field_key, 'role_' ) && is_array( $field_settings['options'] ) ) {
|
||||
|
||||
if ( isset( $this->post_form['mode'] ) && 'profile' === $this->post_form['mode'] &&
|
||||
isset( $field_settings['editable'] ) && $field_settings['editable'] == 0 ) {
|
||||
isset( $field_settings['editable'] ) && $field_settings['editable'] == 0 ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user