Server IP : 192.158.238.246 / Your IP : 18.219.43.26 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/jenniferflocom/www/wp-content/plugins/hunk-companion/top-store/customizer/repeater/ |
Upload File : |
/** * Customizer repeater * * @package ThemeHunk */ /* global jQuery */ /* global wp */ function media_upload(button_class) { 'use strict'; jQuery( 'body' ).on( 'click', button_class, function () { var button_id = '#' + jQuery( this ).attr( 'id' ); var display_field = jQuery( this ).parent().children( 'input:text' ); var _custom_media = true; wp.media.editor.send.attachment = function (props, attachment) { if (_custom_media) { if (typeof display_field !== 'undefined') { switch (props.size) { case 'full': display_field.val( attachment.sizes.full.url ); display_field.trigger( 'change' ); break; case 'medium': display_field.val( attachment.sizes.medium.url ); display_field.trigger( 'change' ); break; case 'thumbnail': display_field.val( attachment.sizes.thumbnail.url ); display_field.trigger( 'change' ); break; default: display_field.val( attachment.url ); display_field.trigger( 'change' ); } } _custom_media = false; } else { return wp.media.editor.send.attachment( button_id, [props, attachment] ); } }; wp.media.editor.open( button_class ); return false; } ); } /******************************************** * ** Generate unique id *** *********************************************/ function customizer_repeater_uniqid(prefix, more_entropy) { 'use strict'; if (typeof prefix === 'undefined') { prefix = ''; } var retId; var php_js; var formatSeed = function (seed, reqWidth) { seed = parseInt( seed, 10 ) .toString( 16 ); // to hex str if (reqWidth < seed.length) { // so long we split return seed.slice( seed.length - reqWidth ); } if (reqWidth > seed.length) { // so short we pad return new Array( 1 + (reqWidth - seed.length) ) .join( '0' ) + seed; } return seed; }; // BEGIN REDUNDANT if ( ! php_js) { php_js = {}; } // END REDUNDANT if ( ! php_js.uniqidSeed) { // init seed with big random int php_js.uniqidSeed = Math.floor( Math.random() * 0x75bcd15 ); } php_js.uniqidSeed++; retId = prefix; // start with prefix, add current milliseconds hex string retId += formatSeed( parseInt( new Date() .getTime() / 1000, 10 ), 8 ); retId += formatSeed( php_js.uniqidSeed, 5 ); // add seed hex string if (more_entropy) { // for more entropy we add a float lower to 10 retId += (Math.random() * 10) .toFixed( 8 ) .toString(); } return retId; } /******************************************** * ** General Repeater *** *********************************************/ function customizer_repeater_refresh_social_icons(th) { 'use strict'; var icons_repeater_values = []; th.find( '.customizer-repeater-social-repeater-container' ).each( function () { var icon = jQuery( this ).find( '.icp' ).val(); var link = jQuery( this ).find( '.customizer-repeater-social-repeater-link' ).val(); var id = jQuery( this ).find( '.customizer-repeater-social-repeater-id' ).val(); if ( ! id) { id = 'customizer-repeater-social-repeater-' + customizer_repeater_uniqid(); jQuery( this ).find( '.customizer-repeater-social-repeater-id' ).val( id ); } if (icon !== '' && link !== '') { icons_repeater_values.push( { 'icon': icon, 'link': link, 'id': id } ); } } ); th.find( '.social-repeater-socials-repeater-colector' ).val( JSON.stringify( icons_repeater_values ) ); customizer_repeater_refresh_general_control_values(); } function customizer_repeater_refresh_general_control_values() { 'use strict'; jQuery( '.customizer-repeater-general-control-repeater' ).each( function () { var values = []; var th = jQuery( this ); th.find( '.customizer-repeater-general-control-repeater-container' ).each( function () { var icon_value = jQuery( this ).find( '.icp' ).val(); var text = jQuery( this ).find( '.customizer-repeater-text-control' ).val(); var link = jQuery( this ).find( '.customizer-repeater-link-control' ).val(); var text2 = jQuery( this ).find( '.customizer-repeater-text2-control' ).val(); var link2 = jQuery( this ).find( '.customizer-repeater-link2-control' ).val(); var color = jQuery( this ).find( 'input.customizer-repeater-color-control' ).val(); var color2 = jQuery( this ).find( 'input.customizer-repeater-color2-control' ).val(); var image_url = jQuery( this ).find( '.custom-media-url' ).val(); var logo_image_url = jQuery( this ).find( '.custom-logo-media-url' ).val(); var choice = jQuery( this ).find( '.customizer-repeater-image-choice' ).val(); var title = jQuery( this ).find( '.customizer-repeater-title-control' ).val(); var price = jQuery( this ).find( '.customizer-repeater-price-control' ).val(); var number = jQuery( this ).find( '.customizer-repeater-number-control' ).val(); var subtitle = jQuery( this ).find( '.customizer-repeater-subtitle-control' ).val(); var id = jQuery( this ).find( '.social-repeater-box-id' ).val(); if ( ! id) { id = 'social-repeater-' + customizer_repeater_uniqid(); jQuery( this ).find( '.social-repeater-box-id' ).val( id ); } var social_repeater = jQuery( this ).find( '.social-repeater-socials-repeater-colector' ).val(); var shortcode = jQuery( this ).find( '.customizer-repeater-shortcode-control' ).val(); if (text !== '' || image_url !== '' || logo_image_url !== '' || title !== '' || price !== '' || subtitle !== '' || icon_value !== '' || link !== '' || choice !== '' || social_repeater !== '' || shortcode !== '' || color !== '') { values.push( { 'icon_value': (choice === 'customizer_repeater_none' ? '' : icon_value), 'color': color, 'color2': color2, 'text': escapeHtml( text ), 'link': link, 'text2': escapeHtml( text2 ), 'link2': link2, 'image_url': (choice === 'customizer_repeater_none' ? '' : image_url), 'logo_image_url': logo_image_url, 'choice': choice, 'title': escapeHtml( title ), 'price': escapeHtml( price), 'number': escapeHtml( number ), 'subtitle': escapeHtml( subtitle ), 'social_repeater': escapeHtml( social_repeater ), 'id': id, 'shortcode': escapeHtml( shortcode ) } ); } } ); th.find( '.customizer-repeater-colector' ).val( JSON.stringify( values ) ); th.find( '.customizer-repeater-colector' ).trigger( 'change' ); } ); } jQuery( document ).ready( function () { 'use strict'; var theme_conrols = jQuery( '#customize-theme-controls' ); theme_conrols.on( 'click', '.customizer-repeater-customize-control-title', function () { jQuery( this ).next().slideToggle( 'medium', function () { if (jQuery( this ).is( ':visible' )) { jQuery( this ).prev().addClass( 'repeater-expanded' ); jQuery( this ).css( 'display', 'block' ); } else { jQuery( this ).prev().removeClass( 'repeater-expanded' ); } } ); } ); theme_conrols.on( 'change', '.icp',function(){ customizer_repeater_refresh_general_control_values(); return false; } ); theme_conrols.on( 'change', '.customizer-repeater-image-choice', function () { if (jQuery( this ).val() === 'customizer_repeater_image') { jQuery( this ).parent().parent().find( '.social-repeater-general-control-icon' ).hide(); jQuery( this ).parent().parent().find( '.customizer-repeater-image-control' ).show(); jQuery( this ).parent().parent().find( '.customizer-repeater-color-control' ).prev().prev().hide(); jQuery( this ).parent().parent().find( '.customizer-repeater-color-control' ).hide(); } if (jQuery( this ).val() === 'customizer_repeater_logo_image') { jQuery( this ).parent().parent().find( '.social-repeater-general-control-icon' ).hide(); jQuery( this ).parent().parent().find( '.customizer-repeater-logo-image-control' ).show(); jQuery( this ).parent().parent().find( '.customizer-repeater-color-control' ).prev().prev().hide(); jQuery( this ).parent().parent().find( '.customizer-repeater-color-control' ).hide(); } if (jQuery( this ).val() === 'customizer_repeater_icon') { jQuery( this ).parent().parent().find( '.social-repeater-general-control-icon' ).show(); jQuery( this ).parent().parent().find( '.customizer-repeater-image-control' ).hide(); jQuery( this ).parent().parent().find( '.customizer-repeater-color-control' ).prev().prev().show(); jQuery( this ).parent().parent().find( '.customizer-repeater-color-control' ).show(); } if (jQuery( this ).val() === 'customizer_repeater_none') { jQuery( this ).parent().parent().find( '.social-repeater-general-control-icon' ).hide(); jQuery( this ).parent().parent().find( '.customizer-repeater-image-control' ).hide(); jQuery( this ).parent().parent().find( '.customizer-repeater-color-control' ).prev().prev().hide(); jQuery( this ).parent().parent().find( '.customizer-repeater-color-control' ).hide(); } customizer_repeater_refresh_general_control_values(); return false; } ); media_upload( '.customizer-repeater-custom-media-button' ); jQuery( '.custom-media-url' ).on( 'change', function () { customizer_repeater_refresh_general_control_values(); return false; } ); media_upload( '.customizer-repeater-logo-custom-media-button' ); jQuery( '.custom-logo-media-url' ).on( 'change', function () { customizer_repeater_refresh_general_control_values(); return false; } ); var color_options = { change: function(){ customizer_repeater_refresh_general_control_values(); } }; /** * This adds a new box to repeater */ theme_conrols.on( 'click', '.customizer-repeater-new-field', function () { var th = jQuery( this ).parent(); var id = 'customizer-repeater-' + customizer_repeater_uniqid(); if (typeof th !== 'undefined') { /* Clone the first box*/ var field = th.find( '.customizer-repeater-general-control-repeater-container:first' ).clone( true, true ); if (typeof field !== 'undefined') { /*Set the default value for choice between image and icon to icon*/ field.find( '.customizer-repeater-image-choice' ).val( 'customizer_repeater_icon' ); /*Show icon selector*/ field.find( '.social-repeater-general-control-icon' ).show(); /*Hide image selector*/ if (field.find( '.social-repeater-general-control-icon' ).length > 0) { field.find( '.customizer-repeater-image-control' ).hide(); } /*Show delete box button because it's not the first box*/ field.find( '.social-repeater-general-control-remove-field' ).show(); /* Empty control for icon */ field.find( '.input-group-addon' ).find( '.fa' ).attr( 'class', 'fa' ); /*Remove all repeater fields except first one*/ field.find( '.customizer-repeater-social-repeater' ).find( '.customizer-repeater-social-repeater-container' ).not( ':first' ).remove(); field.find( '.customizer-repeater-social-repeater-link' ).val( '' ); field.find( '.social-repeater-socials-repeater-colector' ).val( '' ); /*Remove value from icon field*/ field.find( '.icp' ).val( '' ); /*Remove value from text field*/ field.find( '.customizer-repeater-text-control' ).val( '' ); /*Remove value from link field*/ field.find( '.customizer-repeater-link-control' ).val( '' ); /*Remove value from text field*/ field.find( '.customizer-repeater-text2-control' ).val( '' ); /*Remove value from link field*/ field.find( '.customizer-repeater-link2-control' ).val( '' ); /*Set box id*/ field.find( '.social-repeater-box-id' ).val( id ); /*Remove value from media field*/ field.find( '.custom-media-url' ).val( '' ); /*Remove value from logo media field*/ field.find( '.custom-logo-media-url' ).val( '' ); /*Remove value from title field*/ field.find( '.customizer-repeater-title-control' ).val( '' ); /*Remove value from price field*/ field.find( '.customizer-repeater-price-control' ).val( '' ); /*Remove value from color field*/ field.find( 'div.customizer-repeater-color-control .wp-picker-container' ).replaceWith( '<input type="text" class="customizer-repeater-color-control ' + id + '">' ); field.find( 'input.customizer-repeater-color-control' ).wpColorPicker( color_options ); field.find( 'div.customizer-repeater-color2-control .wp-picker-container' ).replaceWith( '<input type="text" class="customizer-repeater-color2-control ' + id + '">' ); field.find( 'input.customizer-repeater-color2-control' ).wpColorPicker( color_options ); // field.find('.customize-control-notifications-container').remove(); /*Remove value from subtitle field*/ field.find( '.customizer-repeater-subtitle-control' ).val( '' ); /*Remove value from shortcode field*/ field.find( '.customizer-repeater-shortcode-control' ).val( '' ); /*Append new box*/ th.find( '.customizer-repeater-general-control-repeater-container:first' ).parent().append( field ); /*Refresh values*/ customizer_repeater_refresh_general_control_values(); } } return false; } ); theme_conrols.on( 'click', '.social-repeater-general-control-remove-field', function () { if (typeof jQuery( this ).parent() !== 'undefined') { jQuery( this ).parent().hide( 500, function(){ jQuery( this ).parent().remove(); customizer_repeater_refresh_general_control_values(); } ); } return false; } ); theme_conrols.on( 'keyup', '.customizer-repeater-title-control', function () { customizer_repeater_refresh_general_control_values(); } ); theme_conrols.on( 'keyup', '.customizer-repeater-price-control', function () { customizer_repeater_refresh_general_control_values(); } ); theme_conrols.on( 'keyup', '.customizer-repeater-number-control', function () { customizer_repeater_refresh_general_control_values(); } ); jQuery( 'input.customizer-repeater-color-control' ).wpColorPicker( color_options ); jQuery( 'input.customizer-repeater-color2-control' ).wpColorPicker( color_options ); theme_conrols.on( 'keyup', '.customizer-repeater-subtitle-control', function () { customizer_repeater_refresh_general_control_values(); } ); theme_conrols.on( 'keyup', '.customizer-repeater-shortcode-control', function () { customizer_repeater_refresh_general_control_values(); } ); theme_conrols.on( 'keyup', '.customizer-repeater-text-control', function () { customizer_repeater_refresh_general_control_values(); } ); theme_conrols.on( 'keyup', '.customizer-repeater-link-control', function () { customizer_repeater_refresh_general_control_values(); } ); theme_conrols.on( 'keyup', '.customizer-repeater-text2-control', function () { customizer_repeater_refresh_general_control_values(); } ); theme_conrols.on( 'keyup', '.customizer-repeater-link2-control', function () { customizer_repeater_refresh_general_control_values(); } ); /*Drag and drop to change icons order*/ jQuery( '.customizer-repeater-general-control-droppable' ).sortable( { axis: 'y', update: function () { customizer_repeater_refresh_general_control_values(); } } ); /*----------------- Socials Repeater ---------------------*/ theme_conrols.on( 'click', '.social-repeater-add-social-item', function (event) { event.preventDefault(); var th = jQuery( this ).parent(); var id = 'customizer-repeater-social-repeater-' + customizer_repeater_uniqid(); if (typeof th !== 'undefined') { var field = th.find( '.customizer-repeater-social-repeater-container:first' ).clone( true, true ); if (typeof field !== 'undefined') { field.find( '.icp' ).val( '' ); field.find( '.input-group-addon' ).find( '.fa' ).attr( 'class','fa' ); field.find( '.social-repeater-remove-social-item' ).show(); field.find( '.customizer-repeater-social-repeater-link' ).val( '' ); field.find( '.customizer-repeater-social-repeater-id' ).val( id ); th.find( '.customizer-repeater-social-repeater-container:first' ).parent().append( field ); } } return false; } ); theme_conrols.on( 'click', '.social-repeater-remove-social-item', function (event) { event.preventDefault(); var th = jQuery( this ).parent(); var repeater = jQuery( this ).parent().parent(); th.remove(); customizer_repeater_refresh_social_icons( repeater ); return false; } ); theme_conrols.on( 'keyup', '.customizer-repeater-social-repeater-link', function (event) { event.preventDefault(); var repeater = jQuery( this ).parent().parent(); customizer_repeater_refresh_social_icons( repeater ); return false; } ); theme_conrols.on( 'change', '.customizer-repeater-social-repeater-container .icp', function (event) { event.preventDefault(); var repeater = jQuery( this ).parent().parent().parent(); customizer_repeater_refresh_social_icons( repeater ); return false; } ); } ); var entityMap = { '&': '&', '<': '<', '>': '>', '"': '"', '\'': ''', '/': '/' }; function escapeHtml(string) { 'use strict'; // noinspection JSUnresolvedFunction string = String( string ).replace( new RegExp( '\r?\n', 'g' ), '<br />' ); string = String( string ).replace( /\\/g, '\' ); return String( string ).replace( /[&<>"'\/]/g, function (s) { return entityMap[s]; } ); }