- visual improvements for member directory;

- fixed must search/filter option;
This commit is contained in:
nikitasinelnikov
2019-09-11 13:01:44 +03:00
parent 26a96903da
commit 177ef54d88
10 changed files with 341 additions and 313 deletions
+18 -6
View File
@@ -48,6 +48,14 @@
display: none;
}
.select2-container .select2-results li.select2-results__option[aria-disabled=true] {
display: none;
}
.um-directory .select2-container--disabled {
opacity: 0.6;
}
.um-search.um-search-1 .um-search-filter {
width: 100%;
padding: 0 0 10px 0;
@@ -510,6 +518,11 @@ a.um-edit-profile-btn {
z-index: 1;
}
.um-member-directory-view-type.um-disabled,
.um-member-directory-view-type.um-disabled a {
cursor: default;
}
.um-members-list .um-member {
width:100% !important;
padding: 15px 10px;
@@ -640,6 +653,7 @@ div.uimob500 .um-members-list .um-member-card-actions {
}
.um-members-overlay {
display: none;
position: absolute;
width: 100%;
float: left;
@@ -735,14 +749,15 @@ div.uimob500 .um-members-list .um-member-card-actions {
.um-member-directory-sorting-a:hover,
.um-member-directory-filters-a:hover,
.um-member-directory-view-type-a:hover {
.um-member-directory-view-type:not( .um-disabled ) .um-member-directory-view-type-a:hover {
color:#ccc !important;
text-decoration: none;
}
.um-member-directory-sorting-a:focus,
.um-member-directory-filters-a:focus,
.um-member-directory-view-type-a:focus {
.um-member-directory-view-type .um-member-directory-view-type-a:hover,
.um-member-directory-view-type:not( .um-disabled ) .um-member-directory-view-type-a:focus {
color:#ddd;
text-decoration: none;
}
@@ -791,13 +806,10 @@ div.uimob500 .um-members-list .um-member-card-actions {
}
.um-directory .um-clear-filters {
/*margin-left: 20px;*/
display: none;
}
.um-directory .um-clear-filters a {
/*float:left;*/
/*display: inline-block;*/
/*line-height: 25px;*/
padding: 3px 10px;
margin: 0 10px;
}
+202 -65
View File
@@ -69,6 +69,10 @@ function um_set_url_from_data( directory, key, value ) {
});
var query_string = '?' + query_strings.join( '&' );
if ( query_string === '?' ) {
query_string = '';
}
window.history.pushState("string", "UM Member Directory", window.location.origin + window.location.pathname + query_string );
}
@@ -221,6 +225,14 @@ function um_ajax_get_members( directory, args ) {
directory.data( 'total_pages', answer.pagination.total_pages );
if ( answer.pagination.total_pages ) {
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
} else {
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
}
jQuery( document ).trigger('um_members_rendered');
um_members_hide_preloader( directory );
@@ -271,11 +283,8 @@ function UM_Member_Grid( container ) {
}
function um_change_tag( directory ) {
function um_get_filters_data( directory ) {
var filters_data = [];
var filter_array = [];
directory.find('.um-search-filter').each( function() {
@@ -379,32 +388,31 @@ function um_change_tag( directory ) {
filter_title = filter.find('div.um-slider-range').data('label');
var filter_value_title = filter.find('div.um-slider-range').data( 'placeholder' ).replace( '\{min_range\}', filter_value_from )
.replace( '\{max_range\}', filter_value_to )
.replace( '\{field_label\}', filter.find('div.um-slider-range').data('label') );
.replace( '\{max_range\}', filter_value_to )
.replace( '\{field_label\}', filter.find('div.um-slider-range').data('label') );
filters_data.push( {'name':filter_name, 'label':filter_title, 'value_label':filter_value_title, 'value':[filter_value_from, filter_value_to], 'type':filter_type} );
}
});
return filters_data;
}
function um_change_tag( directory ) {
var filters_data = um_get_filters_data( directory );
directory.find('.um-members-filter-tag').remove();
var filtered_line = directory.find('.um-filtered-line');
if( filtered_line.length ){
if ( filtered_line.length ){
var filters_template = wp.template( 'um-members-filtered-line' );
filtered_line.prepend( filters_template( {'filters': filters_data} ) );
if ( filters_data.length > 0 ) {
filtered_line.show();
show_after_search = false;
} else {
filtered_line.hide();
show_after_search = true;
}
if ( directory.find( '.um-members-filter-remove' ).length === 0 ) {
directory.find('.um-clear-filters-a').hide();
directory.find('.um-clear-filters').hide();
} else {
directory.find('.um-clear-filters-a').show();
directory.find('.um-clear-filters').show();
}
}
@@ -412,8 +420,59 @@ function um_change_tag( directory ) {
}
function um_run_search( directory ) {
if ( um_is_directory_busy( directory ) ) {
return;
}
um_members_show_preloader( directory );
var pre_search = um_get_data_for_directory( directory, 'search' );
var search = directory.find('.um-search-line').val();
if ( search === pre_search || ( search === '' && typeof pre_search == 'undefined' ) ) {
return;
}
directory.data( 'general_search', search );
um_set_url_from_data( directory, 'search', search );
//set 1st page after search
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', '' );
var show_after_search = directory.data('must-search');
var search = um_get_search( directory );
if ( directory.find( '.um-members-filter-remove' ).length === 0 && ! search ) {
if ( show_after_search === 1 ) {
directory.data( 'searched', 0 );
directory.find('.um-members-grid, .um-members-list').remove();
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
um_members_hide_preloader( directory );
return;
}
}
directory.data( 'searched', 1 );
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
um_ajax_get_members( directory );
}
jQuery(document).ready( function() {
jQuery( '.um-search-filter select' ).each( function() {
if ( jQuery(this).find('option:not(:disabled)').length === 1 ) {
jQuery(this).prop('disabled', true);
}
jQuery(this).select2('destroy').select2();
});
/**
* Change View Type Handlers
*/
@@ -421,6 +480,10 @@ jQuery(document).ready( function() {
//UI for change view type button
jQuery( document.body ).on( 'mouseover', '.um-member-directory-view-type', function() {
if ( jQuery(this).hasClass('um-disabled') ) {
return;
}
var $obj = jQuery(this).find('.um-member-directory-view-type-a:visible');
$obj.hide();
@@ -431,6 +494,10 @@ jQuery(document).ready( function() {
jQuery(this).find( '.um-member-directory-view-type-a:first' ).show().tipsy('show');
}
}).on( 'mouseout', '.um-member-directory-view-type', function() {
if ( jQuery(this).hasClass('um-disabled') ) {
return;
}
jQuery(this).find('.um-member-directory-view-type-a').hide().tipsy('hide');
jQuery(this).find('.um-member-directory-view-type-a[data-type="' + jQuery(this).parents( '.um-directory' ).data('view_type') + '"]').show();
});
@@ -441,11 +508,16 @@ jQuery(document).ready( function() {
if ( um_is_directory_busy( directory ) ) {
return false;
}
um_members_show_preloader( directory );
var $this = jQuery(this);
var views = $this.parents('.um-member-directory-view-type');
if ( views.hasClass('um-disabled') ) {
return;
}
um_members_show_preloader( directory );
var $obj = views.find('.um-member-directory-view-type-a:visible');
$obj.hide();
@@ -481,28 +553,8 @@ jQuery(document).ready( function() {
//searching
jQuery( document.body ).on( 'click', '.um-do-search', function() {
var directory = jQuery(this).parents('.um-directory');
if ( um_is_directory_busy( directory ) ) {
return;
}
um_members_show_preloader( directory );
var pre_search = um_get_data_for_directory( directory, 'search' );
var search = directory.find('.um-search-line').val();
if ( search === pre_search || ( search === '' && typeof pre_search == 'undefined' ) ) {
return;
}
directory.data( 'general_search', search );
um_set_url_from_data( directory, 'search', search );
//set 1st page after search
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', 1 );
um_ajax_get_members( directory );
um_run_search( directory );
});
@@ -510,7 +562,7 @@ jQuery(document).ready( function() {
jQuery( document.body ).on( 'keypress', '.um-search-line', function(e) {
if ( e.which === 13 ) {
var directory = jQuery(this).parents('.um-directory');
directory.find('.um-do-search').trigger('click');
um_run_search( directory );
}
});
@@ -592,7 +644,11 @@ jQuery(document).ready( function() {
directory.find('.pagi[data-page="' + page + '"]').addClass('current');
directory.data( 'page', page );
um_set_url_from_data( directory, 'page', page );
if ( page === 1 ) {
um_set_url_from_data( directory, 'page', '' );
} else {
um_set_url_from_data( directory, 'page', page );
}
um_ajax_get_members( directory );
});
@@ -614,7 +670,11 @@ jQuery(document).ready( function() {
directory.find('.pagi[data-page="' + page + '"]').addClass('current');
directory.data( 'page', page );
um_set_url_from_data( directory, 'page', page );
if ( page === 1 ) {
um_set_url_from_data( directory, 'page', '' );
} else {
um_set_url_from_data( directory, 'page', page );
}
um_ajax_get_members( directory );
});
@@ -705,14 +765,25 @@ jQuery(document).ready( function() {
//set 1st page after filtration
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', 1 );
um_set_url_from_data( directory, 'page', '' );
}
//disable options and disable select if all options are disabled
jQuery(this).find('option[value="' + jQuery(this).val() + '"]').prop('disabled', true).hide();
if ( jQuery(this).find('option:not(:disabled)').length === 1 ) {
jQuery(this).prop('disabled', true);
}
jQuery(this).select2('destroy').select2();
jQuery(this).val('').trigger( 'change' );
um_ajax_get_members( directory );
um_change_tag( directory );
directory.data( 'searched', 1 );
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
});
@@ -754,10 +825,14 @@ jQuery(document).ready( function() {
//set 1st page after filtration
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', 1 );
um_set_url_from_data( directory, 'page', '' );
um_ajax_get_members( directory );
um_change_tag( directory );
directory.data( 'searched', 1 );
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
}
}
});
@@ -820,18 +895,22 @@ jQuery(document).ready( function() {
//set 1st page after filtration
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', 1 );
um_set_url_from_data( directory, 'page', '' );
um_ajax_get_members( directory );
um_change_tag( directory );
directory.data( 'searched', 1 );
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
}
});
var $picker = $input.pickadate('picker');
var $fname = elem.data('filter_name');
var $frange = elem.data('range');
var $directory = elem.parents('.um-directory');
var $picker = $input.pickadate('picker');
var $fname = elem.data('filter_name');
var $frange = elem.data('range');
var $directory = elem.parents('.um-directory');
var query_value = um_get_data_for_directory( $directory, 'filter_' + $fname + '_' + $frange );
if ( typeof query_value !== 'undefined' ) {
@@ -905,19 +984,23 @@ jQuery(document).ready( function() {
//set 1st page after filtration
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', 1 );
um_set_url_from_data( directory, 'page', '' );
um_ajax_get_members( directory );
um_change_tag( directory );
directory.data( 'searched', 1 );
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
}
});
var $picker = $input.pickatime('picker');
var $fname = elem.data('filter_name');
var $frange = elem.data('range');
var $directory = elem.parents('.um-directory');
var $picker = $input.pickatime('picker');
var $fname = elem.data('filter_name');
var $frange = elem.data('range');
var $directory = elem.parents('.um-directory');
var query_value = um_get_data_for_directory( $directory, 'filter_' + $fname + '_' + $frange );
if ( typeof query_value !== 'undefined' ) {
@@ -960,6 +1043,16 @@ jQuery(document).ready( function() {
um_set_url_from_data( directory, 'filter_' + filter_name, current_value );
var select = jQuery( '.um-search-filter select[name="' + filter_name + '"]' );
select.find('option[value="' + removeItem + '"]').prop('disabled', false).show();
//disable options and disable select if all options are disabled
if ( select.find('option:not(:disabled)').length > 1 ) {
select.prop('disabled', false);
}
select.select2('destroy').select2();
} else if ( type === 'slider' ) {
um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
@@ -974,16 +1067,32 @@ jQuery(document).ready( function() {
//set 1st page after filtration
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', 1 );
um_set_url_from_data( directory, 'page', '' );
jQuery(this).parents('.um-members-filter-tag').remove();
um_ajax_get_members( directory );
if ( directory.find( '.um-members-filter-remove' ).length === 0 ) {
directory.find('.um-clear-filters-a').hide();
directory.find('.um-clear-filters').hide();
} else {
directory.find('.um-clear-filters-a').show();
directory.find('.um-clear-filters').show();
}
var show_after_search = directory.data('must-search');
var search = um_get_search( directory );
if ( directory.find( '.um-members-filter-remove' ).length === 0 && ! search ) {
if ( show_after_search === 1 ) {
directory.data( 'searched', 0 );
directory.find('.um-members-grid, .um-members-list').remove();
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
um_members_hide_preloader( directory );
return;
}
}
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
um_ajax_get_members( directory );
});
@@ -1021,6 +1130,15 @@ jQuery(document).ready( function() {
um_set_url_from_data( directory, 'filter_' + filter_name, current_value );
var select = jQuery( '.um-search-filter select[name="' + filter_name + '"]' );
select.find('option[value="' + removeItem + '"]').prop('disabled', false).show();
//disable options and disable select if all options are disabled
if ( select.find('option:not(:disabled)').length > 1 ) {
select.prop('disabled', false);
}
select.select2('destroy').select2();
} else if ( type === 'slider' ) {
um_set_url_from_data( directory, 'filter_' + filter_name + '_from','' );
um_set_url_from_data( directory, 'filter_' + filter_name + '_to', '' );
@@ -1035,12 +1153,26 @@ jQuery(document).ready( function() {
//set 1st page after filtration
directory.data( 'page', 1 );
um_set_url_from_data( directory, 'page', 1 );
um_set_url_from_data( directory, 'page', '' );
directory.find('.um-members-filter-tag').remove();
um_ajax_get_members( directory );
jQuery(this).hide();
var show_after_search = directory.data('must-search');
var search = um_get_search( directory );
if ( show_after_search === 1 && ! search ) {
directory.data( 'searched', 0 );
directory.find('.um-members-grid, .um-members-list').remove();
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', true );
directory.find( '.um-member-directory-view-type' ).addClass( 'um-disabled' );
um_members_hide_preloader( directory );
return;
}
directory.find( '.um-member-directory-sorting-options' ).prop( 'disabled', false );
directory.find( '.um-member-directory-view-type' ).removeClass( 'um-disabled' );
um_ajax_get_members( directory );
});
@@ -1055,9 +1187,14 @@ jQuery(document).ready( function() {
var hash = um_members_get_hash( directory );
um_member_directories.push( hash );
var show_after_search = jQuery(this).data('show');
if ( show_after_search !== false ) {
return;
var show_after_search = directory.data('must-search');
var search = um_get_search( directory );
var filters_data = um_get_filters_data( directory );
if ( ! filters_data.length && ! search ) {
if ( show_after_search === 1 ) {
return;
}
}
um_members_show_preloader( directory );
+1 -1
View File
File diff suppressed because one or more lines are too long
+23 -23
View File
@@ -59,33 +59,33 @@ foreach ( $view_types_options as $key => $value ) {
'conditional' => array( implode( '|', $conditional ), '~', 1 )
),
array(
'id' => '_um_roles',
'type' => 'multi_checkbox',
'label' => __( 'User Roles to Display', 'ultimate-member' ),
'tooltip' => __( 'If you do not want to show all members, select only user roles to appear in this directory', 'ultimate-member' ),
'options' => UM()->roles()->get_roles(),
'id' => '_um_roles',
'type' => 'multi_checkbox',
'label' => __( 'User Roles to Display', 'ultimate-member' ),
'tooltip' => __( 'If you do not want to show all members, select only user roles to appear in this directory', 'ultimate-member' ),
'options' => UM()->roles()->get_roles(),
'columns' => 3,
'value' => $_um_roles_value,
'value' => $_um_roles_value,
),
array(
'id' => '_um_has_profile_photo',
'type' => 'checkbox',
'label' => __( 'Only show members who have uploaded a profile photo', 'ultimate-member' ),
'tooltip' => __( 'If \'Use Gravatars\' as profile photo is enabled, this option is ignored', 'ultimate-member' ),
'value' => UM()->query()->get_meta_value( '_um_has_profile_photo' ),
'id' => '_um_has_profile_photo',
'type' => 'checkbox',
'label' => __( 'Only show members who have uploaded a profile photo', 'ultimate-member' ),
'tooltip' => __( 'If \'Use Gravatars\' as profile photo is enabled, this option is ignored', 'ultimate-member' ),
'value' => UM()->query()->get_meta_value( '_um_has_profile_photo' ),
),
array(
'id' => '_um_has_cover_photo',
'type' => 'checkbox',
'label' => __( 'Only show members who have uploaded a cover photo', 'ultimate-member' ),
'value' => UM()->query()->get_meta_value( '_um_has_cover_photo' ),
'id' => '_um_has_cover_photo',
'type' => 'checkbox',
'label' => __( 'Only show members who have uploaded a cover photo', 'ultimate-member' ),
'value' => UM()->query()->get_meta_value( '_um_has_cover_photo' ),
),
array(
'id' => '_um_show_these_users',
'type' => 'textarea',
'label' => __( 'Only show specific users (Enter one username per line)', 'ultimate-member' ),
'value' => $show_these_users,
)
'id' => '_um_show_these_users',
'type' => 'textarea',
'label' => __( 'Only show specific users (Enter one username per line)', 'ultimate-member' ),
'value' => $show_these_users,
),
);
/**
@@ -111,9 +111,9 @@ foreach ( $view_types_options as $key => $value ) {
$fields = apply_filters( 'um_admin_extend_directory_options_general', $fields );
UM()->admin_forms( array(
'class' => 'um-member-directory-general um-half-column',
'prefix_id' => 'um_metadata',
'fields' => $fields
'class' => 'um-member-directory-general um-half-column',
'prefix_id' => 'um_metadata',
'fields' => $fields
) )->render_form(); ?>
<div class="um-admin-clear"></div>
+1 -20
View File
@@ -5,29 +5,10 @@ global $post_id; ?>
<div class="um-admin-metabox">
<?php
/*$_um_roles_search_value = array();
$_um_roles_search = get_post_meta( $post_id, '_um_roles_can_search', true );
if ( ! empty( $_um_roles_search ) ) {
foreach ( UM()->roles()->get_roles() as $key => $value ) {
if ( in_array( $key, array_keys( $_um_roles_search ) ) ) {
$_um_roles_search_value[] = $key;
}
}
}*/
$_um_roles_search_value = get_post_meta( $post_id, '_um_roles_can_search', true );
$_um_roles_search_value = empty( $_um_roles_search_value ) ? array() : $_um_roles_search_value;
/*$_um_roles_filter_value = array();
$_um_roles_filter = get_post_meta( $post_id, '_um_roles_can_filter', true );
if ( ! empty( $_um_roles_filter ) ) {
foreach ( UM()->roles()->get_roles() as $key => $value ) {
if ( in_array( $key, array_keys( $_um_roles_filter ) ) ) {
$_um_roles_filter_value[] = $key;
}
}
}*/
$_um_roles_filter_value = get_post_meta( $post_id, '_um_roles_can_filter', true );
$_um_roles_filter_value = empty( $_um_roles_filter_value ) ? array() : $_um_roles_filter_value;
@@ -53,7 +34,7 @@ global $post_id; ?>
* ?>
*/
$custom_search = apply_filters( 'um_admin_custom_search_filters', array() );
$searchable_fields = UM()->builtin()->all_user_fields('date,time,url');
$searchable_fields = UM()->builtin()->all_user_fields( 'date,time,url' );
$searchable_fields = $searchable_fields + $custom_search;
$user_fields = array();
foreach ( $searchable_fields as $key => $arr ) {
+27 -8
View File
@@ -138,26 +138,45 @@ if ( ! class_exists( 'um\Config' ) ) {
) );
$this->core_directory_meta['members'] = array(
'_um_core' => 'members',
'_um_template' => 'members',
'_um_mode' => 'directory',
'_um_view_types' => array( 'grid' ),
'_um_default_view' => 'grid',
'_um_roles' => array(),
'_um_has_profile_photo' => 0,
'_um_has_cover_photo' => 0,
'_um_show_social' => 0,
'_um_show_userinfo' => 0,
'_um_show_tagline' => 0,
'_um_search' => 0,
'_um_userinfo_animate' => '1',
'_um_show_these_users' => '',
'_um_sortby' => 'user_registered_desc',
'_um_sortby_custom' => '',
'_um_enable_sorting' => 0,
'_um_sorting_fields' => array(),
'_um_profile_photo' => '1',
'_um_cover_photos' => '1',
'_um_show_name' => '1',
'_um_show_tagline' => 0,
'_um_tagline_fields' => array(),
'_um_show_userinfo' => 0,
'_um_reveal_fields' => array(),
'_um_show_social' => 0,
'_um_userinfo_animate' => '1',
'_um_search' => 0,
'_um_roles_can_search' => array(),
'_um_filters' => 0,
'_um_roles_can_filter' => array(),
'_um_search_fields' => array(),
'_um_search_filters' => '',
'_um_must_search' => 0,
'_um_max_users' => '',
'_um_profiles_per_page' => 12,
'_um_profiles_per_page_mobile' => 6,
'_um_directory_header' => __( '{total_users} Members', 'ultimate-member' ),
'_um_directory_header_single' => __( '{total_users} Member', 'ultimate-member' ),
'_um_directory_no_users' => __( 'We are sorry. We cannot find any users who match your search criteria.', 'ultimate-member' ),
'_um_profiles_per_page' => 12,
'_um_profiles_per_page_mobile' => 6,
'_um_core' => 'members',
);
$this->core_global_meta_all = array(
+1 -1
View File
@@ -15,7 +15,7 @@ if ( ! class_exists( 'UM' ) ) {
* @method UM_Instagram_API Instagram_API()
* @method UM_Mailchimp Mailchimp()
* @method UM_Messaging_API Messaging_API()
* @method UM_myCRED_API myCRED_API()
* @method UM_myCRED myCRED()
* @method UM_Notices_API Notices_API()
* @method UM_Notifications_API Notifications_API()
* @method UM_Online Online()
+8 -1
View File
@@ -411,6 +411,9 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
* ?>
*/
$attrs = apply_filters( 'um_search_fields', $attrs );
$unique_hash = substr( md5( $directory_data['form_id'] ), 10, 5 );
ob_start();
switch ( $this->filter_types[ $filter ] ) {
@@ -422,6 +425,9 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
}
case 'select': {
// getting value from GET line
$filter_from_url = ! empty( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ? explode( '||', sanitize_text_field( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ) : array();
if ( isset( $attrs['metakey'] ) && strstr( $attrs['metakey'], 'role_' ) ) {
$shortcode_roles = get_post_meta( UM()->shortcodes()->form_id, '_um_roles', true );
$um_roles = UM()->roles()->get_roles( false );
@@ -475,7 +481,8 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
$opt = $k;
} ?>
<option value="<?php echo $opt; ?>" data-value_label="<?php esc_attr_e( $v, 'ultimate-member' ); ?>">
<option value="<?php echo esc_attr( $opt ); ?>" data-value_label="<?php esc_attr_e( $v, 'ultimate-member' ); ?>"
<?php disabled( ! empty( $filter_from_url ) && in_array( $opt, $filter_from_url ) ) ?>>
<?php _e( $v, 'ultimate-member' ); ?>
</option>
-181
View File
@@ -1,181 +0,0 @@
<?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
<div class="um-members">
<div class="um-gutter-sizer"></div>
<?php $i = 0;
foreach ( um_members( 'users_per_page' ) as $member ) {
$i++;
um_fetch_user( $member ); ?>
<div class="um-member um-role-<?php echo esc_attr( um_user( 'role' ) ) . ' ' . esc_attr( um_user('account_status') ); ?> <?php if ( $cover_photos ) { echo 'with-cover'; } ?>">
<span class="um-member-status <?php echo esc_attr( um_user( 'account_status' ) ); ?>"><?php echo esc_html( um_user( 'account_status_name' ) ); ?></span>
<?php if ( $cover_photos ) {
$sizes = UM()->options()->get( 'cover_thumb_sizes' );
if ( UM()->mobile()->isTablet() ) {
$cover_size = $sizes[1];
} else {
$cover_size = $sizes[0];
} ?>
<div class="um-member-cover" data-ratio="<?php echo esc_attr( UM()->options()->get( 'profile_cover_ratio' ) ); ?>">
<div class="um-member-cover-e">
<a href="<?php echo esc_url( um_user_profile_url() ); ?>" title="<?php echo esc_attr( um_user( 'display_name' ) ); ?>">
<?php echo um_user( 'cover_photo', $cover_size ); ?>
</a>
</div>
</div>
<?php }
if ( $profile_photo ) {
$corner = UM()->options()->get( 'profile_photocorner' );
$default_size = UM()->options()->get( 'profile_photosize' );
$default_size = str_replace( 'px', '', $default_size ); ?>
<div class="um-member-photo radius-<?php echo esc_attr( $corner ); ?>">
<a href="<?php echo esc_url( um_user_profile_url() ); ?>" title="<?php echo esc_attr( um_user( 'display_name' ) ); ?>">
<?php echo get_avatar( um_user( 'ID' ), $default_size ); ?>
</a>
</div>
<?php } ?>
<div class="um-member-card <?php if ( ! $profile_photo ) { echo 'no-photo'; } ?>">
<?php if ( $show_name ) { ?>
<div class="um-member-name">
<a href="<?php echo esc_url( um_user_profile_url() ); ?>" title="<?php echo esc_attr( um_user( 'display_name' ) ); ?>">
<?php echo um_user( 'display_name', 'html' ); ?>
</a>
</div>
<?php }
/**
* UM hook
*
* @type action
* @title um_members_just_after_name
* @description Show content just after user name
* @input_vars
* [{"var":"$user_id","type":"int","desc":"User ID"},
* {"var":"$args","type":"array","desc":"Member directory shortcode arguments"}]
* @change_log
* ["Since: 2.0"]
* @usage add_action( 'um_members_just_after_name', 'function_name', 10, 2 );
* @example
* <?php
* add_action( 'um_members_just_after_name', 'my_members_just_after_name', 10, 2 );
* function my_members_just_after_name( $user_id, $args ) {
* // your code here
* }
* ?>
*/
do_action( 'um_members_just_after_name', um_user( 'ID' ), $args );
if ( UM()->roles()->um_current_user_can( 'edit', um_user( 'ID' ) ) ) { ?>
<div class="um-members-edit-btn">
<a href="<?php echo esc_url( um_edit_profile_url() ); ?>" class="um-edit-profile-btn um-button um-alt">
<?php _e( 'Edit profile','ultimate-member' ) ?>
</a>
</div>
<?php }
/**
* UM hook
*
* @type action
* @title um_members_after_user_name
* @description Show content just after user name
* @input_vars
* [{"var":"$user_id","type":"int","desc":"User ID"},
* {"var":"$args","type":"array","desc":"Member directory shortcode arguments"}]
* @change_log
* ["Since: 2.0"]
* @usage add_action( 'um_members_after_user_name', 'function_name', 10, 2 );
* @example
* <?php
* add_action( 'um_members_after_user_name', 'my_members_after_user_name', 10, 2 );
* function my_members_after_user_name( $user_id, $args ) {
* // your code here
* }
* ?>
*/
do_action( 'um_members_after_user_name', um_user( 'ID' ), $args );
if ( $show_tagline && ! empty( $tagline_fields ) && is_array( $tagline_fields ) ) {
um_fetch_user( $member );
foreach( $tagline_fields as $key ) {
if ( $key ) {
$value = um_filtered_value( $key );
if ( ! $value ) {
continue;
} ?>
<div class="um-member-tagline um-member-tagline-<?php echo esc_attr( $key ); ?>">
<?php _e( $value, 'ultimate-member' ); ?>
</div>
<?php } // end if
} // end foreach
} // end if $show_tagline
if ( ! empty( $show_userinfo ) ) { ?>
<div class="um-member-meta-main">
<?php if ( $userinfo_animate ) { ?>
<div class="um-member-more"><a href="javascript:void(0);"><i class="um-faicon-angle-down"></i></a></div>
<?php } ?>
<div class="um-member-meta <?php if ( ! $userinfo_animate ) { echo 'no-animate'; } ?>">
<?php um_fetch_user( $member );
if ( ! empty( $reveal_fields ) && is_array( $reveal_fields ) ) {
foreach ( $reveal_fields as $key ) {
if ( $key ) {
$value = um_filtered_value( $key );
if ( ! $value ) {
continue;
} ?>
<div class="um-member-metaline um-member-metaline-<?php echo esc_attr( $key ); ?>">
<span><strong><?php echo esc_html( UM()->fields()->get_label( $key ) ); ?>:</strong> <?php _e( $value, 'ultimate-member' ); ?></span>
</div>
<?php }
}
}
if ( $show_social ) { ?>
<div class="um-member-connect">
<?php UM()->fields()->show_social_urls(); ?>
</div>
<?php } ?>
</div>
<div class="um-member-less"><a href="javascript:void(0);"><i class="um-faicon-angle-up"></i></a></div>
</div>
<?php } ?>
</div>
</div>
<?php um_reset_user_clean();
} // end foreach
um_reset_user(); ?>
<div class="um-clear"></div>
</div>
+60 -7
View File
@@ -123,15 +123,66 @@ foreach ( $args['view_types'] as $type ) {
UM()->get_template( 'members-header.php', '', $args, true );
UM()->get_template( 'members-pagination.php', '', $args, true );
if( isset( $args['must_search'] ) && $args['must_search'] == 1 ) {
$after_search = 'true';
if ( isset( $args['must_search'] ) && $args['must_search'] == 1 ) {
$must_search = 1;
} else {
$after_search = 'false';
$must_search = 0;
}
$not_searched = false;
if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $search_filters ) ) ) && isset( $args['must_search'] ) && $args['must_search'] == 1 ) {
$not_searched = true;
if ( $search && $show_search && ! empty( $search_from_url ) ) {
$not_searched = false;
} elseif ( $filters && $show_filters && count( $search_filters ) ) {
foreach ( $search_filters as $filter ) {
// getting value from GET line
switch ( UM()->member_directory()->filter_types[ $filter ] ) {
default: {
$not_searched = apply_filters( 'um_member_directory_filter_value_from_url', $not_searched, $filter );
break;
}
case 'select': {
// getting value from GET line
$filter_from_url = ! empty( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ? explode( '||', sanitize_text_field( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ) : array();
if ( ! empty( $filter_from_url ) ) {
$not_searched = false;
}
break;
}
case 'slider': {
// getting value from GET line
$filter_from_url = ! empty( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ? sanitize_text_field( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) : '';
if ( ! empty( $filter_from_url ) ) {
$not_searched = false;
}
break;
}
case 'datepicker':
case 'timepicker': {
// getting value from GET line
$filter_from_url = ! empty( $_GET[ 'filter_' . $filter . '_from_' . $unique_hash ] ) ? sanitize_text_field( $_GET[ 'filter_' . $filter . '_from_' . $unique_hash ] ) : '';
if ( ! empty( $filter_from_url ) ) {
$not_searched = false;
}
break;
}
}
}
}
} ?>
<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-base-post="<?php echo esc_attr( $post->ID ) ?>"
data-show="<?php echo esc_attr( $after_search ); ?>"
data-must-search="<?php echo esc_attr( $must_search ); ?>" data-searched="<?php echo $not_searched ? '0' : '1'; ?>"
data-view_type="<?php echo esc_attr( $current_view ) ?>" data-page="<?php echo esc_attr( $current_page ) ?>">
<div class="um-members-overlay"><div class="um-ajax-loading"></div></div>
<div class="um-form">
@@ -153,7 +204,9 @@ if( isset( $args['must_search'] ) && $args['must_search'] == 1 ) {
if ( ! empty( $args['enable_sorting'] ) && ! empty( $sorting_options ) && count( $sorting_options ) > 1 ) { ?>
<div class="um-member-directory-sorting">
<select class="um-s3 um-member-directory-sorting-options" id="um-member-directory-sorting-select-<?php echo esc_attr( $form_id ) ?>" data-placeholder="<?php esc_attr_e( 'Sort By', 'ultimate-member' ); ?>">
<select class="um-s3 um-member-directory-sorting-options" id="um-member-directory-sorting-select-<?php echo esc_attr( $form_id ) ?>"
data-placeholder="<?php esc_attr_e( 'Sort By', 'ultimate-member' ); ?>"
<?php disabled( $not_searched ) ?>>
<?php foreach ( $sorting_options as $value => $title ) { ?>
<option value="<?php echo $value ?>" <?php selected( $sort_from_url, $value ) ?>><?php echo $title ?></option>
<?php } ?>
@@ -176,13 +229,13 @@ if( isset( $args['must_search'] ) && $args['must_search'] == 1 ) {
foreach ( UM()->member_directory()->view_types as $key => $value ) {
if ( in_array( $key, $args['view_types'] ) ) {
if ( empty( $view_types ) ) { ?>
<div class="um-member-directory-view-type">
<div class="um-member-directory-view-type<?php if ( $not_searched ) {?> um-disabled<?php } ?>">
<?php }
$view_types++; ?>
<a href="javascript:void(0)"
class="um-member-directory-view-type-a um-tip-n"
class="um-member-directory-view-type-a<?php if ( ! $not_searched ) {?> um-tip-n<?php } ?>"
data-type="<?php echo $key; ?>"
title="<?php printf( esc_attr__( 'Change to %s', 'ultimate-member' ), $value['title'] ) ?>"
default-title="<?php echo esc_attr( $value['title'] ); ?>"