mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-20 07:04:06 +09:00
!!! IMPORTANT 2.0 version before upgrade please run full backup of your site !!!
- new code structure, optimized for next development; - created spl_autoloader for remove includes; - UM classes with namespaces; - deprecated global $ultimatemember; variable (use UM() instead); - new UM/WP roles logic; - new settings class and logic (deprecated Redux framework, deprecated some old options, added some new options); - new dependencies class for extensions; - WP native styles for backend fields; - new upgrades and license activations for extensions; - new logic form backend forms and fields; - created uninstall.php file for delete permanently all UM settings; - optimized registration/upgrade profile process; Deprecated Hooks: um_new_user_registration_plain um_user_registration_extra_hook um_add_user_frontend um_post_registration_global_hook um_admin_extend_directory_options_general (was action...will be filter)
This commit is contained in:
@@ -0,0 +1,241 @@
|
||||
jQuery(document).ready( function() {
|
||||
|
||||
/**
|
||||
* Multi-selects field
|
||||
*/
|
||||
jQuery( 'body' ).on( 'click', '.um-select-delete', function() {
|
||||
jQuery( this ).parents( 'li.um-multi-selects-option-line' ).remove();
|
||||
});
|
||||
|
||||
|
||||
jQuery( '.um-multi-selects-add-option' ).click( function() {
|
||||
var list = jQuery(this).siblings('ul.um-multi-selects-list');
|
||||
|
||||
var field_id = list.data('field_id');
|
||||
var k = 0;
|
||||
if ( list.find( 'li:last select.um-forms-field' ).length > 0 ) {
|
||||
k = list.find( 'li:last select.um-forms-field' ).attr('id').split("-");
|
||||
k = k[1]*1 + 1;
|
||||
}
|
||||
|
||||
var selector_html = jQuery( '<div>' ).append( list.siblings('.um-hidden-multi-selects').clone() ).html();
|
||||
|
||||
var classes = list.find('li:last').attr('class');
|
||||
|
||||
list.append(
|
||||
'<li class="' + classes + '"><span class="um-field-wrapper">' + selector_html +
|
||||
'</span><span class="um-field-control"><a href="javascript:void(0);" class="um-select-delete">' + php_data.texts.remove + '</a></span></li>'
|
||||
);
|
||||
|
||||
list.find('li:last .um-hidden-multi-selects').attr('name', jQuery(this).data('name') ).
|
||||
addClass('um-forms-field um-long-field').removeClass('um-hidden-multi-selects').attr('id', list.data('id_attr') + '-' + k);
|
||||
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Multi-text field
|
||||
*/
|
||||
jQuery( 'body' ).on( 'click', '.um-text-delete', function() {
|
||||
jQuery(this).parents('li.um-multi-text-option-line').remove();
|
||||
});
|
||||
|
||||
|
||||
jQuery( '.um-multi-text-add-option' ).click( function() {
|
||||
var list = jQuery(this).siblings( 'ul.um-multi-text-list' );
|
||||
|
||||
var field_id = list.data( 'field_id' );
|
||||
var k = 0;
|
||||
if ( list.find( 'li:last input.um-forms-field' ).length > 0 ) {
|
||||
k = list.find( 'li:last input.um-forms-field' ).attr('id').split("-");
|
||||
k = k[1]*1 + 1;
|
||||
}
|
||||
|
||||
var text_html = jQuery( '<div>' ).append( list.siblings('.um-hidden-multi-text').clone() ).html();
|
||||
|
||||
var classes = list.find('li:last').attr('class');
|
||||
|
||||
list.append(
|
||||
'<li class="' + classes + '"><span class="um-field-wrapper">' + text_html +
|
||||
'</span><span class="um-field-control"><a href="javascript:void(0);" class="um-text-delete">' + php_data.texts.remove + '</a></span></li>'
|
||||
);
|
||||
|
||||
list.find('li:last .um-hidden-multi-text').attr('name', jQuery(this).data('name') ).
|
||||
addClass('um-forms-field um-long-field').removeClass('um-hidden-multi-text').attr('id', list.data('id_attr') + '-' + k);
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Media uploader
|
||||
*/
|
||||
jQuery( '.um-media-upload' ).each( function() {
|
||||
var field = jQuery(this).find( '.um-forms-field' );
|
||||
var default_value = field.data('default');
|
||||
|
||||
if ( field.val() != '' && field.val() != default_value ) {
|
||||
field.siblings('.um-set-image').hide();
|
||||
field.siblings('.um-clear-image').show();
|
||||
field.siblings('.icon_preview').show();
|
||||
} else {
|
||||
if ( field.val() == default_value ) {
|
||||
field.siblings('.icon_preview').show();
|
||||
}
|
||||
field.siblings('.um-set-image').show();
|
||||
field.siblings('.um-clear-image').hide();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if ( typeof wp !== 'undefined' && wp.media && wp.media.editor ) {
|
||||
var frame;
|
||||
|
||||
jQuery( '.um-set-image' ).click( function(e) {
|
||||
var button = jQuery(this);
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
// If the media frame already exists, reopen it.
|
||||
if ( frame ) {
|
||||
frame.remove();
|
||||
/*frame.open();
|
||||
return;*/
|
||||
}
|
||||
|
||||
// Create a new media frame
|
||||
frame = wp.media({
|
||||
title: button.data('upload_frame'),
|
||||
button: {
|
||||
text: php_data.texts.select
|
||||
},
|
||||
multiple: false // Set to true to allow multiple files to be selected
|
||||
});
|
||||
|
||||
// When an image is selected in the media frame...
|
||||
frame.on( 'select', function() {
|
||||
// Get media attachment details from the frame state
|
||||
var attachment = frame.state().get('selection').first().toJSON();
|
||||
|
||||
// Send the attachment URL to our custom image input field.
|
||||
button.siblings('.icon_preview').attr( 'src', attachment.url ).show();
|
||||
|
||||
button.siblings('.um-forms-field').val( attachment.url );
|
||||
button.siblings('.um-media-upload-data-id').val(attachment.id);
|
||||
button.siblings('.um-media-upload-data-width').val(attachment.width);
|
||||
button.siblings('.um-media-upload-data-height').val(attachment.height);
|
||||
button.siblings('.um-media-upload-data-thumbnail').val(attachment.thumbnail);
|
||||
button.siblings('.um-media-upload-url').val(attachment.url);
|
||||
|
||||
button.siblings('.um-clear-image').show();
|
||||
button.hide();
|
||||
});
|
||||
|
||||
frame.open();
|
||||
});
|
||||
|
||||
jQuery('.icon_preview').click( function(e) {
|
||||
jQuery(this).siblings('.um-set-image').trigger('click');
|
||||
});
|
||||
|
||||
jQuery('.um-clear-image').click( function(e) {
|
||||
var default_image_url = jQuery(this).siblings('.um-forms-field').data('default');
|
||||
jQuery(this).siblings('.um-set-image').show();
|
||||
jQuery(this).hide();
|
||||
jQuery(this).siblings('.icon_preview').attr( 'src', default_image_url );
|
||||
jQuery(this).siblings('.um-media-upload-data-id').val('');
|
||||
jQuery(this).siblings('.um-media-upload-data-width').val('');
|
||||
jQuery(this).siblings('.um-media-upload-data-height').val('');
|
||||
jQuery(this).siblings('.um-media-upload-data-thumbnail').val('');
|
||||
jQuery(this).siblings('.um-forms-field').val( default_image_url );
|
||||
jQuery(this).siblings('.um-media-upload-url').val( default_image_url );
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* On option fields change
|
||||
*/
|
||||
jQuery('body').on('change', '.um-forms-field', function() {
|
||||
if ( jQuery('.um-forms-line[data-conditional*=\'"' + jQuery(this).data('field_id') + '",\']').length > 0 ) {
|
||||
run_check_conditions();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//first load hide unconditional fields
|
||||
run_check_conditions();
|
||||
|
||||
|
||||
/**
|
||||
* Run conditional logic
|
||||
*/
|
||||
function run_check_conditions() {
|
||||
jQuery( '.um-forms-line' ).removeClass('um-forms-line-conditioned').each( function() {
|
||||
if ( typeof jQuery(this).data('conditional') === 'undefined' || jQuery(this).hasClass('um-forms-line-conditioned') )
|
||||
return;
|
||||
|
||||
if ( check_condition( jQuery(this) ) )
|
||||
jQuery(this).show();
|
||||
else
|
||||
jQuery(this).hide();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Conditional logic
|
||||
*
|
||||
* true - show field
|
||||
* false - hide field
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function check_condition( form_line ) {
|
||||
|
||||
form_line.addClass( 'um-forms-line-conditioned' );
|
||||
|
||||
var conditional = form_line.data('conditional');
|
||||
var condition = conditional[1];
|
||||
var value = conditional[2];
|
||||
|
||||
var prefix = form_line.data( 'prefix' );
|
||||
//var prefix = form_line.parents( '.um-form-table' ).data( 'prefix' );
|
||||
|
||||
var condition_field = jQuery( '#' + prefix + '_' + conditional[0] );
|
||||
var parent_condition = true;
|
||||
if ( typeof condition_field.parents('.um-forms-line').data('conditional') !== 'undefined' ) {
|
||||
parent_condition = check_condition( condition_field.parents('.um-forms-line') );
|
||||
}
|
||||
|
||||
var own_condition = false;
|
||||
if ( condition == '=' ) {
|
||||
var tagName = condition_field.prop("tagName").toLowerCase();
|
||||
|
||||
if ( tagName == 'input' ) {
|
||||
var input_type = condition_field.attr('type');
|
||||
if ( input_type == 'checkbox' ) {
|
||||
own_condition = ( value == '1' ) ? condition_field.is(':checked') : ! condition_field.is(':checked');
|
||||
} else {
|
||||
own_condition = ( condition_field.val() == value );
|
||||
}
|
||||
} else if ( tagName == 'select' ) {
|
||||
own_condition = ( condition_field.val() == value );
|
||||
}
|
||||
} else if ( condition == '!=' ) {
|
||||
var tagName = condition_field.prop("tagName").toLowerCase();
|
||||
|
||||
if ( tagName == 'input' ) {
|
||||
var input_type = condition_field.attr('type');
|
||||
if ( input_type == 'checkbox' ) {
|
||||
own_condition = ( value == '1' ) ? ! condition_field.is(':checked') : condition_field.is(':checked');
|
||||
} else {
|
||||
own_condition = ( condition_field.val() != value );
|
||||
}
|
||||
} else if ( tagName == 'select' ) {
|
||||
own_condition = ( condition_field.val() != value );
|
||||
}
|
||||
}
|
||||
|
||||
return ( own_condition && parent_condition );
|
||||
}
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user