mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-15 20:53:39 +09:00
- visual improvements for member directory;
- fixed must search/filter option;
This commit is contained in:
@@ -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
@@ -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 );
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -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>
|
||||
|
||||
@@ -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 ) {
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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
@@ -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'] ); ?>"
|
||||
|
||||
Reference in New Issue
Block a user