diff --git a/assets/css/um-members.css b/assets/css/um-members.css index 8d54070f..00efb462 100644 --- a/assets/css/um-members.css +++ b/assets/css/um-members.css @@ -373,6 +373,18 @@ body #content .um-directory a { -moz-border-radius: 0 !important; -webkit-border-radius: 0 !important; border-radius: 0 !important; } + .um-directory .um-members-wrapper .um-members .um-member .um-member-card .um-member-name { + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: baseline; + flex-wrap: nowrap; } + .um-directory .um-members-wrapper .um-members .um-member .um-member-card .um-member-name a { + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; + flex-wrap: nowrap; } .um-directory .um-members-wrapper .um-members img { display: block; overflow: hidden; @@ -448,7 +460,8 @@ body #content .um-directory a { .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card.no-photo { padding-top: 30px; } .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-name { - margin: 0 0 4px 0; } + margin: 0 0 4px 0; + justify-content: center; } .um-directory .um-members-wrapper .um-members.um-members-grid .um-member .um-member-card .um-member-name a { font-size: 16px; line-height: 26px; @@ -564,7 +577,7 @@ body #content .um-directory a { align-items: flex-start; flex-wrap: nowrap; width: 100%; - margin: 0; + margin: 0 0 10px 0; padding: 0; } .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-photo { width: 100px; @@ -685,7 +698,8 @@ body #content .um-directory a { line-height: 1; } .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions .um-member-cog .um-new-dropdown { width: 180px; - right: 0; } + right: 0; + text-align: left; } .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions a { box-sizing: border-box; } .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-container .um-member-card .um-member-card-actions div[class$="stats"] { @@ -729,7 +743,7 @@ body #content .um-directory a { display: flex; flex-direction: row; justify-content: flex-end; - align-items: baseline; + align-items: center; flex-wrap: nowrap; width: 100%; } .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons { @@ -740,6 +754,15 @@ body #content .um-directory a { flex-wrap: nowrap; width: calc( 100% - 145px); margin: 0 10px 0 0; } + .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper { + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: baseline; + flex-wrap: nowrap; + margin: 0; } + .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons > :not(:last-child) { + margin: 0 10px 0 0; } .um-directory .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-reveal-buttons { width: 20px; text-align: right; } @@ -868,14 +891,20 @@ body #content .um-directory a { height: 50px; } .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card { width: calc( 100% - 60px); } - .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons { - display: flex; - flex-direction: row; - justify-content: flex-start; - align-items: baseline; - flex-wrap: nowrap; - width: calc( 100% - 90px); - margin: 0 10px 0 0; } + .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer { + align-items: flex-start; } + .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons { + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: stretch; + flex-wrap: nowrap; + width: calc( 100% - 90px); + margin: 0 10px 0 0; } + .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper { + margin: 0 0 5px 0; } + .um-directory.uimob340 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper a.um-button { + width: 100% !important; } .um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line { width: 100%; } .um-directory.uimob500 .um-member-directory-header .um-member-directory-header-row.um-member-directory-search-row { @@ -902,14 +931,14 @@ body #content .um-directory a { height: 70px; } .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card { width: calc( 100% - 80px); } - .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons { - display: flex; - flex-direction: row; - justify-content: flex-start; - align-items: baseline; - flex-wrap: nowrap; - width: calc( 100% - 110px); - margin: 0 10px 0 0; } + .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer { + align-items: flex-start; } + .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons { + flex-wrap: wrap; + width: calc( 100% - 110px); + margin: 0 10px 0 0; } + .um-directory.uimob500 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper { + margin: 0 10px 5px 0; } .um-directory.uimob800 .um-member-directory-header .um-member-directory-header-row .um-member-directory-search-line { width: 100%; } .um-directory.uimob800 .um-member-directory-header .um-search { @@ -929,14 +958,14 @@ body #content .um-directory a { height: 80px; } .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card { width: calc( 100% - 90px); } - .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons { - display: flex; - flex-direction: row; - justify-content: flex-start; - align-items: baseline; - flex-wrap: nowrap; - width: calc( 100% - 120px); - margin: 0 10px 0 0; } + .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer { + align-items: flex-start; } + .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons { + flex-wrap: wrap; + width: calc( 100% - 120px); + margin: 0 10px 0 0; } + .um-directory.uimob800 .um-members-wrapper .um-members.um-members-list .um-member .um-member-card-footer .um-member-card-footer-buttons .um-members-list-footer-button-wrapper { + margin: 0 10px 5px 0; } .um-directory.uimob960 .um-member-directory-header .um-search { grid-template-columns: repeat(2, 1fr); } .um-directory.uimob960 .um-members-wrapper .um-members.um-members-grid .um-gutter-sizer { diff --git a/assets/css/um-misc.css b/assets/css/um-misc.css index c74be9c7..f7366772 100644 --- a/assets/css/um-misc.css +++ b/assets/css/um-misc.css @@ -62,6 +62,16 @@ line-height: 36px; height: 36px; font-size: 20px; + border-radius: 999px; + color: #fff !important; + opacity: 0.85; + margin: 0 1px; + transition: 0.25s; + display: inline-block; +} + +.um-profile-connect.um-member-connect a:hover { + opacity: 1; } /* pop effect */ diff --git a/assets/js/um-members.js b/assets/js/um-members.js index ca9e8d7b..5d34afac 100644 --- a/assets/js/um-members.js +++ b/assets/js/um-members.js @@ -67,6 +67,9 @@ function um_set_url_from_data( directory, key, value ) { jQuery.each( new_data, function( data_key ) { query_strings.push( data_key + '=' + new_data[ data_key ] ); }); + + query_strings = wp.hooks.applyFilters( 'um_member_directory_url_attrs', query_strings ); + var query_string = '?' + query_strings.join( '&' ); if ( query_string === '?' ) { @@ -130,12 +133,6 @@ function um_get_search( directory ) { function um_get_sort( directory ) { 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 ) { @@ -214,6 +211,8 @@ function um_ajax_get_members( directory, args ) { }); } + request = wp.hooks.applyFilters( 'um_member_directory_filter_request', request ); + wp.ajax.send( 'um_get_members', { data: request, success: function( answer ) { @@ -909,6 +908,8 @@ jQuery(document).ready( function() { //set 1st page after filtration directory.data( 'page', 1 ); um_set_url_from_data( directory, 'page', '' ); + + jQuery(this).tipsy('hide'); jQuery(this).parents('.um-members-filter-tag').remove(); if ( directory.find( '.um-members-filter-remove' ).length === 0 ) { @@ -997,7 +998,14 @@ jQuery(document).ready( function() { um_set_url_from_data( directory, 'page', '' ); directory.find('.um-members-filter-tag').remove(); - jQuery(this).hide(); + //jQuery(this).hide(); + 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' ); + } var show_after_search = directory.data('must-search'); if ( show_after_search === 1 ) { @@ -1270,7 +1278,123 @@ jQuery(document).ready( function() { //history events when back/forward and change window.location.hash window.addEventListener( "popstate", function(e) { + jQuery( '.um-directory' ).each( function() { + var directory = jQuery(this); + var hash = um_members_get_hash( directory ); + um_member_directories.push( hash ); + um_members_show_preloader( directory ); + + // clear layout and header + directory.find('.um-members-grid, .um-members-list, .um-members-intro').remove(); + + // set search from history + if ( directory.find( '.um-member-directory-search-line' ).length ) { + var search = um_get_data_for_directory( directory, 'search' ); + if ( typeof search == 'undefined' ) { + search = ''; + } + directory.data( 'general_search', search ); + directory.find('.um-search-line').val( search ); + } + + //sorting from history + if ( directory.find( '.um-member-directory-sorting' ).length ) { + var sort = um_get_data_for_directory( directory, 'sort' ); + if ( typeof sort == 'undefined' ) { + sort = directory.find( '.um-new-dropdown[data-element=".um-member-directory-sorting-a"]' ).find('a[data-default="1"]').data('value'); + } + directory.data( 'sorting', sort ); + + var sort_dropdown = directory.find( '.um-new-dropdown[data-element=".um-member-directory-sorting-a"]' ); + sort_dropdown.find('a').data('selected', 0).prop('data-selected', 0).attr('data-selected', 0); + sort_dropdown.find('a[data-value="' + sort + '"]').data('selected', 1).prop('data-selected', 1).attr('data-selected', 1); + directory.find('.um-member-directory-sorting-a').find('> a').html( sort_dropdown.find('a[data-value="' + sort + '"]').html() ); + } + + //view type from history + if ( directory.find( '.um-member-directory-view-type' ).length ) { + var layout = um_get_data_for_directory( directory, 'view_type' ); + if ( typeof layout == 'undefined' ) { + layout = directory.find( '.um-member-directory-view-type-a[data-default="1"]' ).data('type'); + } + directory.data( 'view_type', layout ); + + directory.find('.um-member-directory-view-type .um-member-directory-view-type-a').hide(); + directory.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="' + layout + '"]').show(); + } + + //datepicker filter + directory.find('.um-datepicker-filter').each( function() { + var elem = jQuery(this); + + var $picker = elem.pickadate('picker'); + var $fname = elem.data('filter_name'); + var $frange = elem.data('range'); + + var query_value = um_get_data_for_directory( directory, 'filter_' + $fname + '_' + $frange ); + if ( typeof query_value !== 'undefined' ) { + $picker.set( 'select', query_value*1000 ); + } else { + $picker.clear(); + } + }); + + directory.find('.um-slider').each( function() { + var slider = jQuery( this ); + var filter_name = slider.data('field_name'); + + var min_default_value = um_get_data_for_directory( directory, 'filter_' + filter_name + '_from' ); + var max_default_value = um_get_data_for_directory( directory, 'filter_' + filter_name + '_to' ); + if ( typeof min_default_value == 'undefined' ) { + min_default_value = slider.data('min'); + } + min_default_value = parseInt( min_default_value ); + + if ( typeof max_default_value == 'undefined' ) { + max_default_value = slider.data('max'); + } + max_default_value = parseInt( max_default_value ); + + slider.slider( 'values', [min_default_value, max_default_value] ); + um_set_range_label( slider ); + }); + + //timepicker filter + directory.find('.um-timepicker-filter').each( function() { + var elem = jQuery(this); + + var $picker = elem.pickatime('picker'); + var $fname = elem.data('filter_name'); + var $frange = elem.data('range'); + + var query_value = um_get_data_for_directory( directory, 'filter_' + $fname + '_' + $frange ); + if ( typeof query_value !== 'undefined' ) { + var arr = query_value.split(':'); + $picker.set( 'select', arr[0]*60 ); + } else { + $picker.clear(); + } + }); + + + var show_after_search = directory.data('must-search'); + if ( show_after_search === 1 ) { + var search = um_get_search( directory ); + var filters_data = um_get_filters_data( directory ); + if ( ! filters_data.length && ! search ) { + directory.data( 'searched', 0 ); + um_members_hide_preloader( directory ); + return; + } else { + directory.data( 'searched', 1 ); + } + } + + um_ajax_get_members( directory ); + + um_change_tag( directory ); + }); }); }); \ No newline at end of file diff --git a/assets/js/um-members.min.js b/assets/js/um-members.min.js index aa6d9cbd..d558e1fd 100644 --- a/assets/js/um-members.min.js +++ b/assets/js/um-members.min.js @@ -1 +1 @@ -var um_members_directory_busy=[],um_member_directories=[],um_member_directory_last_data=[];function um_parse_current_url(){var t={},a=window.location.search.substring(1).split("&");return jQuery.each(a,function(e){var r=a[e].split("=");t[r[0]]=r[1]}),t}function um_get_data_for_directory(e,r){var t=um_members_get_hash(e),a={},i=um_parse_current_url();if(jQuery.each(i,function(e){-1!==e.indexOf("_"+t)&&""!==i[e]&&(a[e.replace("_"+t,"")]=i[e])}),r){if(void 0!==a[r])try{a[r]=decodeURI(a[r])}catch(e){console.error(e)}return a[r]}return a}function um_set_url_from_data(e,r,t){var a=um_members_get_hash(e),i=um_get_data_for_directory(e),m={};""!==t&&(m[r+"_"+a]=t),jQuery.each(i,function(e){r===e?""!==t&&(m[e+"_"+a]=t):m[e+"_"+a]=i[e]});var d=[];jQuery.each(m,function(e){d.push(e+"="+m[e])});var s="?"+d.join("&");"?"===s&&(s=""),window.history.pushState("string","UM Member Directory",window.location.origin+window.location.pathname+s)}function um_members_get_hash(e){return e.data("hash")}function um_is_directory_busy(e){var r=um_members_get_hash(e);return void 0!==um_members_directory_busy[r]&&um_members_directory_busy[r]}function um_members_show_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!0,e.find(".um-members-overlay").show()}function um_members_hide_preloader(e){um_members_directory_busy[um_members_get_hash(e)]=!1,e.find(".um-members-overlay").hide()}function um_set_range_label(e,r){var t=e.siblings(".um-slider-range").data("placeholder");t=r?t.replace("{min_range}",r.values[0]).replace("{max_range}",r.values[1]).replace("{field_label}",e.siblings(".um-slider-range").data("label")):t.replace("{min_range}",e.slider("values",0)).replace("{max_range}",e.slider("values",1)).replace("{field_label}",e.siblings(".um-slider-range").data("label")),e.siblings(".um-slider-range").html(t),e.siblings(".um_range_min").val(e.slider("values",0)),e.siblings(".um_range_max").val(e.slider("values",1))}function um_get_search(e){return e.find(".um-search-line").length?e.find(".um-search-line").val():""}function um_get_sort(e){return e.data("sorting")}function um_get_current_page(e){var r=e.data("page");return r&&void 0!==r||(r=1),r}function um_ajax_get_members(m,t){var a=um_members_get_hash(m),e=um_get_current_page(m),r=um_get_search(m),i=um_get_sort(m),d=-(new Date).getTimezoneOffset()/60,s={directory_id:a,page:e,search:r,sorting:i,gmt_offset:d,post_refferer:m.data("base-post"),nonce:um_scripts.nonce};m.find(".um-search-filter").length&&m.find(".um-search-filter").each(function(){var e=jQuery(this);if(e.find(".um-slider").length){var r=e.find(".um-slider").data("field_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(s[r]=[t,a])}else if(e.find(".um-datepicker-filter").length){r=e.find(".um-datepicker-filter").data("filter_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(s[r]=[t,a])}else if(e.find(".um-timepicker-filter").length){r=e.find(".um-timepicker-filter").data("filter_name"),t=um_get_data_for_directory(m,"filter_"+r+"_from"),a=um_get_data_for_directory(m,"filter_"+r+"_to");void 0===t&&void 0===a||(s[r]=[t,a])}else{r=e.find("select").attr("name");var i=um_get_data_for_directory(m,"filter_"+r);void 0!==i&&(s[r]=i.split("||"))}}),wp.ajax.send("um_get_members",{data:s,success:function(e){um_member_directory_last_data[a]=e,um_build_template(m,e);var r=wp.template("um-members-pagination");m.find(".um-members-pagination-box").html(r(e)),m.data("total_pages",e.pagination.total_pages),e.pagination.total_pages?(m.find(".um-member-directory-sorting-options").prop("disabled",!1),m.find(".um-member-directory-view-type").removeClass("um-disabled")):(m.find(".um-member-directory-sorting-options").prop("disabled",!0),m.find(".um-member-directory-view-type").addClass("um-disabled")),jQuery(document).trigger("um_members_rendered",t),um_init_new_dropdown(),um_members_hide_preloader(m)},error:function(e){console.log(e),um_members_hide_preloader(m)}})}function um_build_template(e,r){var t=e.data("view_type"),a=wp.template("um-member-"+t);e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-members-wrapper").prepend(a(r.users));var i=wp.template("um-members-header");e.find(".um-members-intro").remove(),e.find(".um-members-wrapper").prepend(i(r)),e.addClass("um-loaded"),e.find(".um-members.um-members-grid").length&&UM_Member_Grid(e.find(".um-members.um-members-grid")),jQuery(document).trigger("um_build_template",[e,r]),jQuery(window).trigger("resize"),init_tipsy()}function UM_Member_Grid(e){e.find(".um-member").length&&e.imagesLoaded(function(){e.masonry({itemSelector:".um-member",columnWidth:".um-member",gutter:".um-gutter-sizer"}).on("layoutComplete",function(e,r){jQuery(document).trigger("um_grid_initialized",[e,r])})})}function um_get_filters_data(u){var _=[];return u.find(".um-search-filter").each(function(){var t,a,d,i=jQuery(this);if(i.find("input.um-datepicker-filter").length)d="datepicker",i.find("input.um-datepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(u,"filter_"+e+"_from"),t=um_get_data_for_directory(u,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=u.find('input.um-datepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("input.um-timepicker-filter").length)d="timepicker",i.find("input.um-timepicker-filter").each(function(){if("to"!==jQuery(this).data("range")){var e=jQuery(this).data("filter_name"),r=um_get_data_for_directory(u,"filter_"+e+"_from"),t=um_get_data_for_directory(u,"filter_"+e+"_to");if(void 0!==r||void 0!==t){var a,i=jQuery(this).val(),m=u.find('input.um-timepicker-filter[data-range="to"][data-filter_name="'+e+'"]').val();i===m?a=m:""!==i&&""!==m?a=i+" - "+m:""===i?a="before "+m:""===m&&(a="since "+i),_.push({name:e,label:jQuery(this).data("filter-label"),value_label:a,value:[r,t],type:d})}}});else if(i.find("select").length){d="select",t=i.find("select").attr("name"),a=i.find("select").data("placeholder");var m=um_get_data_for_directory(u,"filter_"+t);m=void 0===m?[]:m.split("||"),jQuery.each(m,function(e){var r=i.find('select option[value="'+m[e]+'"]').data("value_label");_.push({name:t,label:a,value_label:r,value:m[e],type:d})})}else if(i.find("div.ui-slider").length){d="slider",t=i.find("div.ui-slider").data("field_name");var e=um_get_data_for_directory(u,"filter_"+t+"_from"),r=um_get_data_for_directory(u,"filter_"+t+"_to");if(void 0===e&&void 0===r)return;a=i.find("div.um-slider-range").data("label");var s=i.find("div.um-slider-range").data("placeholder").replace("{min_range}",e).replace("{max_range}",r).replace("{field_label}",i.find("div.um-slider-range").data("label"));_.push({name:t,label:a,value_label:s,value:[e,r],type:d})}}),_}function um_change_tag(e){var r=um_get_filters_data(e);e.find(".um-members-filter-tag").remove();var t=e.find(".um-filtered-line");if(t.length){var a=wp.template("um-members-filtered-line");t.prepend(a({filters:r})),0===e.find(".um-members-filter-remove").length?(e.find(".um-clear-filters").hide(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").addClass("um-header-row-invisible")):(e.find(".um-clear-filters").show(),e.find(".um-clear-filters").parents(".um-member-directory-header-row").removeClass("um-header-row-invisible"))}}function um_run_search(e){if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=um_get_data_for_directory(e,"search");if((t=e.find(".um-search-line").val())===r||""===t&&void 0===r)um_members_hide_preloader(e);else{if(e.data("general_search",t),um_set_url_from_data(e,"search",t),e.data("page",1),um_set_url_from_data(e,"page",""),1===e.data("must-search")){var t=um_get_search(e);if(0===e.find(".um-members-filter-remove").length&&!t)return e.data("searched",0),e.find(".um-members-grid, .um-members-list").remove(),e.find(".um-member-directory-sorting-options").prop("disabled",!0),e.find(".um-member-directory-view-type").addClass("um-disabled"),void um_members_hide_preloader(e)}e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled"),um_ajax_get_members(e)}}}jQuery(document).ready(function(){jQuery(".um-search-filter select").each(function(){1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2()}),jQuery(document.body).on("mouseover",".um-member-directory-view-type",function(){if(!jQuery(this).hasClass("um-disabled")){var e=jQuery(this).find(".um-member-directory-view-type-a:visible");e.hide(),e.next().length?e.next().show().tipsy("show"):jQuery(this).find(".um-member-directory-view-type-a:first").show().tipsy("show")}}).on("mouseout",".um-member-directory-view-type",function(){jQuery(this).hasClass("um-disabled")||(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())}),jQuery(document.body).on("click",".um-member-directory-view-type-a",function(){var e=jQuery(this).parents(".um-directory");if(um_is_directory_busy(e))return!1;var r=jQuery(this),t=r.parents(".um-member-directory-view-type");if(!t.hasClass("um-disabled")){um_members_show_preloader(e);var a=t.find(".um-member-directory-view-type-a:visible");a.hide(),a.next().length?a.next().show().tipsy("show"):t.find(".um-member-directory-view-type-a:first").show().tipsy("show");var i=um_member_directory_last_data[um_members_get_hash(e)];if(null!==i){var m=r.data("type");um_set_url_from_data(e,"view_type",m),e.data("view_type",m),um_build_template(e,i)}um_members_hide_preloader(e)}}),jQuery(document.body).on("click",".um-do-search",function(){um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("keypress",".um-search-line",function(e){13===e.which&&um_run_search(jQuery(this).parents(".um-directory"))}),jQuery(document.body).on("click",".um-member-directory-sorting-a .um-new-dropdown li a",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)&&1!==jQuery(this).data("selected")){um_members_show_preloader(e);var r=jQuery(this).data("value");e.data("sorting",r),um_set_url_from_data(e,"sort",r),um_ajax_get_members(e),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())}}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){if(!jQuery(this).hasClass("disabled")){var e,r=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(r))um_members_show_preloader(r),1===(e="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?1*r.data("page")-1:"next"===jQuery(this).data("page")?1*r.data("page")+1:"last"===jQuery(this).data("page")?parseInt(r.data("total_pages")):parseInt(jQuery(this).data("page")))?(r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled")):(e===parseInt(r.data("total_pages"))?r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass("disabled")),r.find(".pagi").removeClass("current"),r.find('.pagi[data-page="'+e+'"]').addClass("current"),r.data("page",e),um_set_url_from_data(r,"page",1===e?"":e),um_ajax_get_members(r)}}),jQuery(document.body).on("change",".um-directory .um-members-pagi-dropdown",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).val();e.find(".pagi").removeClass("current"),e.find('.pagi[data-page="'+r+'"]').addClass("current"),e.data("page",r),um_set_url_from_data(e,"page",1===r?"":r),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-members.um-members-list .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-more").hide(),r.find(".um-member-meta-main").slideDown(),r.find(".um-member-less").fadeIn(),!1}),jQuery(document.body).on("click",".um-members.um-members-list .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-less").hide(),r.find(".um-member-meta-main").slideUp(),r.find(".um-member-more").fadeIn(),!1}),jQuery(document.body).on("click",".um-members.um-members-grid .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(t)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(t)},100),!1}),jQuery(document.body).on("click",".um-members.um-members-grid .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(t)}),!1}),jQuery(".um-member-directory-filters-a").click(function(){var e=jQuery(this),r=e.parents(".um-directory").find(".um-search");r.is(":visible")?r.slideUp(250,function(){e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}):r.slideDown({start:function(){jQuery(this).css({display:"grid"}),e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}},250)}),jQuery(document.body).on("change",".um-search-filter select",function(){if(""!==jQuery(this).val()){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).prop("name"),t=um_get_data_for_directory(e,"filter_"+r);t=void 0===t?[]:t.split("||"),-1===jQuery.inArray(jQuery(this).val(),t)&&(t.push(jQuery(this).val()),um_set_url_from_data(e,"filter_"+r,t=t.join("||")),e.data("page",1),um_set_url_from_data(e,"page","")),jQuery(this).find('option[value="'+jQuery(this).val()+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2(),jQuery(this).val("").trigger("change"),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled")}}}),jQuery(document.body).on("click",".um-members-filter-remove",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).data("value"),t=jQuery(this).data("name"),a=jQuery(this).data("type");if("select"===a){var i=um_get_data_for_directory(e,"filter_"+t);i=void 0===i?[]:i.split("||"),-1!==jQuery.inArray(r.toString(),i)&&(i=jQuery.grep(i,function(e){return e!==r.toString()})),i.length||(i=""),um_set_url_from_data(e,"filter_"+t,i);var m=jQuery('.um-search-filter select[name="'+t+'"]');m.find('option[value="'+r+'"]').prop("disabled",!1).show(),1 a").html(jQuery(this).html())}}),jQuery(document.body).on("click",".um-directory .pagi:not(.current)",function(){if(!jQuery(this).hasClass("disabled")){var e,r=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(r))um_members_show_preloader(r),1===(e="first"===jQuery(this).data("page")?1:"prev"===jQuery(this).data("page")?1*r.data("page")-1:"next"===jQuery(this).data("page")?1*r.data("page")+1:"last"===jQuery(this).data("page")?parseInt(r.data("total_pages")):parseInt(jQuery(this).data("page")))?(r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').addClass("disabled"),r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled")):(e===parseInt(r.data("total_pages"))?r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').addClass("disabled"):r.find('.pagi[data-page="prev"], .pagi[data-page="last"]').removeClass("disabled"),r.find('.pagi[data-page="first"], .pagi[data-page="prev"]').removeClass("disabled")),r.find(".pagi").removeClass("current"),r.find('.pagi[data-page="'+e+'"]').addClass("current"),r.data("page",e),um_set_url_from_data(r,"page",1===e?"":e),um_ajax_get_members(r)}}),jQuery(document.body).on("change",".um-directory .um-members-pagi-dropdown",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).val();e.find(".pagi").removeClass("current"),e.find('.pagi[data-page="'+r+'"]').addClass("current"),e.data("page",r),um_set_url_from_data(e,"page",1===r?"":r),um_ajax_get_members(e)}}),jQuery(document.body).on("click",".um-members.um-members-list .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-more").hide(),r.find(".um-member-meta-main").slideDown(),r.find(".um-member-less").fadeIn(),!1}),jQuery(document.body).on("click",".um-members.um-members-list .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member");return r.find(".um-member-less").hide(),r.find(".um-member-meta-main").slideUp(),r.find(".um-member-more").fadeIn(),!1}),jQuery(document.body).on("click",".um-members.um-members-grid .um-member-more a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-more").hide(),r.find(".um-member-meta").slideDown(function(){UM_Member_Grid(t)}),r.find(".um-member-less").fadeIn(),setTimeout(function(){UM_Member_Grid(t)},100),!1}),jQuery(document.body).on("click",".um-members.um-members-grid .um-member-less a",function(e){e.preventDefault();var r=jQuery(this).parents(".um-member"),t=jQuery(this).parents(".um-members");return r.find(".um-member-less").hide(),r.find(".um-member-meta").slideUp(function(){r.find(".um-member-more").fadeIn(),UM_Member_Grid(t)}),!1}),jQuery(".um-member-directory-filters-a").click(function(){var e=jQuery(this),r=e.parents(".um-directory").find(".um-search");r.is(":visible")?r.slideUp(250,function(){e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}):r.slideDown({start:function(){jQuery(this).css({display:"grid"}),e.toggleClass("um-member-directory-filters-visible"),r.parents(".um-member-directory-header-row").toggleClass("um-header-row-invisible")}},250)}),jQuery(document.body).on("change",".um-search-filter select",function(){if(""!==jQuery(this).val()){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).prop("name"),t=um_get_data_for_directory(e,"filter_"+r);t=void 0===t?[]:t.split("||"),-1===jQuery.inArray(jQuery(this).val(),t)&&(t.push(jQuery(this).val()),um_set_url_from_data(e,"filter_"+r,t=t.join("||")),e.data("page",1),um_set_url_from_data(e,"page","")),jQuery(this).find('option[value="'+jQuery(this).val()+'"]').prop("disabled",!0).hide(),1===jQuery(this).find("option:not(:disabled)").length&&jQuery(this).prop("disabled",!0),jQuery(this).select2("destroy").select2(),jQuery(this).val("").trigger("change"),um_ajax_get_members(e),um_change_tag(e),e.data("searched",1),e.find(".um-member-directory-sorting-options").prop("disabled",!1),e.find(".um-member-directory-view-type").removeClass("um-disabled")}}}),jQuery(document.body).on("click",".um-members-filter-remove",function(){var e=jQuery(this).parents(".um-directory");if(!um_is_directory_busy(e)){um_members_show_preloader(e);var r=jQuery(this).data("value"),t=jQuery(this).data("name"),a=jQuery(this).data("type");if("select"===a){var i=um_get_data_for_directory(e,"filter_"+t);i=void 0===i?[]:i.split("||"),-1!==jQuery.inArray(r.toString(),i)&&(i=jQuery.grep(i,function(e){return e!==r.toString()})),i.length||(i=""),um_set_url_from_data(e,"filter_"+t,i);var m=jQuery('.um-search-filter select[name="'+t+'"]');m.find('option[value="'+r+'"]').prop("disabled",!1).show(),1 a").html(t.find('a[data-value="'+r+'"]').html())}if(d.find(".um-member-directory-view-type").length){var a=um_get_data_for_directory(d,"view_type");void 0===a&&(a=d.find('.um-member-directory-view-type-a[data-default="1"]').data("type")),d.data("view_type",a),d.find(".um-member-directory-view-type .um-member-directory-view-type-a").hide(),d.find('.um-member-directory-view-type .um-member-directory-view-type-a[data-type="'+a+'"]').show()}if(d.find(".um-datepicker-filter").each(function(){var e=jQuery(this),r=e.pickadate("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);void 0!==i?r.set("select",1e3*i):r.clear()}),d.find(".um-slider").each(function(){var e=jQuery(this),r=e.data("field_name"),t=um_get_data_for_directory(d,"filter_"+r+"_from"),a=um_get_data_for_directory(d,"filter_"+r+"_to");void 0===t&&(t=e.data("min")),t=parseInt(t),void 0===a&&(a=e.data("max")),a=parseInt(a),e.slider("values",[t,a]),um_set_range_label(e)}),d.find(".um-timepicker-filter").each(function(){var e=jQuery(this),r=e.pickatime("picker"),t=e.data("filter_name"),a=e.data("range"),i=um_get_data_for_directory(d,"filter_"+t+"_"+a);if(void 0!==i){var m=i.split(":");r.set("select",60*m[0])}else r.clear()}),1===d.data("must-search")){var i=um_get_search(d);if(!um_get_filters_data(d).length&&!i)return d.data("searched",0),void um_members_hide_preloader(d);d.data("searched",1)}um_ajax_get_members(d),um_change_tag(d)})})}); \ No newline at end of file diff --git a/assets/sass/um-members.sass b/assets/sass/um-members.sass index 2851adb7..62c34657 100644 --- a/assets/sass/um-members.sass +++ b/assets/sass/um-members.sass @@ -339,6 +339,12 @@ body -moz-border-radius: 0 !important -webkit-border-radius: 0 !important border-radius: 0 !important + .um-member-card + .um-member-name + +flex( row, flex-start, baseline, nowrap ) + a + +flex( row, flex-start, center, nowrap ) + img display: block @@ -424,6 +430,7 @@ body .um-member-name margin: 0 0 4px 0 + justify-content: center a font-size: 16px line-height: 26px @@ -544,7 +551,7 @@ body .um-member-card-container +flex( row, flex-start, flex-start, nowrap ) width: 100% - margin: 0 + margin: 0 0 10px 0 padding: 0 .um-member-photo width: 100px @@ -659,6 +666,7 @@ body .um-new-dropdown width: 180px right: 0 + text-align: left a box-sizing: border-box @@ -703,13 +711,20 @@ body content: "\f013" .um-member-card-footer - +flex( row, flex-end, baseline, nowrap ) + +flex( row, flex-end, center, nowrap ) width: 100% .um-member-card-footer-buttons +flex( row, flex-start, baseline, nowrap ) width: calc( 100% - 145px ) margin: 0 10px 0 0 + + .um-members-list-footer-button-wrapper + +flex( row, flex-start, baseline, nowrap ) + margin: 0 + //flex: 1 0 calc( ( 100% - 20px ) / 3 ) + & > :not(:last-child) + margin: 0 10px 0 0 .um-member-card-reveal-buttons width: 20px text-align: right @@ -865,10 +880,15 @@ body width: calc( 100% - 60px ) .um-member-card-footer + align-items: flex-start .um-member-card-footer-buttons - +flex( row, flex-start, baseline, nowrap ) + +flex( column, flex-start, stretch, nowrap ) width: calc( 100% - 90px ) margin: 0 10px 0 0 + .um-members-list-footer-button-wrapper + margin: 0 0 5px 0 + a.um-button + width: 100% !important &.uimob500 @@ -908,10 +928,13 @@ body .um-member-card width: calc( 100% - 80px ) .um-member-card-footer + align-items: flex-start .um-member-card-footer-buttons - +flex( row, flex-start, baseline, nowrap ) + flex-wrap: wrap width: calc( 100% - 110px ) margin: 0 10px 0 0 + .um-members-list-footer-button-wrapper + margin: 0 10px 5px 0 &.uimob800 .um-member-directory-header .um-member-directory-header-row @@ -942,10 +965,13 @@ body .um-member-card width: calc( 100% - 90px ) .um-member-card-footer + align-items: flex-start .um-member-card-footer-buttons - +flex( row, flex-start, baseline, nowrap ) + flex-wrap: wrap width: calc( 100% - 120px ) margin: 0 10px 0 0 + .um-members-list-footer-button-wrapper + margin: 0 10px 5px 0 &.uimob960 .um-member-directory-header .um-search diff --git a/includes/admin/core/packages/2.1.0-alpha3/functions.php b/includes/admin/core/packages/2.1.0-alpha3/functions.php deleted file mode 100644 index b0668f8e..00000000 --- a/includes/admin/core/packages/2.1.0-alpha3/functions.php +++ /dev/null @@ -1,14 +0,0 @@ -admin()->check_ajax_nonce(); - - um_maybe_unset_time_limit(); - - include 'metadata.php'; - - update_option( 'um_last_version_upgrade', '2.1.0-alpha3' ); - - wp_send_json_success( array( 'message' => __( 'Usermeta was upgraded successfully', 'ultimate-member' ) ) ); -} \ No newline at end of file diff --git a/includes/admin/core/packages/2.1.0-alpha3/hooks.php b/includes/admin/core/packages/2.1.0-alpha3/hooks.php deleted file mode 100644 index b34a7ada..00000000 --- a/includes/admin/core/packages/2.1.0-alpha3/hooks.php +++ /dev/null @@ -1,5 +0,0 @@ - 'metadata210alpha3', -); \ No newline at end of file diff --git a/includes/admin/core/packages/2.1.0-alpha3/init.php b/includes/admin/core/packages/2.1.0-alpha3/init.php deleted file mode 100644 index b2d0aeca..00000000 --- a/includes/admin/core/packages/2.1.0-alpha3/init.php +++ /dev/null @@ -1,31 +0,0 @@ - - - - \ No newline at end of file diff --git a/includes/admin/core/packages/2.1.0-alpha4/functions.php b/includes/admin/core/packages/2.1.0-alpha4/functions.php new file mode 100644 index 00000000..cea9e7b2 --- /dev/null +++ b/includes/admin/core/packages/2.1.0-alpha4/functions.php @@ -0,0 +1,25 @@ +admin()->check_ajax_nonce(); + + um_maybe_unset_time_limit(); + + include 'metadata.php'; + + wp_send_json_success( array( 'message' => __( 'Usermeta was upgraded successfully', 'ultimate-member' ) ) ); +} + + +function um_upgrade_memberdir210alpha4() { + UM()->admin()->check_ajax_nonce(); + + um_maybe_unset_time_limit(); + + include 'member-directory.php'; + + update_option( 'um_last_version_upgrade', '2.1.0-alpha4' ); + + wp_send_json_success( array( 'message' => __( 'Member directories were upgraded successfully', 'ultimate-member' ) ) ); +} \ No newline at end of file diff --git a/includes/admin/core/packages/2.1.0-alpha4/hooks.php b/includes/admin/core/packages/2.1.0-alpha4/hooks.php new file mode 100644 index 00000000..210d66a0 --- /dev/null +++ b/includes/admin/core/packages/2.1.0-alpha4/hooks.php @@ -0,0 +1,6 @@ + 'metadata210alpha4', + 'memberdir210alpha4' => 'memberdir210alpha4', +); \ No newline at end of file diff --git a/includes/admin/core/packages/2.1.0-alpha4/init.php b/includes/admin/core/packages/2.1.0-alpha4/init.php new file mode 100644 index 00000000..22495c1b --- /dev/null +++ b/includes/admin/core/packages/2.1.0-alpha4/init.php @@ -0,0 +1,57 @@ + + + + \ No newline at end of file diff --git a/includes/admin/core/packages/2.1.0-alpha4/member-directory.php b/includes/admin/core/packages/2.1.0-alpha4/member-directory.php new file mode 100644 index 00000000..c34703cb --- /dev/null +++ b/includes/admin/core/packages/2.1.0-alpha4/member-directory.php @@ -0,0 +1,93 @@ +get_results( "SELECT * FROM {$wpdb->postmeta} WHERE meta_key='_um_show_pm_button'", ARRAY_A ); +if ( ! empty( $postmeta ) ) { + foreach ( $postmeta as $row ) { + $value = ( $row['meta_value'] == 0 ) ? 1 : 0; + update_post_meta( $row['post_id'], '_um_hide_pm_button', $value ); + } + + $wpdb->delete( "{$wpdb->postmeta}", + array( + 'meta_value' => '_um_show_pm_button', + ), + array( + '%s' + ) + ); +} + +// Update role_select and role_radio filters to role +$postmeta = $wpdb->get_results( "SELECT * FROM {$wpdb->postmeta} WHERE meta_key='_um_search_fields'", ARRAY_A ); +if ( ! empty( $postmeta ) ) { + foreach ( $postmeta as $row ) { + $meta_value = maybe_unserialize( $row['meta_value'] ); + + if ( is_array( $meta_value ) ) { + $update = false; + + if ( false !== ( $index = array_search( 'role_select', $meta_value ) ) ) { + unset( $meta_value[ array_search( 'role_select', $meta_value ) ] ); + $meta_value[] = 'role'; + $update = true; + } + + if ( false !== ( $index = array_search( 'role_radio', $meta_value ) ) ) { + unset( $meta_value[ array_search( 'role_radio', $meta_value ) ] ); + $meta_value[] = 'role'; + $update = true; + } + + if ( $update ) { + update_post_meta( $row['post_id'], '_um_search_fields', array_unique( $meta_value ) ); + } + } + } +} + + +$forms_query = new WP_Query; +$member_directories = $forms_query->query( array( + 'post_type' => 'um_directory', + 'posts_per_page' => -1, + 'fields' => 'ids', +) ); + +if ( ! empty( $member_directories ) && ! is_wp_error( $member_directories ) ) { + foreach ( $member_directories as $id ) { + update_post_meta( $id, '_um_view_types', array( 'grid' ) ); + update_post_meta( $id, '_um_default_view', 'grid' ); + + $search_enabled = get_post_meta( $id, '_um_search', true ); + if ( $search_enabled ) { + $search_fields = $search_fields_old = get_post_meta( $id, '_um_search_fields', true ); + if ( ! empty( $search_fields ) ) { + $can_search_roles = get_post_meta( $id, '_um_roles_can_search', true ); + + if ( false !== ( $last_login_key = array_search( '_um_last_login', $search_fields ) ) ) { + unset( $search_fields[ $last_login_key ] ); + $search_fields[] = 'last_login'; + } + + $filter_fields = array_intersect( $search_fields, array_keys( UM()->member_directory()->filter_fields ) ); + + $general_search_fields = array_diff( $search_fields, array_keys( UM()->member_directory()->filter_fields ) ); + $search_active = count( $general_search_fields ) > 0 ? 1 : 0; + update_post_meta( $id, '_um_search', $search_active ); + + update_post_meta( $id, '_um_filters', 1 ); + update_post_meta( $id, '_um_roles_can_filter', $can_search_roles ); + update_post_meta( $id, '_um_search_fields', $filter_fields ); + update_post_meta( $id, '_um_search_fields_old', $search_fields_old ); + } else { + update_post_meta( $id, '_um_search', 0 ); + update_post_meta( $id, '_um_filters', 0 ); + } + } + + update_post_meta( $id, '_um_search_old', $search_enabled ); + } +} \ No newline at end of file diff --git a/includes/admin/core/packages/2.1.0-alpha3/metadata.php b/includes/admin/core/packages/2.1.0-alpha4/metadata.php similarity index 100% rename from includes/admin/core/packages/2.1.0-alpha3/metadata.php rename to includes/admin/core/packages/2.1.0-alpha4/metadata.php diff --git a/includes/admin/templates/directory/general.php b/includes/admin/templates/directory/general.php index e7d24dde..ab07126f 100644 --- a/includes/admin/templates/directory/general.php +++ b/includes/admin/templates/directory/general.php @@ -2,14 +2,6 @@ global $post_id; -$meta = get_post_custom( get_the_ID() ); -foreach( $meta as $k => $v ) { - if ( strstr( $k, '_um_' ) && !is_array( $v[0] ) ) { - //print "'$k' => '" . $v[0] . "',
"; - } -} - - $_um_roles_value = get_post_meta( $post_id, '_um_roles', true ); $_um_roles_value = empty( $_um_roles_value ) ? array() : $_um_roles_value; @@ -19,7 +11,7 @@ if ( $show_these_users ) { } $_um_view_types_value = get_post_meta( $post_id, '_um_view_types', true ); -$_um_view_types_value = empty( $_um_view_types_value ) ? array( 'grid', 'list' ) : $_um_view_types_value; +$_um_view_types_value = empty( $_um_view_types_value ) ? array( 'grid', 'list' ) : $_um_view_types_value; $view_types_options = array_map( function( $item ) { return $item['title']; @@ -28,8 +20,7 @@ $view_types_options = array_map( function( $item ) { $conditional = array(); foreach ( $view_types_options as $key => $value ) { $conditional[] = '_um_view_types_' . $key; -} -?> +} ?>
diff --git a/includes/core/class-enqueue.php b/includes/core/class-enqueue.php index 77cf6ce2..7f935ae4 100644 --- a/includes/core/class-enqueue.php +++ b/includes/core/class-enqueue.php @@ -137,7 +137,7 @@ if ( ! class_exists( 'um\core\Enqueue' ) ) { 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_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks' ), 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 ); diff --git a/includes/core/class-member-directory.php b/includes/core/class-member-directory.php index a5b13c1d..b2af0ad7 100644 --- a/includes/core/class-member-directory.php +++ b/includes/core/class-member-directory.php @@ -292,6 +292,9 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { } + /** + * + */ function init_filter_types() { $this->filter_types = apply_filters( 'um_members_directory_filter_types', array( 'country' => 'select', @@ -386,7 +389,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { * } * ?> */ - $attrs = apply_filters( "um_custom_search_field_{$filter}", array() ); + $attrs = apply_filters( "um_custom_search_field_{$filter}", array(), $field_key ); } /** @@ -410,7 +413,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { * } * ?> */ - $attrs = apply_filters( 'um_search_fields', $attrs ); + $attrs = apply_filters( 'um_search_fields', $attrs, $field_key ); $unique_hash = substr( md5( $directory_data['form_id'] ), 10, 5 ); @@ -583,7 +586,6 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { */ function slider_filters_range( $filter, $directory_data ) { - switch ( $filter ) { default: { @@ -638,10 +640,10 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { if ( ! $placeholder ) { switch ( $attrs['type'] ) { default: - $placeholder = "$label: {min_range} - {max_range}"; + $placeholder = "$label: {min_range} - {max_range}"; break; case 'rating': - $placeholder = "$label: {min_range} - {max_range}" . __( ' stars', 'ultimate-member' ); + $placeholder = "$label: {min_range} - {max_range}" . __( ' stars', 'ultimate-member' ); break; } } @@ -649,7 +651,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { break; } case 'birth_date': { - $placeholder = __( 'Age: {min_range} - {max_range} years old', 'ultimate-member' ); + $placeholder = __( 'Age: {min_range} - {max_range} years old', 'ultimate-member' ); break; } } @@ -1250,7 +1252,9 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { } } - if ( empty( $filter_query ) ) { + $ignore_empty_filters = apply_filters( 'um_member_directory_ignore_empty_filters', false ); + + if ( empty( $filter_query ) && ! $ignore_empty_filters ) { add_filter( 'um_member_directory_organic_search_replacement', array( &$this, 'organic_replacement' ) ); return; } @@ -1484,7 +1488,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { $current_page = ! empty( $_POST['page'] ) ? $_POST['page'] : 1; - $total_users = ( ! empty( $max_users ) && $max_users <= $result->total_users ) ? $max_users : $result->total_users; + $total_users = ( ! empty( $directory_data['max_users'] ) && $directory_data['max_users'] <= $result->total_users ) ? $directory_data['max_users'] : $result->total_users; $total_pages = ceil( $total_users / $directory_data['profiles_per_page'] ); if ( ! empty( $total_pages ) ) { @@ -1732,6 +1736,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { wp_send_json_success( array( 'users' => array(), 'pagination' => $pagination_data ) ); } + do_action( 'um_member_directory_before_query' ); // Prepare for BIG SELECT query $wpdb->query( 'SET SQL_BIG_SELECTS=1' ); @@ -1818,8 +1823,6 @@ 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 ); /** diff --git a/includes/core/class-shortcodes.php b/includes/core/class-shortcodes.php index d166c980..4b9795a5 100644 --- a/includes/core/class-shortcodes.php +++ b/includes/core/class-shortcodes.php @@ -542,21 +542,22 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { */ function load( $args ) { $defaults = array(); - $args = wp_parse_args($args, $defaults); + $args = wp_parse_args( $args, $defaults ); // when to not continue - $this->form_id = (isset($args['form_id'])) ? $args['form_id'] : null; - if (!$this->form_id) { + $this->form_id = isset( $args['form_id'] ) ? $args['form_id'] : null; + if ( ! $this->form_id ) { return; } - $this->form_status = get_post_status($this->form_id); - if ($this->form_status != 'publish') { + $this->form_status = get_post_status( $this->form_id ); + if ( $this->form_status != 'publish' ) { return; } // get data into one global array $post_data = UM()->query()->post_data( $this->form_id ); + $args = array_merge( $args, $post_data ); ob_start(); @@ -581,7 +582,7 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) { * } * ?> */ - $args = apply_filters( 'um_pre_args_setup', $post_data ); + $args = apply_filters( 'um_pre_args_setup', $args ); if ( ! isset( $args['template'] ) ) { $args['template'] = ''; diff --git a/readme.txt b/readme.txt index 559c0842..1577220b 100644 --- a/readme.txt +++ b/readme.txt @@ -4,9 +4,9 @@ Plugin URI: https://ultimatemember.com/ Contributors: ultimatemember, champsupertramp, nsinelnikov Donate link: Tags: community, member, membership, user-profile, user-registration -Requires at least: 4.9 +Requires at least: 5.0 Tested up to: 5.2 -Stable tag: 2.0.56 +Stable tag: 2.1.0 License: GNU Version 2 or Any Later Version License URI: http://www.gnu.org/licenses/gpl-3.0.txt diff --git a/templates/members.php b/templates/members.php index 9007e122..ec7b6664 100644 --- a/templates/members.php +++ b/templates/members.php @@ -13,17 +13,14 @@ $unique_hash = substr( md5( $args['form_id'] ), 10, 5 ); $args = array_merge( $def_args, $args ); - //current user priority role $priority_user_role = false; if ( is_user_logged_in() ) { $priority_user_role = UM()->roles()->get_priority_user_role( um_user( 'ID' ) ); } - $args = apply_filters( 'um_member_directory_agruments_on_load', $args ); - // Views $single_view = false; $current_view = 'grid'; @@ -44,8 +41,10 @@ if ( empty( $args['view_types'] ) || ! is_array( $args['view_types'] ) ) { if ( count( $args['view_types'] ) == 1 ) { $single_view = true; $current_view = $args['view_types'][0]; + $default_view = $current_view; } else { $args['default_view'] = ! empty( $args['default_view'] ) ? $args['default_view'] : $args['view_types'][0]; + $default_view = $args['default_view']; $current_view = ( ! empty( $_GET[ 'view_type_' . $unique_hash ] ) && in_array( $_GET[ 'view_type_' . $unique_hash ], $args['view_types'] ) ) ? $_GET[ 'view_type_' . $unique_hash ] : $args['default_view']; } @@ -178,7 +177,8 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea
+ data-view_type="" data-page="" + data-sorting="">
@@ -213,6 +213,7 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea @@ -235,7 +236,7 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea $title ) { - $items[] = '' . $title . ''; ?> + $items[] = '' . $title . ''; ?> member_directory()->dropdown_menu( '.um-member-directory-sorting-a', 'click', $items ); ?> @@ -262,22 +263,22 @@ if ( ( ( $search && $show_search ) || ( $filters && $show_filters && count( $sea if ( is_array( $search_filters ) ) { ?> diff --git a/ultimate-member.php b/ultimate-member.php index fcb751db..77ee425a 100644 --- a/ultimate-member.php +++ b/ultimate-member.php @@ -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-alpha3 +Version: 2.1.0-alpha4 Author: Ultimate Member Author URI: http://ultimatemember.com/ Text Domain: ultimate-member