- member directory styles;

This commit is contained in:
nikitasinelnikov
2019-09-23 13:34:25 +03:00
parent 912791e5a9
commit cf118d137d
21 changed files with 2039 additions and 1353 deletions
+711 -502
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -60,9 +60,9 @@
}
.um.um-in-admin .um-tip {display: none !important}
.um input,
.um select,
.um textarea{
.um:not(.um-directory) input,
.um:not(.um-directory) select,
.um:not(.um-directory) textarea{
font-size: 15px;
}
+83
View File
@@ -0,0 +1,83 @@
var um_dropdown_triggers = {};
function um_init_new_dropdown() {
jQuery('.um-new-dropdown').each( function() {
var menu = jQuery(this);
var is_inited = menu.data( 'um-dropdown-inited' );
if ( is_inited ) {
return;
}
var element = menu.data('element');
var trigger = menu.data('trigger');
menu.data( 'um-dropdown-inited', true );
if ( -1 === jQuery.inArray( element, um_dropdown_triggers[ trigger ] ) ) {
jQuery( document.body ).on( trigger, element, function(e) {
var obj = jQuery(this);
if ( obj.data( 'um-new-dropdown-show' ) === true ) {
obj.data( 'um-new-dropdown-show', false );
obj.find( '.um-new-dropdown' ).hide();
} else {
jQuery('.um-new-dropdown').hide();
jQuery('.um-new-dropdown').parent().data( 'um-new-dropdown-show', false );
if ( ! obj.find( '.um-new-dropdown' ).length ) {
var dropdown_layout = menu.clone();
// dropdown_layout.css({
// top : '20px',
// width: '150px',
// right: 0
// });
obj.append( dropdown_layout );
obj.trigger( 'fmwp_dropdown_render', { dropdown_layout:dropdown_layout, trigger:trigger, element:element, obj:obj} );
dropdown_layout.show();
} else {
obj.find( '.um-new-dropdown' )./*css({
top : '20px',
width: '150px',
right: 0
}).*/show();
}
obj.data( 'um-new-dropdown-show', true );
jQuery( document.body ).bind( 'click', function( event ) {
if ( jQuery('.um-new-dropdown').find( '.' + jQuery( event.target ).attr('class').replace( ' ', '.' ) ).length === 0 &&
'.' + jQuery(event.target).parent().attr('class') !== element ) {
//event = ev;
jQuery('.um-new-dropdown').hide();
jQuery('.um-new-dropdown').parent().data( 'um-new-dropdown-show', false );
jQuery( document.body ).unbind( event );
}
});
}
});
if ( typeof um_dropdown_triggers[ trigger ] == 'undefined' ) {
um_dropdown_triggers[ trigger ] = [];
}
um_dropdown_triggers[ trigger ].push( element );
}
});
}
jQuery( document ).ready( function($) {
um_init_new_dropdown();
jQuery( document.body ).on( 'click', '.um-new-dropdown a', function(e) {
jQuery(this).parents('.um-new-dropdown').hide();
jQuery(this).parents('.um-new-dropdown').parent().data( 'um-new-dropdown-show', false );
jQuery('body').trigger('click');
e.stopPropagation();
});
});
+1
View File
@@ -0,0 +1 @@
var um_dropdown_triggers={};function um_init_new_dropdown(){jQuery(".um-new-dropdown").each(function(){var r=jQuery(this);if(!r.data("um-dropdown-inited")){var e=r.data("element"),u=r.data("trigger");r.data("um-dropdown-inited",!0),-1===jQuery.inArray(e,um_dropdown_triggers[u])&&(jQuery(document.body).on(u,e,function(d){var n=jQuery(this);if(!0===n.data("um-new-dropdown-show"))n.data("um-new-dropdown-show",!1),n.find(".um-new-dropdown").hide();else{if(jQuery(".um-new-dropdown").hide(),jQuery(".um-new-dropdown").parent().data("um-new-dropdown-show",!1),n.find(".um-new-dropdown").length)n.find(".um-new-dropdown").show();else{var o=r.clone();n.append(o),n.trigger("fmwp_dropdown_render",{dropdown_layout:o,trigger:u,element:e,obj:n}),o.show()}n.data("um-new-dropdown-show",!0),jQuery(document.body).bind("click",function(d){0===jQuery(".um-new-dropdown").find("."+jQuery(d.target).attr("class").replace(" ",".")).length&&"."+jQuery(d.target).parent().attr("class")!==e&&(jQuery(".um-new-dropdown").hide(),jQuery(".um-new-dropdown").parent().data("um-new-dropdown-show",!1),jQuery(document.body).unbind(d))})}}),void 0===um_dropdown_triggers[u]&&(um_dropdown_triggers[u]=[]),um_dropdown_triggers[u].push(e))}})}jQuery(document).ready(function(d){um_init_new_dropdown(),jQuery(document.body).on("click",".um-new-dropdown a",function(d){jQuery(this).parents(".um-new-dropdown").hide(),jQuery(this).parents(".um-new-dropdown").parent().data("um-new-dropdown-show",!1),jQuery("body").trigger("click"),d.stopPropagation()})});
+7 -1
View File
@@ -104,8 +104,14 @@ function UM_domenus() {
} else if ( position === 'bc' ) {
var top_o = 0;
var top_offset = menu.data('top-offset');
if ( typeof top_offset !== 'undefined' ) {
top_o = top_offset*1;
}
menu.css({
'top' : top_p,
'top' : top_p + top_o,
'width': 200,
'left': left_p,
'right' : 'auto',
+1 -1
View File
File diff suppressed because one or more lines are too long
+68 -17
View File
@@ -129,11 +129,13 @@ function um_get_search( directory ) {
}
function um_get_sort( directory ) {
if ( directory.find('.um-member-directory-sorting-options').length ) {
return directory.data( 'sorting' );
/*if ( directory.find('.um-member-directory-sorting-options').length ) {
return directory.find( '.um-member-directory-sorting-options' ).val();
} else {
return '';
}
}*/
}
function um_get_current_page( directory ) {
@@ -236,6 +238,8 @@ function um_ajax_get_members( directory, args ) {
//args.directory = directory;
jQuery( document ).trigger('um_members_rendered', args );
um_init_new_dropdown();
um_members_hide_preloader( directory );
},
error: function( data ) {
@@ -416,8 +420,10 @@ function um_change_tag( directory ) {
if ( directory.find( '.um-members-filter-remove' ).length === 0 ) {
directory.find('.um-clear-filters').hide();
directory.find('.um-clear-filters').parents('.um-member-directory-header-row').addClass( 'um-header-row-invisible' );
} else {
directory.find('.um-clear-filters').show();
directory.find('.um-clear-filters').parents('.um-member-directory-header-row').removeClass( 'um-header-row-invisible' );
}
}
@@ -582,21 +588,30 @@ jQuery(document).ready( function() {
/**
* Sorting
*/
jQuery( document.body ).on( 'change', '.um-member-directory-sorting-options', function() {
jQuery( document.body ).on( 'click', '.um-member-directory-sorting-a .um-new-dropdown li a', function() {
var directory = jQuery(this).parents('.um-directory');
if ( um_is_directory_busy( directory ) ) {
return;
}
if ( jQuery( this ).data('selected') === 1 ) {
return;
}
um_members_show_preloader( directory );
var sort = jQuery(this).val();
var sort = jQuery(this).data('value');
directory.data( 'sorting', jQuery(this).val() );
directory.data( 'sorting', sort );
um_set_url_from_data( directory, 'sort', sort );
um_ajax_get_members( directory );
jQuery( this ).parents('.um-new-dropdown').find('a').data('selected', 0).prop('data-selected', 0).attr('data-selected', 0);
jQuery( this ).data('selected', 1).prop('data-selected', 1).attr('data-selected', 1);
jQuery( this ).parents('.um-member-directory-sorting-a').find('> a').html( jQuery( this ).html() );
});
/**
@@ -695,7 +710,32 @@ jQuery(document).ready( function() {
* Profile Cards actions
*/
jQuery( document.body ).on('click', '.um-member-more a', function(e){
jQuery( document.body ).on('click', '.um-members.um-members-list .um-member-more a', function(e){
e.preventDefault();
var block = jQuery(this).parents('.um-member');
block.find('.um-member-more').hide();
block.find('.um-member-meta-main').slideDown();
block.find('.um-member-less').fadeIn();
return false;
});
jQuery( document.body ).on('click', '.um-members.um-members-list .um-member-less a', function(e){
e.preventDefault();
var block = jQuery(this).parents('.um-member');
block.find('.um-member-less').hide();
block.find('.um-member-meta-main').slideUp();
block.find('.um-member-more').fadeIn();
return false;
});
jQuery( document.body ).on('click', '.um-members.um-members-grid .um-member-more a', function(e){
e.preventDefault();
var block = jQuery(this).parents('.um-member');
@@ -709,7 +749,7 @@ jQuery(document).ready( function() {
return false;
});
jQuery( document.body ).on('click', '.um-member-less a', function(e){
jQuery( document.body ).on('click', '.um-members.um-members-grid .um-member-less a', function(e){
e.preventDefault();
var block = jQuery(this).parents('.um-member');
@@ -729,13 +769,25 @@ jQuery(document).ready( function() {
//filters controls
jQuery('.um-member-directory-filters a').click( function() {
var search_bar = jQuery(this).parents('.um-directory').find('.um-search');
jQuery('.um-member-directory-filters-a').click( function() {
var obj = jQuery(this);
var search_bar = obj.parents('.um-directory').find('.um-search');
if ( search_bar.is( ':visible' ) ) {
search_bar.slideUp(250);
search_bar.slideUp( 250, function(){
obj.toggleClass('um-member-directory-filters-visible');
search_bar.parents('.um-member-directory-header-row').toggleClass('um-header-row-invisible');
});
} else {
search_bar.slideDown(250);
search_bar.slideDown({
start: function() {
jQuery(this).css({
display: "grid"
});
obj.toggleClass('um-member-directory-filters-visible');
search_bar.parents('.um-member-directory-header-row').toggleClass('um-header-row-invisible');
}
}, 250 );
}
});
@@ -1210,11 +1262,10 @@ jQuery(document).ready( function() {
um_change_tag( directory );
});
//
// jQuery(document).on( 'um_members_rendered', function( event, args ) {
// if ( args.first_load ) {
// um_change_tag( args.directory );
// }
// });
//history events when back/forward and change window.location.hash
window.addEventListener( "popstate", function(e) {
});
});
+1 -1
View File
File diff suppressed because one or more lines are too long
+3 -1
View File
@@ -1,2 +1,4 @@
$border: #ddd
$hover: #ccc
$hover: #ccc
$shadow1: rgba(50,50,93,.1)
$shadow2: rgba(0,0,0,.07)
+6 -1
View File
@@ -26,4 +26,9 @@
@-ms-keyframes #{$name}
@content
@keyframes #{$name}
@content
@content
=border-radius ($tl, $tr, $br, $bl)
border-radius: $tl $tr $br $bl
-moz-border-radius: $tl $tr $br $bl
-webkit-border-radius: $tl $tr $br $bl
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -28,7 +28,7 @@ if ( ! class_exists( 'UM' ) ) {
* @method UM_Verified_Users_API Verified_Users_API()
* @method UM_WooCommerce_API WooCommerce_API()
* @method UM_Terms_Conditions Terms_Conditions()
* @method UM_Private_Content_API Private_Content_API()
* @method UM_Private_Content Private_Content()
* @method UM_User_Location User_Location()
* @method UM_Photos_API Photos_API()
* @method UM_Groups Groups()
@@ -520,6 +520,7 @@ if ( ! class_exists( 'UM' ) ) {
$this->notices();
$this->admin_navmenu();
$this->theme_updater();
$this->access();
} elseif ( $this->is_request( 'admin' ) ) {
$this->admin();
$this->admin_menu();
+3 -1
View File
@@ -135,7 +135,9 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) {
) );
wp_localize_script( 'um_scripts', 'um_scripts', $localize_data );
wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider' ), ultimatemember_version, true );
wp_register_script('um_dropdown', $this->js_baseurl . 'dropdown' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown' ), ultimatemember_version, true );
wp_register_script('um_profile', $this->js_baseurl . 'um-profile' . $this->suffix . '.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true );
wp_register_script('um_account', $this->js_baseurl . 'um-account' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
+160 -22
View File
@@ -195,13 +195,13 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
// Sort
$this->sort_fields = apply_filters( 'um_members_directory_sort_fields', array(
'user_registered_desc' => __( 'New Users First', 'ultimate-member' ),
'user_registered_asc' => __( 'Old Users First', 'ultimate-member' ),
'user_registered_desc' => __( 'New users first', 'ultimate-member' ),
'user_registered_asc' => __( 'Old users first', 'ultimate-member' ),
'username' => __( 'Username', 'ultimate-member' ),
'first_name' => __( 'First Name', 'ultimate-member' ),
'last_name' => __( 'Last Name', 'ultimate-member' ),
'display_name' => __( 'Display Name', 'ultimate-member' ),
'last_login' => __( 'Last Login', 'ultimate-member' ),
'first_name' => __( 'First name', 'ultimate-member' ),
'last_name' => __( 'Last name', 'ultimate-member' ),
'display_name' => __( 'Display name', 'ultimate-member' ),
'last_login' => __( 'Last login', 'ultimate-member' ),
) );
asort( $this->sort_fields );
@@ -503,7 +503,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
<input type="hidden" id="<?php echo $filter; ?>_min" name="<?php echo $filter; ?>[]" class="um_range_min" />
<input type="hidden" id="<?php echo $filter; ?>_max" name="<?php echo $filter; ?>[]" class="um_range_max" />
<div class="um-slider" data-field_name="<?php echo $filter; ?>" data-min="<?php echo $range[0] ?>" data-max="<?php echo $range[1] ?>"></div>
<div class="um-slider-range" data-placeholder="<?php echo esc_attr( $placeholder ); ?>" data-label="<?php esc_attr_e( stripslashes( $attrs['label'] ), 'ultimate-member' ); ?>"></div>
<div class="um-slider-range" data-placeholder="<?php echo esc_attr( $placeholder ); ?>" data-label="<?php echo ( ! empty( $attrs['label'] ) ) ? esc_attr__( stripslashes( $attrs['label'] ), 'ultimate-member' ) : ''; ?>"></div>
<?php }
break;
@@ -516,12 +516,12 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
if ( $range ) { ?>
<input type="text" id="<?php echo $filter; ?>_from" name="<?php echo $filter; ?>_from" class="um-half-filter um-datepicker-filter"
<input type="text" id="<?php echo $filter; ?>_from" name="<?php echo $filter; ?>_from" class="um-datepicker-filter"
placeholder="<?php esc_attr_e( sprintf( '%s From', stripslashes( $label ) ), 'ultimate-member' ); ?>"
data-filter-label="<?php echo esc_attr( stripslashes( $label ) ); ?>"
data-date_min="<?php echo $range[0] ?>" data-date_max="<?php echo $range[1] ?>"
data-filter_name="<?php echo $filter; ?>" data-range="from" />
<input type="text" id="<?php echo $filter; ?>_to" name="<?php echo $filter; ?>_to" class="um-half-filter um-datepicker-filter"
<input type="text" id="<?php echo $filter; ?>_to" name="<?php echo $filter; ?>_to" class="um-datepicker-filter"
placeholder="<?php esc_attr_e( sprintf( '%s To', stripslashes( $label ) ), 'ultimate-member' ); ?>"
data-filter-label="<?php echo esc_attr( stripslashes( $label ) ); ?>"
data-date_min="<?php echo $range[0] ?>" data-date_max="<?php echo $range[1] ?>"
@@ -551,13 +551,13 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
if ( $range ) { ?>
<input type="text" id="<?php echo $filter; ?>_from" name="<?php echo $filter; ?>_from" class="um-half-filter um-timepicker-filter"
<input type="text" id="<?php echo $filter; ?>_from" name="<?php echo $filter; ?>_from" class="um-timepicker-filter"
placeholder="<?php esc_attr_e( sprintf( '%s From', stripslashes( $label ) ), 'ultimate-member' ); ?>"
data-filter-label="<?php echo esc_attr( stripslashes( $label ) ); ?>"
data-min="<?php echo $range[0] ?>" data-max="<?php echo $range[1] ?>"
data-format="<?php echo esc_attr( $js_format ) ?>" data-intervals="<?php echo esc_attr( $attrs['intervals'] ) ?>"
data-filter_name="<?php echo $filter; ?>" data-range="from" />
<input type="text" id="<?php echo $filter; ?>_to" name="<?php echo $filter; ?>_to" class="um-half-filter um-timepicker-filter"
<input type="text" id="<?php echo $filter; ?>_to" name="<?php echo $filter; ?>_to" class="um-timepicker-filter"
placeholder="<?php esc_attr_e( sprintf( '%s To', stripslashes( $label ) ), 'ultimate-member' ); ?>"
data-filter-label="<?php echo esc_attr( stripslashes( $label ) ); ?>"
data-min="<?php echo $range[0] ?>" data-max="<?php echo $range[1] ?>"
@@ -1159,6 +1159,8 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
),
);
$meta_query = apply_filters( 'um_member_directory_general_search_meta_query', $meta_query, $_POST['search'] );
$this->query_args['meta_query'][] = $meta_query;
}
}
@@ -1212,7 +1214,9 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
// Add OR instead AND to search in WP core fields user_email, user_login, user_display_name
$search_where = $context->get_search_sql( $search, UM()->member_directory()->core_search_fields, 'both' );
$search_where = preg_replace( '/ AND \((.*?)\)/im', " AND ( $1 )", $search_where );
$replacement = apply_filters( 'um_member_directory_organic_search_replacement', " AND ( $1 )" );
$search_where = preg_replace( '/ AND \((.*?)\)/im', $replacement, $search_where );
$sql['where'] = $sql['where'] . $search_where;
}
@@ -1222,6 +1226,17 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
}
/**
* Use OR in search query if there is only searching, but with filters there will be AND conditional
* @param $replacement
*
* @return string
*/
function organic_replacement( $replacement ) {
return " OR ( $1 )";
}
/**
* Handle filters request
*/
@@ -1236,6 +1251,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
}
if ( empty( $filter_query ) ) {
add_filter( 'um_member_directory_organic_search_replacement', array( &$this, 'organic_replacement' ) );
return;
}
@@ -1505,6 +1521,89 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
}
/**
* @param int $user_id
*
* @return array
*/
function build_user_actions_list( $user_id ) {
$actions = array();
if ( ! is_user_logged_in() ) {
return $actions;
}
if ( get_current_user_id() != $user_id ) {
if ( UM()->roles()->um_current_user_can( 'edit', $user_id ) ) {
$actions['um-editprofile'] = array(
'title' => __( 'Edit Profile', 'ultimate-member' ),
'url' => um_edit_profile_url(),
);
}
/**
* UM hook
*
* @type filter
* @title um_admin_user_actions_hook
* @description Extend admin actions for each user
* @input_vars
* [{"var":"$actions","type":"array","desc":"Actions for user"}]
* @change_log
* ["Since: 2.0"]
* @usage
* <?php add_filter( 'um_admin_user_actions_hook', 'function_name', 10, 1 ); ?>
* @example
* <?php
* add_filter( 'um_admin_user_actions_hook', 'my_admin_user_actions', 10, 1 );
* function my_admin_user_actions( $actions ) {
* // your code here
* return $actions;
* }
* ?>
*/
$admin_actions = apply_filters( 'um_admin_user_actions_hook', null, $user_id );
if ( ! empty( $admin_actions ) ) {
foreach ( $admin_actions as $id => $arr ) {
$url = add_query_arg( array( 'um_action' => $id, 'uid' => $user_id ), um_get_core_page( 'user' ) );
$actions[ $id ] = array(
'title' => $arr['label'],
'url' => $url,
);
}
}
$actions = apply_filters( 'um_member_directory_users_card_actions', $actions, $user_id );
} else {
if ( empty( UM()->user()->cannot_edit ) ) {
$actions['um-editprofile'] = array(
'title' => __( 'Edit Profile', 'ultimate-member' ),
'url' => um_edit_profile_url(),
);
}
$actions['um-myaccount'] = array(
'title' => __( 'My Account', 'ultimate-member' ),
'url' => um_get_core_page( 'account' ),
);
$actions['um-logout'] = array(
'title' => __( 'Logout', 'ultimate-member' ),
'url' => um_get_core_page( 'logout' ),
);
$actions = apply_filters( 'um_member_directory_my_user_card_actions', $actions, $user_id );
}
return $actions;
}
/**
* @param int $user_id
* @param array $directory_data
@@ -1514,17 +1613,10 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
function build_user_card_data( $user_id, $directory_data ) {
um_fetch_user( $user_id );
$can_edit = UM()->roles()->um_current_user_can( 'edit', $user_id ) || UM()->roles()->um_user_can( 'can_edit_everyone' );
$dropdown_actions = $this->build_user_actions_list( $user_id );
$actions = array();
if ( $can_edit ) {
$actions[] = array(
'title' => __( 'Edit profile', 'ultimate-member' ),
'url' => um_edit_profile_url(),
'wrapper_class' => 'um-members-edit-btn',
'class' => 'um-edit-profile-btn um-button um-alt',
);
}
$can_edit = UM()->roles()->um_current_user_can( 'edit', $user_id ) || UM()->roles()->um_user_can( 'can_edit_everyone' );
// Replace hook 'um_members_just_after_name'
ob_start();
@@ -1548,7 +1640,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
'edit_profile_url' => um_edit_profile_url(),
'avatar' => get_avatar( $user_id, $this->avatar_size ),
'display_name_html' => um_user( 'display_name', 'html' ),
'actions' => $actions,
'dropdown_actions' => $dropdown_actions,
'hook_just_after_name' => preg_replace( '/^\s+/im', '', $hook_just_after_name ),
'hook_after_user_name' => preg_replace( '/^\s+/im', '', $hook_after_user_name ),
);
@@ -1726,6 +1818,8 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
$user_query = new \WP_User_Query( $this->query_args );
//var_dump( $user_query->request );
remove_filter( 'get_meta_sql', array( &$this, 'change_meta_sql' ), 10 );
/**
@@ -1802,5 +1896,49 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
wp_send_json_success( array( 'pagination' => $pagination_data, 'users' => $users, 'args' => $data_args ) );
}
/**
* New menu
*
* @param string $element
* @param string $trigger
* @param array $items
*/
function dropdown_menu( $element, $trigger, $items = array() ) {
?>
<div class="um-new-dropdown" data-element="<?php echo $element; ?>" data-trigger="<?php echo $trigger; ?>">
<ul>
<?php foreach ( $items as $k => $v ) { ?>
<li><?php echo $v; ?></li>
<?php } ?>
</ul>
</div>
<?php
}
/**
* New menu JS
*
* @param string $element
* @param string $trigger
* @param string $item
*/
function dropdown_menu_js( $element, $trigger, $item ) {
?>
<div class="um-new-dropdown" data-element="<?php echo $element; ?>" data-trigger="<?php echo $trigger; ?>">
<ul>
<# _.each( <?php echo $item; ?>.dropdown_actions, function( action, key, list ) { #>
<li><a href="<# if ( typeof action.url != 'undefined' ) { #>{{{action.url}}}<# } else { #>javascript:void(0);<# }#>" class="{{{key}}}">{{{action.title}}}</a></li>
<# }); #>
</ul>
</div>
<?php
}
}
}
+8 -3
View File
@@ -418,11 +418,16 @@ if ( ! class_exists( 'um\core\Profile' ) ) {
* @param string $element
* @param string $trigger
* @param array $items
* @param array $args
*/
function new_ui( $position, $element, $trigger, $items ) {
?>
function new_ui( $position, $element, $trigger, $items, $args = array() ) {
<div class="um-dropdown" data-element="<?php echo esc_attr( $element ); ?>" data-position="<?php echo esc_attr( $position ); ?>" data-trigger="<?php echo esc_attr( $trigger ); ?>">
$additional_data = '';
foreach ( $args as $key => $value ) {
$additional_data .= " data-{$key}=\"{$value}\"";
} ?>
<div class="um-dropdown" data-element="<?php echo esc_attr( $element ); ?>" data-position="<?php echo esc_attr( $position ); ?>" data-trigger="<?php echo esc_attr( $trigger ); ?>"<?php echo $additional_data ?>>
<div class="um-dropdown-b">
<div class="um-dropdown-arr"><i class=""></i></div>
<ul>
+1 -2
View File
@@ -1494,7 +1494,6 @@ if ( ! class_exists( 'um\core\User' ) ) {
*/
function get_admin_actions() {
$items = array();
$actions = array();
/**
* UM hook
@@ -1517,7 +1516,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
* }
* ?>
*/
$actions = apply_filters( 'um_admin_user_actions_hook', $actions );
$actions = apply_filters( 'um_admin_user_actions_hook', null, um_profile_id() );
if ( ! isset( $actions ) || empty( $actions ) ) {
return false;
}
+7 -6
View File
@@ -4,16 +4,17 @@
/**
* Main admin user actions
*
* @param $actions
* @param array $actions
* @param int $user_id
*
* @return null
*/
function um_admin_user_actions_hook( $actions ) {
function um_admin_user_actions_hook( $actions, $user_id ) {
$actions = null;
um_fetch_user( um_profile_id() );
um_fetch_user( $user_id );
//if ( UM()->roles()->um_current_user_can( 'edit', um_profile_id() ) ) {
//if ( UM()->roles()->um_current_user_can( 'edit', $user_id ) ) {
if ( current_user_can( 'manage_options' ) ) {
if ( um_user( 'account_status' ) == 'awaiting_admin_review' ) {
@@ -43,7 +44,7 @@ function um_admin_user_actions_hook( $actions ) {
}
if ( UM()->roles()->um_current_user_can( 'delete', um_profile_id() ) ) {
if ( UM()->roles()->um_current_user_can( 'delete', $user_id ) ) {
$actions['um_delete'] = array( 'label' => __( 'Delete this user', 'ultimate-member' ) );
}
@@ -53,7 +54,7 @@ function um_admin_user_actions_hook( $actions ) {
return $actions;
}
add_filter( 'um_admin_user_actions_hook', 'um_admin_user_actions_hook', 1 );
add_filter( 'um_admin_user_actions_hook', 'um_admin_user_actions_hook', 10, 2 );
/**
+162 -137
View File
@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Ultimate Member\n"
"POT-Creation-Date: 2019-08-30 15:28+0300\n"
"PO-Revision-Date: 2019-08-30 15:28+0300\n"
"POT-Creation-Date: 2019-09-19 15:59+0300\n"
"PO-Revision-Date: 2019-09-19 15:59+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: en_US\n"
@@ -21,7 +21,7 @@ msgstr ""
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPathExcluded-0: *.js\n"
#: includes/admin/class-admin-functions.php:35 includes/class-functions.php:45
#: includes/admin/class-admin-functions.php:35 includes/class-functions.php:55
msgid "Wrong Nonce"
msgstr ""
@@ -103,7 +103,7 @@ msgstr ""
#: includes/admin/core/class-admin-builder.php:764
#: includes/admin/core/class-admin-dragdrop.php:33
#: includes/admin/core/class-admin-menu.php:106
#: includes/core/class-fields.php:4287
#: includes/core/class-fields.php:4317
msgid "Please login as administrator"
msgstr ""
@@ -253,8 +253,8 @@ msgstr ""
#: includes/admin/templates/form/register_customize.php:80
#: includes/admin/templates/form/register_gdpr.php:27
#: includes/core/class-builtin.php:1135 includes/core/class-builtin.php:1150
#: includes/core/class-member-directory.php:765
#: includes/core/um-filters-members.php:69
#: includes/core/class-member-directory.php:846
#: includes/core/um-filters-members.php:40
msgid "Yes"
msgstr ""
@@ -1278,7 +1278,7 @@ msgid "The text that appears on the button. e.g. Upload"
msgstr ""
#: includes/admin/core/class-admin-metabox.php:1942
#: includes/core/class-fields.php:1581 includes/core/class-fields.php:1622
#: includes/core/class-fields.php:1592 includes/core/class-fields.php:1633
msgid "Upload"
msgstr ""
@@ -1520,7 +1520,7 @@ msgid ""
msgstr ""
#: includes/admin/core/class-admin-metabox.php:2213
#: includes/class-config.php:134 includes/class-config.php:759
#: includes/class-config.php:134 includes/class-config.php:778
msgid "Members"
msgstr ""
@@ -2015,7 +2015,7 @@ msgstr ""
#: includes/admin/core/class-admin-settings.php:393
#: includes/admin/core/class-admin-settings.php:410
#: includes/core/class-builtin.php:674 includes/core/class-builtin.php:677
#: includes/core/class-member-directory.php:108
#: includes/core/class-member-directory.php:200
msgid "Username"
msgstr ""
@@ -2179,7 +2179,7 @@ msgid ""
msgstr ""
#: includes/admin/core/class-admin-settings.php:479
#: includes/class-config.php:136 includes/class-config.php:761
#: includes/class-config.php:136 includes/class-config.php:780
#: includes/core/class-account.php:93
msgid "Account"
msgstr ""
@@ -3129,7 +3129,7 @@ msgid "UM Action"
msgstr ""
#: includes/admin/core/class-admin-users.php:124
#: includes/core/class-fields.php:2474
#: includes/core/class-fields.php:2485
msgid "Apply"
msgstr ""
@@ -3239,7 +3239,7 @@ msgstr ""
#: includes/admin/core/list-tables/roles-list-table.php:22
#: includes/admin/core/list-tables/roles-list-table.php:89
#: includes/admin/core/list-tables/roles-list-table.php:402
#: includes/core/class-member-directory.php:178
#: includes/core/class-member-directory.php:270
msgid "Roles"
msgstr ""
@@ -3631,7 +3631,7 @@ msgid ""
msgstr ""
#: includes/admin/templates/directory/pagination.php:46
#: includes/class-config.php:155 includes/class-config.php:251
#: includes/class-config.php:177 includes/class-config.php:270
msgid "{total_users} Members"
msgstr ""
@@ -3644,7 +3644,7 @@ msgid "Same as above but in case of 1 user found only"
msgstr ""
#: includes/admin/templates/directory/pagination.php:53
#: includes/class-config.php:156 includes/class-config.php:252
#: includes/class-config.php:178 includes/class-config.php:271
msgid "{total_users} Member"
msgstr ""
@@ -3658,7 +3658,7 @@ msgid ""
msgstr ""
#: includes/admin/templates/directory/pagination.php:60
#: includes/class-config.php:157
#: includes/class-config.php:179
msgid "We are sorry. We cannot find any users who match your search criteria."
msgstr ""
@@ -3688,7 +3688,7 @@ msgstr ""
#: includes/admin/templates/directory/profile.php:48
#: includes/admin/templates/directory/profile.php:63
#: includes/admin/templates/directory/search.php:111
#: includes/admin/templates/directory/search.php:92
msgid "Add New Custom Field"
msgstr ""
@@ -3708,47 +3708,47 @@ msgstr ""
msgid "Enable reveal section transition by default"
msgstr ""
#: includes/admin/templates/directory/search.php:73
#: includes/admin/templates/directory/search.php:54
msgid "Enable Search feature"
msgstr ""
#: includes/admin/templates/directory/search.php:74
#: includes/admin/templates/directory/search.php:55
msgid "If turned on, users will be able to search members in this directory"
msgstr ""
#: includes/admin/templates/directory/search.php:80
#: includes/admin/templates/directory/search.php:61
msgid "User Roles that can use search"
msgstr ""
#: includes/admin/templates/directory/search.php:81
#: includes/admin/templates/directory/search.php:62
msgid "If you want to allow specific user roles to be able to search only"
msgstr ""
#: includes/admin/templates/directory/search.php:90
#: includes/admin/templates/directory/search.php:71
msgid "Enable Filters feature"
msgstr ""
#: includes/admin/templates/directory/search.php:91
#: includes/admin/templates/directory/search.php:72
msgid "If turned on, users will be able to filter members in this directory"
msgstr ""
#: includes/admin/templates/directory/search.php:97
#: includes/admin/templates/directory/search.php:78
msgid "User Roles that can use filters"
msgstr ""
#: includes/admin/templates/directory/search.php:98
#: includes/admin/templates/directory/search.php:79
msgid "If you want to allow specific user roles to be able to filter only"
msgstr ""
#: includes/admin/templates/directory/search.php:107
#: includes/admin/templates/directory/search.php:88
msgid "Choose filter(s) meta to enable"
msgstr ""
#: includes/admin/templates/directory/search.php:117
#: includes/admin/templates/directory/search.php:98
msgid "Default filters"
msgstr ""
#: includes/admin/templates/directory/search.php:118
#: includes/admin/templates/directory/search.php:99
msgid "You can set default filters like URL parameters"
msgstr ""
@@ -4136,7 +4136,9 @@ msgstr ""
#: includes/admin/templates/modal/dynamic_new_group.php:18
#: includes/admin/templates/modal/fonticons.php:14
#: includes/admin/templates/role/publish.php:24
#: includes/core/class-fields.php:2475 includes/core/class-fields.php:2572
#: includes/core/class-fields.php:2486 includes/core/class-fields.php:2583
#: includes/core/class-member-directory.php:1552
#: includes/core/class-member-directory.php:1559
#: includes/core/um-actions-profile.php:641
#: includes/core/um-actions-profile.php:653
#: includes/core/um-actions-profile.php:796
@@ -4491,141 +4493,142 @@ msgstr ""
msgid "Check All"
msgstr ""
#: includes/class-config.php:131 includes/class-config.php:756
#: includes/class-config.php:131 includes/class-config.php:775
msgid "User"
msgstr ""
#: includes/class-config.php:132 includes/class-config.php:238
#: includes/class-config.php:244 includes/class-config.php:757
#: includes/class-config.php:132 includes/class-config.php:257
#: includes/class-config.php:263 includes/class-config.php:776
msgid "Login"
msgstr ""
#: includes/class-config.php:133 includes/class-config.php:236
#: includes/class-config.php:248 includes/class-config.php:758
#: includes/class-config.php:133 includes/class-config.php:255
#: includes/class-config.php:267 includes/class-config.php:777
msgid "Register"
msgstr ""
#: includes/class-config.php:135 includes/class-config.php:760
#: includes/class-config.php:135 includes/class-config.php:779
#: includes/core/class-member-directory.php:1558
#: includes/core/um-actions-profile.php:1180
#: includes/core/um-actions-user.php:19
msgid "Logout"
msgstr ""
#: includes/class-config.php:137 includes/class-config.php:762
#: includes/class-config.php:137 includes/class-config.php:781
msgid "Password Reset"
msgstr ""
#: includes/class-config.php:311
#: includes/class-config.php:330
msgid "Account Welcome Email"
msgstr ""
#: includes/class-config.php:322
#: includes/class-config.php:341
msgid ""
"Whether to send the user an email when his account is automatically approved"
msgstr ""
#: includes/class-config.php:328
#: includes/class-config.php:347
msgid "Account Activation Email"
msgstr ""
#: includes/class-config.php:336
#: includes/class-config.php:355
msgid ""
"Whether to send the user an email when his account needs e-mail activation"
msgstr ""
#: includes/class-config.php:341
#: includes/class-config.php:360
msgid "Your account is pending review"
msgstr ""
#: includes/class-config.php:349
#: includes/class-config.php:368
msgid "Whether to send the user an email when his account needs admin review"
msgstr ""
#: includes/class-config.php:354
#: includes/class-config.php:373
msgid "Account Approved Email"
msgstr ""
#: includes/class-config.php:366
#: includes/class-config.php:385
msgid "Whether to send the user an email when his account is approved"
msgstr ""
#: includes/class-config.php:371
#: includes/class-config.php:390
msgid "Account Rejected Email"
msgstr ""
#: includes/class-config.php:378
#: includes/class-config.php:397
msgid "Whether to send the user an email when his account is rejected"
msgstr ""
#: includes/class-config.php:383
#: includes/class-config.php:402
msgid "Account Deactivated Email"
msgstr ""
#: includes/class-config.php:390
#: includes/class-config.php:409
msgid "Whether to send the user an email when his account is deactivated"
msgstr ""
#: includes/class-config.php:396
#: includes/class-config.php:415
msgid "Account Deleted Email"
msgstr ""
#: includes/class-config.php:403
#: includes/class-config.php:422
msgid "Whether to send the user an email when his account is deleted"
msgstr ""
#: includes/class-config.php:409
#: includes/class-config.php:428
msgid "Password Reset Email"
msgstr ""
#: includes/class-config.php:417
#: includes/class-config.php:436
msgid ""
"Whether to send an email when users changed their password (Recommended, "
"please keep on)"
msgstr ""
#: includes/class-config.php:423
#: includes/class-config.php:442
msgid "Password Changed Email"
msgstr ""
#: includes/class-config.php:430
#: includes/class-config.php:449
msgid ""
"Whether to send the user an email when he request to reset password "
"(Recommended, please keep on)"
msgstr ""
#: includes/class-config.php:436
#: includes/class-config.php:455
msgid "Account Updated Email"
msgstr ""
#: includes/class-config.php:443
#: includes/class-config.php:462
msgid "Whether to send the user an email when he updated their account"
msgstr ""
#: includes/class-config.php:449
#: includes/class-config.php:468
msgid "New User Notification"
msgstr ""
#: includes/class-config.php:455
#: includes/class-config.php:474
msgid "Whether to receive notification when a new user account is approved"
msgstr ""
#: includes/class-config.php:461
#: includes/class-config.php:480
msgid "Account Needs Review Notification"
msgstr ""
#: includes/class-config.php:468
#: includes/class-config.php:487
msgid "Whether to receive notification when an account needs admin review"
msgstr ""
#: includes/class-config.php:473
#: includes/class-config.php:492
msgid "Account Deletion Notification"
msgstr ""
#: includes/class-config.php:476
#: includes/class-config.php:495
msgid "Whether to receive notification when an account is deleted"
msgstr ""
#: includes/class-config.php:499
#: includes/class-config.php:518
msgid ""
"Are you sure you want to delete your account? This will erase all of your "
"account data from the site. To delete your account enter your password below"
@@ -4784,12 +4787,10 @@ msgid "Username or E-mail"
msgstr ""
#: includes/core/class-builtin.php:712 includes/core/class-builtin.php:715
#: includes/core/class-member-directory.php:109
msgid "First Name"
msgstr ""
#: includes/core/class-builtin.php:722 includes/core/class-builtin.php:725
#: includes/core/class-member-directory.php:110
msgid "Last Name"
msgstr ""
@@ -4803,8 +4804,7 @@ msgid "Registration Date"
msgstr ""
#: includes/core/class-builtin.php:764 includes/core/class-builtin.php:767
#: includes/core/class-member-directory.php:112
#: includes/core/class-member-directory.php:180
#: includes/core/class-member-directory.php:272
msgid "Last Login"
msgstr ""
@@ -4829,7 +4829,7 @@ msgid "Birth Date"
msgstr ""
#: includes/core/class-builtin.php:825 includes/core/class-builtin.php:828
#: includes/core/class-member-directory.php:176
#: includes/core/class-member-directory.php:268
msgid "Gender"
msgstr ""
@@ -4842,7 +4842,7 @@ msgid "Female"
msgstr ""
#: includes/core/class-builtin.php:836 includes/core/class-builtin.php:839
#: includes/core/class-member-directory.php:175
#: includes/core/class-member-directory.php:267
msgid "Country"
msgstr ""
@@ -4900,7 +4900,7 @@ msgid "Roles (Radio)"
msgstr ""
#: includes/core/class-builtin.php:1030
#: includes/core/class-member-directory.php:177
#: includes/core/class-member-directory.php:269
msgid "Languages"
msgstr ""
@@ -6857,105 +6857,105 @@ msgstr ""
msgid "Add translation to %s"
msgstr ""
#: includes/core/class-fields.php:595
#: includes/core/class-fields.php:606
msgid "Undefined"
msgstr ""
#: includes/core/class-fields.php:1206 templates/message.php:6
#: includes/core/class-fields.php:1217 templates/message.php:6
#, php-format
msgid "%s"
msgstr ""
#: includes/core/class-fields.php:1227
#: includes/core/class-fields.php:1238
msgid "Custom Field"
msgstr ""
#: includes/core/class-fields.php:1570
#: includes/core/class-fields.php:1581
msgid "Please upload a valid image!"
msgstr ""
#: includes/core/class-fields.php:1584
#: includes/core/class-fields.php:1595
msgid "Sorry this is not a valid image."
msgstr ""
#: includes/core/class-fields.php:1587
#: includes/core/class-fields.php:1598
msgid "This image is too large!"
msgstr ""
#: includes/core/class-fields.php:1590
#: includes/core/class-fields.php:1601
msgid "This image is too small!"
msgstr ""
#: includes/core/class-fields.php:1593
#: includes/core/class-fields.php:1604
msgid "You can only upload one image"
msgstr ""
#: includes/core/class-fields.php:1625
#: includes/core/class-fields.php:1636
msgid "Sorry this is not a valid file."
msgstr ""
#: includes/core/class-fields.php:1628
#: includes/core/class-fields.php:1639
msgid "This file is too large!"
msgstr ""
#: includes/core/class-fields.php:1631
#: includes/core/class-fields.php:1642
msgid "This file is too small!"
msgstr ""
#: includes/core/class-fields.php:1634
#: includes/core/class-fields.php:1645
msgid "You can only upload one file"
msgstr ""
#: includes/core/class-fields.php:2134
#: includes/core/class-fields.php:2145
msgid "Current Password"
msgstr ""
#: includes/core/class-fields.php:2163
#: includes/core/class-fields.php:2174
msgid "New Password"
msgstr ""
#: includes/core/class-fields.php:2195
#: includes/core/class-fields.php:2206
#, php-format
msgid "Confirm %s"
msgstr ""
#: includes/core/class-fields.php:2429
#: includes/core/class-fields.php:2440
msgid "Upload Photo"
msgstr ""
#: includes/core/class-fields.php:2450 includes/core/class-fields.php:2474
#: includes/core/class-fields.php:2461 includes/core/class-fields.php:2485
#: includes/core/um-actions-profile.php:827
msgid "Change photo"
msgstr ""
#: includes/core/class-fields.php:2474 includes/core/class-fields.php:2571
#: includes/core/class-fields.php:2485 includes/core/class-fields.php:2582
msgid "Processing..."
msgstr ""
#: includes/core/class-fields.php:2496
#: includes/core/class-fields.php:2507
msgid "Upload File"
msgstr ""
#: includes/core/class-fields.php:2538 includes/core/um-filters-fields.php:244
#: includes/core/class-fields.php:2549 includes/core/um-filters-fields.php:266
msgid "This file has been removed."
msgstr ""
#: includes/core/class-fields.php:2541 includes/core/class-fields.php:2571
#: includes/core/class-fields.php:2552 includes/core/class-fields.php:2582
msgid "Change file"
msgstr ""
#: includes/core/class-fields.php:2571
#: includes/core/class-fields.php:2582
msgid "Save"
msgstr ""
#: includes/core/class-fields.php:4020
#: includes/core/class-fields.php:4050
#, php-format
msgid ""
"Your profile is looking a little empty. Why not <a href=\"%s\">add</a> some "
"information!"
msgstr ""
#: includes/core/class-fields.php:4022
#: includes/core/class-fields.php:4052
msgid "This user has not added any information to their profile yet."
msgstr ""
@@ -6997,56 +6997,79 @@ msgid "You can not edit this user"
msgstr ""
#: includes/core/class-mail.php:612 includes/core/class-password.php:701
#: includes/core/class-profile.php:465
#: includes/core/class-profile.php:470
msgid "Your set password"
msgstr ""
#: includes/core/class-member-directory.php:100
#: includes/core/class-member-directory.php:192
msgid "Grid"
msgstr ""
#: includes/core/class-member-directory.php:101
#: includes/core/class-member-directory.php:193
msgid "List"
msgstr ""
#: includes/core/class-member-directory.php:106
msgid "New Users First"
#: includes/core/class-member-directory.php:198
msgid "New users first"
msgstr ""
#: includes/core/class-member-directory.php:107
msgid "Old Users First"
#: includes/core/class-member-directory.php:199
msgid "Old users first"
msgstr ""
#: includes/core/class-member-directory.php:111
msgid "Display Name"
#: includes/core/class-member-directory.php:201
msgid "First name"
msgstr ""
#: includes/core/class-member-directory.php:118
#: includes/core/class-member-directory.php:202
msgid "Last name"
msgstr ""
#: includes/core/class-member-directory.php:203
msgid "Display name"
msgstr ""
#: includes/core/class-member-directory.php:204
msgid "Last login"
msgstr ""
#: includes/core/class-member-directory.php:210
msgid "Random"
msgstr ""
#: includes/core/class-member-directory.php:119
#: includes/core/class-member-directory.php:211
msgid "Other (Custom Field)"
msgstr ""
#: includes/core/class-member-directory.php:179
#: includes/core/class-member-directory.php:271
msgid "Age"
msgstr ""
#: includes/core/class-member-directory.php:181
#: includes/core/class-member-directory.php:273
msgid "User Registered"
msgstr ""
#: includes/core/class-member-directory.php:531
#: includes/core/class-member-directory.php:644
msgid " stars"
msgstr ""
#: includes/core/class-member-directory.php:652
msgid "<strong>Age:</strong> {min_range} - {max_range} years old"
msgstr ""
#: includes/core/class-member-directory.php:535
msgid "<strong>User Rating:</strong> {min_range} - {max_range} points"
#: includes/core/class-member-directory.php:1525
#: includes/core/class-member-directory.php:1556
#: includes/core/um-actions-profile.php:1147
#: includes/core/um-actions-profile.php:1178
msgid "Edit Profile"
msgstr ""
#: includes/core/class-member-directory.php:1567 templates/_members-grid.php:83
#: templates/members-grid.php:66
#: includes/core/class-member-directory.php:1557
#: includes/core/um-actions-profile.php:1179
msgid "My Account"
msgstr ""
#: includes/core/class-member-directory.php:1609 templates/members-grid.php:53
msgid "Edit profile"
msgstr ""
@@ -7096,7 +7119,7 @@ msgid "This activation link is expired or have already been used."
msgstr ""
#. translators: %s: support forums URL
#: includes/core/class-plugin-updater.php:275
#: includes/core/class-plugin-updater.php:279
#, php-format
msgid ""
"An unexpected error occurred. Something may be wrong with %s or this "
@@ -7104,7 +7127,7 @@ msgid ""
"the <a href=\"%s\">support forums</a>."
msgstr ""
#: includes/core/class-plugin-updater.php:277
#: includes/core/class-plugin-updater.php:281
msgid "https://wordpress.org/support/"
msgstr ""
@@ -7576,15 +7599,6 @@ msgstr ""
msgid "This user account status is %s"
msgstr ""
#: includes/core/um-actions-profile.php:1147
#: includes/core/um-actions-profile.php:1178
msgid "Edit Profile"
msgstr ""
#: includes/core/um-actions-profile.php:1179
msgid "My Account"
msgstr ""
#: includes/core/um-actions-user.php:14
msgid "Your account"
msgstr ""
@@ -7593,12 +7607,12 @@ msgstr ""
msgid "Invalid soundcloud track ID"
msgstr ""
#: includes/core/um-filters-fields.php:118
#: includes/core/um-filters-fields.php:124
#, php-format
msgid "Joined %s"
msgstr ""
#: includes/core/um-filters-fields.php:275
#: includes/core/um-filters-fields.php:300
msgid "Untitled photo"
msgstr ""
@@ -7651,26 +7665,37 @@ msgstr ""
msgid "of"
msgstr ""
#: templates/members.php:127 templates/members.php:129
#: templates/members.php:134
#: templates/members.php:189
msgid "Search:"
msgstr ""
#: templates/members.php:190 templates/members.php:192
msgid "Search"
msgstr ""
#: templates/members.php:141
msgid "Sort By"
msgstr ""
#: templates/members.php:152
msgid "Filters"
msgstr ""
#: templates/members.php:172
#: templates/members.php:216
#, php-format
msgid "Change to %s"
msgstr ""
#: templates/members.php:221
msgid "Clear All Filters"
#: templates/members.php:229
msgid "Sort by:"
msgstr ""
#: templates/members.php:249
msgid "More filters"
msgstr ""
#: templates/members.php:278
msgid "Remove filter"
msgstr ""
#: templates/members.php:303
msgid "Remove all filters"
msgstr ""
#: templates/members.php:303
msgid "Clear all"
msgstr ""
#: templates/password-change.php:45
+99 -93
View File
@@ -8,121 +8,128 @@
<# _.each( data, function( user, key, list ) { #>
<div class="um-member um-role-{{{user.role}}} {{{user.account_status}}} <?php if ( $cover_photos ) { echo 'with-cover'; } ?>">
<div class="um-clear"></div>
<div class="um-member-card-container">
<?php if ( $profile_photo ) { ?>
<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}}}
<span class="um-member-status {{{user.account_status}}}">
{{{user.account_status_name}}}
</span>
<?php do_action( 'um_members_list_in_profile_photo_tmpl', $args ); ?>
</a>
</div>
<?php } ?>
<?php if ( $profile_photo ) { ?>
<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 } ?>
<div class="um-member-card <?php echo ! $profile_photo ? 'no-photo' : '' ?>">
<div class="um-member-card-header">
<?php if ( $show_name ) { ?>
<div class="um-member-name">
<a href="{{{user.profile_url}}}" title="{{{user.display_name}}}">
{{{user.display_name_html}}}
</a>
</div>
<?php }
do_action( 'um_members_list_after_user_name_tmpl', $args ); ?>
{{{user.hook_after_user_name}}}
</div>
<div class="um-member-card-content">
<?php if ( $show_tagline && ! empty( $tagline_fields ) && is_array( $tagline_fields ) ) {
foreach ( $tagline_fields as $key ) {
if ( empty( $key ) ) {
continue;
} ?>
<# if ( typeof user.<?php echo $key; ?> !== 'undefined' ) { #>
<div class="um-member-tagline um-member-tagline-<?php echo esc_attr( $key ); ?>"
data-key="<?php echo esc_attr( $key ); ?>">
{{{user.<?php echo $key; ?>}}}
<div class="um-member-card <?php echo ! $profile_photo ? 'no-photo' : '' ?>">
<div class="um-member-card-content">
<div class="um-member-card-header">
<?php if ( $show_name ) { ?>
<div class="um-member-name">
<a href="{{{user.profile_url}}}" title="{{{user.display_name}}}">
{{{user.display_name_html}}}
</a>
</div>
<# } #>
<?php } ?>
<?php }
} ?>
</div>
{{{user.hook_just_after_name}}}
<?php do_action( 'um_members_list_after_user_name_tmpl', $args ); ?>
<?php if ( $show_userinfo ) { ?>
{{{user.hook_after_user_name}}}
</div>
<# var $show_block = false; #>
<?php if ( $show_tagline && ! empty( $tagline_fields ) && is_array( $tagline_fields ) ) {
foreach ( $tagline_fields as $key ) {
if ( empty( $key ) ) {
continue;
} ?>
<?php foreach ( $reveal_fields as $k => $key ) {
if ( empty( $key ) ) {
unset( $reveal_fields[ $k ] );
} ?>
<# if ( typeof user.<?php echo $key; ?> !== 'undefined' ) { #>
<div class="um-member-tagline um-member-tagline-<?php echo esc_attr( $key ); ?>"
data-key="<?php echo esc_attr( $key ); ?>">
{{{user.<?php echo $key; ?>}}}
</div>
<# } #>
<# $show_block = typeof user.<?php echo $key; ?> !== 'undefined'; #>
<?php }
<?php }
}
if ( $show_social ) { ?>
<# if ( ! $show_block ) { #>
<# $show_block = user.social_urls #>
<# } #>
<?php } ?>
if ( $show_userinfo ) { ?>
<# if ( $show_block ) { #>
<div class="um-member-meta-main">
<div class="um-member-meta">
<?php foreach ( $reveal_fields as $key ) { ?>
<# var $show_block = false; #>
<# if ( typeof user.<?php echo $key; ?> !== 'undefined' ) { #>
<?php foreach ( $reveal_fields as $k => $key ) {
if ( empty( $key ) ) {
unset( $reveal_fields[ $k ] );
} ?>
<# $show_block = typeof user.<?php echo $key; ?> !== 'undefined'; #>
<?php }
if ( $show_social ) { ?>
<# if ( ! $show_block ) { #>
<# $show_block = user.social_urls #>
<# } #>
<?php } ?>
<# if ( $show_block ) { #>
<div class="um-member-meta-main">
<div class="um-member-meta <?php if ( ! $userinfo_animate ) { echo 'no-animate'; } ?>">
<?php foreach ( $reveal_fields as $key ) { ?>
<# if ( typeof user.<?php echo $key; ?> !== 'undefined' ) { #>
<div class="um-member-metaline um-member-metaline-<?php echo $key; ?>">
<strong>{{{user.label_<?php echo $key;?>}}}:</strong> {{{user.<?php echo $key;?>}}}
</div>
<# } #>
<# } #>
<?php }
<?php }
if ( $show_social ) { ?>
<div class="um-member-connect">
{{{user.social_urls}}}
</div>
<?php } ?>
if ( $show_social ) { ?>
<div class="um-member-connect">
{{{user.social_urls}}}
</div>
<?php } ?>
</div>
</div>
<# } #>
<?php } ?>
</div>
<div class="um-member-card-actions">
<# if ( Object.keys( user.dropdown_actions ).length > 0 ) { #>
<div class="um-member-cog">
<a href="javascript:void(0);" class="um-member-actions-a">
<i class="um-faicon-cog"></i>
</a>
<?php UM()->member_directory()->dropdown_menu_js( '.um-member-cog', 'click', 'user' ); ?>
</div>
<# } #>
</div>
</div>
</div>
<div class="um-member-card-footer">
<div class="um-member-card-footer-buttons">
<?php do_action( 'um_members_list_just_after_actions_tmpl', $args ); ?>
</div>
<?php if ( $userinfo_animate ) { ?>
<div class="um-member-card-reveal-buttons">
<div class="um-member-more">
<a href="javascript:void(0);"><i class="um-faicon-angle-down"></i></a>
</div>
<# } #>
<div class="um-member-less">
<a href="javascript:void(0);"><i class="um-faicon-angle-up"></i></a>
</div>
</div>
<?php } ?>
</div>
<div class="um-member-card-actions">
<# if ( user.actions.length > 0 ) { #>
<# _.each( user.actions, function( action, action_key, action_list ) { #>
<div class="{{{action.wrapper_class}}}">
<a href="{{{action.url}}}" class="{{{action.class}}}">
{{{action.title}}}
</a>
</div>
<# }); #>
<# } #>
<?php do_action( 'um_members_list_just_after_actions_tmpl', $args ); ?>
{{{user.hook_just_after_name}}}
</div>
<div class="um-clear"></div>
</div>
<div class="um-clear"></div>
<# }); #>
<# } else { #>
@@ -132,6 +139,5 @@
<# } #>
<div class="um-clear"></div>
</div>
</script>
+109 -95
View File
@@ -181,121 +181,136 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea
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-member-directory-header <?php echo esc_attr( $classes ) ?>">
<div class="um-member-directory-header">
<?php if ( $search && $show_search ) { ?>
<div class="um-member-directory-search-line">
<input type="text" class="um-search-line" placeholder="<?php esc_attr_e( 'Search', 'ultimate-member' ) ?>" value="<?php echo esc_attr( $search_from_url ) ?>" />
<div class="uimob340-show uimob500-show">
<a href="javascript:void(0);" class="um-button um-do-search um-tip-n" title="<?php esc_attr_e( 'Search', 'ultimate-member' ); ?>">
<i class="um-faicon-search"></i>
</a>
</div>
<div class="uimob340-hide uimob500-hide">
<a href="javascript:void(0);" class="um-button um-do-search"><?php _e( 'Search', 'ultimate-member' ); ?></a>
<div class="um-member-directory-header-row um-member-directory-search-row">
<div class="um-member-directory-search-line">
<label>
<span><?php _e( 'Search:', 'ultimate-member' ); ?></span>
<input type="search" class="um-search-line" placeholder="<?php esc_attr_e( 'Search', 'ultimate-member' ) ?>" value="<?php echo esc_attr( $search_from_url ) ?>" aria-label="<?php esc_attr_e( 'Search', 'ultimate-member' ) ?>" speech />
</label>
<input type="button" class="um-do-search" value="<?php esc_attr_e( 'Search', 'ultimate-member' ); ?>" />
</div>
</div>
<?php }
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' ); ?>"
<?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>
if ( ( ! empty( $args['enable_sorting'] ) && ! empty( $sorting_options ) && count( $sorting_options ) > 1 ) ||
( $filters && $show_filters && count( $search_filters ) ) ||
! $single_view ) { ?>
<div class="um-member-directory-header-row">
<div class="um-member-directory-nav-line">
<?php if ( ! $single_view ) {
$view_types = 0;
foreach ( UM()->member_directory()->view_types as $key => $value ) {
if ( in_array( $key, $args['view_types'] ) ) {
if ( empty( $view_types ) ) { ?>
<span 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<?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'] ); ?>"
next-item="" ><i class="<?php echo $value['icon']; ?>"></i></a>
<?php }
}
if ( ! empty( $view_types ) ) { ?>
</span>
<?php }
}
if ( ! empty( $args['enable_sorting'] ) && ! empty( $sorting_options ) && count( $sorting_options ) > 1 ) { ?>
<div class="um-member-directory-sorting">
<span><?php _e( 'Sort by:', 'ultimate-member' ); ?>&nbsp;</span>
<div class="um-member-directory-sorting-a">
<a href="javascript:void(0);"><?php echo $sorting_options[ $sort_from_url ] ?></a>
&nbsp;<i class="um-faicon-caret-down"></i><i class="um-faicon-caret-up"></i>
</div>
</div>
<?php $items = array();
foreach ( $sorting_options as $value => $title ) {
$items[] = '<a href="javascript:void(0);" data-value="' . esc_attr( $value ) . '" data-selected="' . ( ( $sort_from_url == $value ) ? '1' : '0' ) . '">' . $title . '</a>'; ?>
<?php }
UM()->member_directory()->dropdown_menu( '.um-member-directory-sorting-a', 'click', $items ); ?>
<?php }
if ( $filters && $show_filters && count( $search_filters ) ) { ?>
<span class="um-member-directory-filters">
<span class="um-member-directory-filters-a">
<a href="javascript:void(0);">
<?php _e( 'More filters', 'ultimate-member' ); ?>
</a>
&nbsp;<i class="um-faicon-caret-down"></i><i class="um-faicon-caret-up"></i>
</span>
</span>
<?php } ?>
</select>
</div>
</div>
<?php } ?>
<div class="um-member-directory-actions">
<?php if ( $filters && $show_filters && count( $search_filters ) ) { ?>
<div class="um-member-directory-filters">
<a href="javascript:void(0);" class="um-member-directory-filters-a um-tip-n" title="<?php esc_attr_e( 'Filters', 'ultimate-member' ); ?>">
<i class="um-faicon-sliders"></i>
</a>
</div>
<?php } ?>
<?php if ( ! $single_view ) {
$view_types = 0;
<?php if ( $filters && $show_filters && count( $search_filters ) ) {
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<?php if ( $not_searched ) {?> um-disabled<?php } ?>">
<?php }
$view_types++; ?>
<a href="javascript:void(0)"
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'] ); ?>"
next-item="" ><i class="<?php echo $value['icon']; ?>"></i></a>
<?php }
}
if ( ! empty( $view_types ) ) { ?>
</div>
<?php }
} ?>
</div>
</div>
<div class="um-clear"></div>
<?php if ( $filters && $show_filters && count( $search_filters ) ) {
if ( is_array( $search_filters ) ) { ?>
<script type="text/template" id="tmpl-um-members-filtered-line">
<# if ( data.filters.length > 0 ) { #>
if ( is_array( $search_filters ) ) { ?>
<script type="text/template" id="tmpl-um-members-filtered-line">
<# if ( data.filters.length > 0 ) { #>
<# _.each( data.filters, function( filter, key, list ) { #>
<div class="um-members-filter-tag">
<# if ( filter.type == 'slider' ) { #>
<# if ( filter.value[0] == filter.value[1] ) { #>
<strong>{{{filter.label}}}</strong>: {{{filter.value[0]}}}
<# } else { #>
{{{filter.value_label}}}
<# } #>
<# } else { #>
<strong>{{{filter.label}}}</strong>: {{{filter.value_label}}}
<# } #>
<div class="um-members-filter-remove" data-name="{{{filter.name}}}" data-value="{{{filter.value}}}" data-range="{{{filter.range}}}" data-type="{{{filter.type}}}">&times;</div>
</div>
<div class="um-members-filter-tag">
<# if ( filter.type == 'slider' ) { #>
<# if ( filter.value[0] == filter.value[1] ) { #>
<strong>{{{filter.label}}}</strong>: {{{filter.value[0]}}}
<# } else { #>
{{{filter.value_label}}}
<# } #>
<# } else { #>
<strong>{{{filter.label}}}</strong>: {{{filter.value_label}}}
<# } #>
<div class="um-members-filter-remove um-tip-n" data-name="{{{filter.name}}}"
data-value="{{{filter.value}}}" data-range="{{{filter.range}}}"
data-type="{{{filter.type}}}" title="<?php esc_attr_e( 'Remove filter', 'ultimate-member' ) ?>">&times;</div>
</div>
<# }); #>
<# } #>
</script>
<# } #>
</script>
<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, $args );
if ( empty( $filter_content ) ) {
continue;
} ?>
<div class="um-member-directory-header-row um-header-row-invisible">
<div class="um-search um-search-<?php echo count( $search_filters ) ?> um-search-invisible">
<?php $i = 0;
foreach ( $search_filters as $filter ) {
$filter_content = UM()->member_directory()->show_filter( $filter, $args );
if ( empty( $filter_content ) ) {
continue;
}
<div class="um-search-filter <?php echo ( $i != 0 && $i%2 !== 0 ) ? 'um-search-filter-2' : '' ?>"> <?php echo $filter_content; ?> </div>
$type = UM()->member_directory()->filter_types[ $filter ]; ?>
<?php $i++;
} ?>
<div class="um-search-filter um-<?php echo esc_attr( $type ) ?>-filter-type <?php echo ( $i != 0 && $i%2 !== 0 ) ? 'um-search-filter-2' : '' ?>"> <?php echo $filter_content; ?> </div>
<div class="um-clear"></div>
</div>
<div class="um-filtered-line">
<div class="um-clear-filters"><a href="javascript:void(0);" class="um-clear-filters-a"><?php esc_attr_e( 'Clear All Filters', 'ultimate-member' ); ?></a></div>
</div>
<?php
<?php $i++;
} ?>
</div>
</div>
<div class="um-member-directory-header-row">
<div class="um-filtered-line">
<div class="um-clear-filters"><a href="javascript:void(0);" class="um-clear-filters-a" title="<?php esc_attr_e( 'Remove all filters', 'ultimate-member' ) ?>"><?php _e( 'Clear all', 'ultimate-member' ); ?></a></div>
</div>
</div>
<?php
}
}
}
do_action( 'um_members_directory_head', $args );
?>
do_action( 'um_members_directory_head', $args ); ?>
</div>
<div class="um-members-wrapper"></div>
<div class="um-clear"></div>
<div class="um-members-pagination-box"></div>
<?php
@@ -320,5 +335,4 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea
*/
do_action( 'um_members_directory_footer', $args ); ?>
<div class="um-clear"></div>
</div>
+1 -1
View File
@@ -3,7 +3,7 @@
Plugin Name: Ultimate Member
Plugin URI: http://ultimatemember.com/
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
Version: 2.1.0-alpha1
Version: 2.1.0-alpha2
Author: Ultimate Member
Author URI: http://ultimatemember.com/
Text Domain: ultimate-member