- new member directory;

This commit is contained in:
nikitasinelnikov
2019-09-04 14:54:03 +03:00
parent a7f046fe6f
commit 27135ed988
9 changed files with 88 additions and 74 deletions
-4
View File
@@ -373,10 +373,6 @@ a.um-edit-profile-btn {
}
.um-member a.um-friend-btn:before {content: "\f234"}
.um-member a.um-unfriend-btn:before {content: "\f235"}
/* NEW STYLES FOR VIEW TYPE LIST*/
.um-directory .um-member-directory-header {
+1 -1
View File
@@ -168,6 +168,7 @@ function um_ajax_get_members( directory, args ) {
search: search,
sorting: sorting,
gmt_offset: gmt_hours,
post_refferer: directory.data('base-post'),
nonce: um_scripts.nonce
};
@@ -237,7 +238,6 @@ function um_build_template( directory, data ) {
var layout = directory.data('view_type');
var template = wp.template( 'um-member-' + layout );
directory.find('.um-members-grid, .um-members-list').remove();
directory.find('.um-members-wrapper').prepend( template( data ) );
directory.addClass('um-loaded');
+1 -1
View File
File diff suppressed because one or more lines are too long
+10
View File
@@ -32,6 +32,16 @@ if ( ! class_exists( 'UM_Functions' ) ) {
}
/**
* Check if AJAX now
*
* @return bool
*/
function is_ajax() {
return function_exists( 'wp_doing_ajax' ) ? wp_doing_ajax() : defined( 'DOING_AJAX' );
}
/**
* Check frontend nonce
*
+63 -63
View File
@@ -340,9 +340,11 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
* filters selectboxes
*
* @param string $filter
* @param array $directory_data
*
* @return string $filter
*/
function show_filter( $filter ) {
function show_filter( $filter, $directory_data ) {
if ( empty( $this->filter_types[ $filter ] ) ) {
return '';
@@ -485,8 +487,8 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
break;
}
case 'slider': {
$range = $this->slider_filters_range( $filter );
$placeholder = $this->slider_range_placeholder( $filter );
$range = $this->slider_filters_range( $filter, $directory_data );
$placeholder = $this->slider_range_placeholder( $filter, $attrs );
if ( $range ) { ?>
<input type="hidden" id="<?php echo $filter; ?>_min" name="<?php echo $filter; ?>[]" class="um_range_min" />
@@ -565,11 +567,12 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
/**
* @param $filter
* @param string $filter
* @param array $directory_data
*
* @return mixed
*/
function slider_filters_range( $filter ) {
function slider_filters_range( $filter, $directory_data ) {
switch ( $filter ) {
@@ -588,7 +591,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
$range = array( min( $meta ), max( $meta ) );
}
$range = apply_filters( "um_member_directory_filter_{$filter}_slider", $range );
$range = apply_filters( "um_member_directory_filter_{$filter}_slider", $range, $directory_data );
break;
}
@@ -617,21 +620,29 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
*
* @return mixed
*/
function slider_range_placeholder( $filter ) {
function slider_range_placeholder( $filter, $attrs ) {
switch ( $filter ) {
default: {
$label = ucwords( str_replace(array('um_', '_'), array('', ' '), $filter) );
$placeholder = apply_filters( "um_member_directory_filter_{$filter}_slider_range_placeholder", "<strong>$label:</strong> {min_range} - {max_range}" );
$label = ucwords( str_replace( array( 'um_', '_' ), array( '', ' ' ), $filter ) );
$placeholder = apply_filters( 'um_member_directory_filter_slider_range_placeholder', false, $filter );
if ( ! $placeholder ) {
switch ( $attrs['type'] ) {
default:
$placeholder = "<strong>$label:</strong> {min_range} - {max_range}";
break;
case 'rating':
$placeholder = "<strong>$label:</strong> {min_range} - {max_range}" . __( ' stars', 'ultimate-member' );
break;
}
}
break;
}
case 'birth_date': {
$placeholder = __( '<strong>Age:</strong> {min_range} - {max_range} years old', 'ultimate-member' );
break;
}
case 'user_rating': {
$placeholder = __( '<strong>User Rating:</strong> {min_range} - {max_range} points', 'ultimate-member' );
break;
}
}
return $placeholder;
@@ -860,7 +871,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
// add roles to appear in directory
if ( ! empty( $directory_data['roles'] ) ) {
//since WP4.4 use 'role__in' argument
$this->query_args['role__in'] = $directory_data['roles'];
$this->query_args['role__in'] = maybe_unserialize( $directory_data['roles'] );
}
}
@@ -1290,12 +1301,10 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
case 'slider':
$field_query = array(
array(
'key' => $field,
'value' => $value,
'compare' => 'BETWEEN',
'inclusive' => true,
)
'key' => $field,
'value' => $value,
'compare' => 'BETWEEN',
'inclusive' => true,
);
break;
@@ -1309,31 +1318,28 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
$from_date = (int) min( $value ) + ( $offset * HOUR_IN_SECONDS ); // client time zone offset
$to_date = (int) max( $value ) + ( $offset * HOUR_IN_SECONDS ) + DAY_IN_SECONDS - 1; // time 23:59
$field_query = array(
array(
'key' => $field,
'value' => array( $from_date, $to_date ),
'compare' => 'BETWEEN',
)
'key' => $field,
'value' => array( $from_date, $to_date ),
'compare' => 'BETWEEN',
);
break;
case 'timepicker':
$field_query = array(
array(
'key' => $field,
'value' => $value,
'compare' => 'BETWEEN',
'type' => 'TIME',
'inclusive' => true,
)
'key' => $field,
'value' => $value,
'compare' => 'BETWEEN',
'type' => 'TIME',
'inclusive' => true,
);
break;
}
}
if ( ! empty( $field_query ) ) {
if ( ! empty( $field_query ) && $field_query !== true ) {
$this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $field_query ) );
}
@@ -1521,6 +1527,8 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
'hook_after_user_name' => preg_replace( '/^\s+/im', '', $hook_after_user_name ),
);
$directory_data['tagline_fields'] = maybe_unserialize( $directory_data['tagline_fields'] );
if ( $directory_data['show_tagline'] && is_array( $directory_data['tagline_fields'] ) ) {
foreach ( $directory_data['tagline_fields'] as $key ) {
if ( ! $key ) {
@@ -1528,6 +1536,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
}
$value = um_filtered_value( $key );
if ( ! $value ) {
continue;
}
@@ -1537,26 +1546,30 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
}
if ( $directory_data['show_userinfo'] ) {
foreach ( $directory_data['reveal_fields'] as $key ) {
if ( ! $key ) {
continue;
}
$directory_data['reveal_fields'] = maybe_unserialize( $directory_data['reveal_fields'] );
$value = um_filtered_value( $key );
if ( ! $value ) {
continue;
}
if ( is_array( $directory_data['reveal_fields'] ) ) {
foreach ( $directory_data['reveal_fields'] as $key ) {
if ( ! $key ) {
continue;
}
$label = UM()->fields()->get_label( $key );
if ( $key == 'role_select' || $key == 'role_radio' ) {
$label = strtr( $label, array(
' (Dropdown)' => '',
' (Radio)' => ''
) );
}
$value = um_filtered_value( $key );
if ( ! $value ) {
continue;
}
$data_array[ "label_{$key}" ] = $label;
$data_array[ $key ] = $value;
$label = UM()->fields()->get_label( $key );
if ( $key == 'role_select' || $key == 'role_radio' ) {
$label = strtr( $label, array(
' (Dropdown)' => '',
' (Radio)' => ''
) );
}
$data_array[ "label_{$key}" ] = $label;
$data_array[ $key ] = $value;
}
}
if ( ! empty( $directory_data['show_social'] ) ) {
@@ -1739,19 +1752,6 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
$user_ids = apply_filters( 'um_prepare_user_results_array', $user_ids );
/*
* @todo generate user card data
*/
$sizes = UM()->options()->get( 'cover_thumb_sizes' );
$this->cover_size = UM()->mobile()->isTablet() ? $sizes[1] : $sizes[0];
+1 -1
View File
@@ -21,7 +21,7 @@ if ( ! defined( 'ABSPATH' ) ) {
* @param string $replacement
*/
function um_deprecated_function( $function, $version, $replacement = null ) {
if ( is_ajax() ) {
if ( UM()->is_ajax() ) {
do_action( 'deprecated_function_run', $function, $replacement, $version );
$log_string = "The {$function} function is deprecated since version {$version}.";
$log_string .= $replacement ? " Replace with {$replacement}." : '';
+2
View File
@@ -27,6 +27,7 @@
<div class="um-member-photo radius-<?php echo esc_attr( UM()->options()->get( 'profile_photocorner' ) ); ?>">
<a href="{{{user.profile_url}}}" title="{{{user.display_name}}}">
{{{user.avatar}}}
<?php do_action( 'um_members_in_profile_photo_tmpl', $args ); ?>
</a>
</div>
<?php } ?>
@@ -41,6 +42,7 @@
</div>
<?php }
// please use for buttons priority > 100
do_action( 'um_members_just_after_name_tmpl', $args ); ?>
{{{user.hook_just_after_name}}}
+4 -2
View File
@@ -18,6 +18,8 @@
<div class="um-member-photo radius-<?php echo esc_attr( UM()->options()->get( 'profile_photocorner' ) ); ?>">
<a href="{{{user.profile_url}}}" title="{{{user.display_name}}}">
{{{user.avatar}}}
<?php do_action( 'um_members_list_in_profile_photo_tmpl', $args ); ?>
</a>
</div>
<?php } ?>
@@ -32,7 +34,7 @@
</div>
<?php }
do_action( 'um_members_after_user_name_tmpl', $args ); ?>
do_action( 'um_members_list_after_user_name_tmpl', $args ); ?>
{{{user.hook_after_user_name}}}
</div>
@@ -110,7 +112,7 @@
<# }); #>
<# } #>
<?php do_action( 'um_members_just_after_name_tmpl', $args ); ?>
<?php do_action( 'um_members_list_just_after_actions_tmpl', $args ); ?>
{{{user.hook_just_after_name}}}
</div>
+6 -2
View File
@@ -1,5 +1,7 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit;
global $post;
// Get default and real arguments
$def_args = array();
foreach ( UM()->config()->core_directory_meta['members'] as $k => $v ) {
@@ -59,6 +61,8 @@ if ( $args['enable_sorting'] ) {
$sorting_options = array_intersect_key( $all_sorting_options, array_flip( $sorting_options ) );
}
$sorting_options = apply_filters( 'um_member_directory_pre_display_sorting', $sorting_options, $args );
$sort_from_url = ( ! empty( $_GET[ 'sort_' . $unique_hash ] ) && in_array( $_GET[ 'sort_' . $unique_hash ], array_keys( $sorting_options ) ) ) ? $_GET[ 'sort_' . $unique_hash ] : $default_sorting;
}
@@ -117,7 +121,7 @@ UM()->get_template( 'members-header.php', '', $args, true );
UM()->get_template( 'members-pagination.php', '', $args, true ); ?>
<div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( substr( md5( $form_id ), 10, 5 ) ); ?>"
data-hash="<?php echo esc_attr( substr( md5( $form_id ), 10, 5 ) ) ?>"
data-hash="<?php echo esc_attr( substr( md5( $form_id ), 10, 5 ) ) ?>" data-base-post="<?php echo esc_attr( $post->ID ) ?>"
data-view_type="<?php echo esc_attr( $current_view ) ?>" data-page="<?php echo esc_attr( $current_page ) ?>">
<div class="um-form">
@@ -205,7 +209,7 @@ UM()->get_template( 'members-pagination.php', '', $args, true ); ?>
<div class="um-search um-search-<?php echo count( $search_filters ) ?>">
<?php $i = 0;
foreach ( $search_filters as $filter ) {
$filter_content = UM()->member_directory()->show_filter( $filter );
$filter_content = UM()->member_directory()->show_filter( $filter, $args );
if ( empty( $filter_content ) ) {
continue;
} ?>