| Current File : /home/e/t/i/eticmes/www/wp-content/plugins/widget-options/includes/scripts.php |
<?php
/**
* Scripts
*
* @copyright Copyright (c) 2016, Jeffrey Carandang
* @since 3.0
*/
// Exit if accessed directly
if (!defined('ABSPATH')) exit;
/**
* Load Scripts
*
* Enqueues the required scripts.
*
* @since 3.0
* @return void
*/
function widgetopts_load_scripts()
{
global $pagenow;
$css_dir = WIDGETOPTS_PLUGIN_URL . 'assets/css/';
$js_dir = WIDGETOPTS_PLUGIN_URL . 'assets/js/';
wp_enqueue_style('widgetopts-styles', $css_dir . 'widget-options.css', array(), WIDGETOPTS_VERSION);
if (isset($pagenow) && $pagenow === 'customize.php') {
wp_add_inline_script(
'customize-controls',
'(function(){
document.querySelector("#save").onclick = function() {
setTimeout(function(){wp.customize.previewer.refresh();}, 3000);
}
})();',
'after'
);
}
}
add_action('wp_enqueue_scripts', 'widgetopts_load_scripts');
add_action('customize_controls_enqueue_scripts', 'widgetopts_load_scripts');
/**
* Load Admin Scripts
*
* Enqueues the required admin scripts.
*
* @since 3.0
* @global $widget_options
* @param string $hook Page hook
* @return void
*/
if (!function_exists('widgetopts_load_admin_scripts')) :
function widgetopts_load_admin_scripts($hook)
{
global $widget_options, $wp_version;
$in_footer_args = false;
$is_6_3_and_above = version_compare($wp_version, '6.3', '>=');
if ($is_6_3_and_above) {
$in_footer_args = array(
'in_footer' => true,
'strategy' => 'defer',
);
}
$js_dir = WIDGETOPTS_PLUGIN_URL . 'assets/js/';
$css_dir = WIDGETOPTS_PLUGIN_URL . 'assets/css/';
$is_siteorigin = (isset($widget_options['siteorigin'])) ? $widget_options['siteorigin'] : '';
// Use minified libraries if SCRIPT_DEBUG is turned off
$suffix = (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) ? '' : '.min';
wp_enqueue_style('widgetopts-admin-styles', $css_dir . 'admin.css', array(), WIDGETOPTS_VERSION);
wp_enqueue_script(
'widgetopts-global-script',
$js_dir . 'widgetopts.global.js',
array('jquery'),
WIDGETOPTS_VERSION,
($is_6_3_and_above ? $in_footer_args : true)
);
//load only on admin pages with widgets
if (($is_siteorigin) || (!$is_siteorigin && in_array($hook, apply_filters('widgetopts_load_option-tabs_scripts', array('widgets.php', 'customize.php', 'nav-menus.php'))))) {
if (!in_array($hook, apply_filters('widgetopts_exclude_jqueryui', array('toplevel_page_et_divi_options', 'toplevel_page_wpcf7', 'edit.php')))) {
wp_enqueue_style('jquery-ui');
}
if (in_array($hook, apply_filters('widgetopts_load_liveFilter_scripts', array('widgets.php', 'nav-menus.php')))) {
wp_enqueue_script(
'jquery-liveFilter',
plugins_url('assets/js/jquery.liveFilter.js', dirname(__FILE__)),
array('jquery'),
WIDGETOPTS_VERSION,
($is_6_3_and_above ? $in_footer_args : true)
);
}
wp_enqueue_script(
'jquery-widgetopts-option-tabs',
plugins_url('assets/js/wpWidgetOpts.js', dirname(__FILE__)),
array('jquery', 'jquery-ui-core', 'jquery-ui-tabs', 'jquery-ui-datepicker'),
WIDGETOPTS_VERSION,
($is_6_3_and_above ? $in_footer_args : true)
);
wp_enqueue_style('jquery-widgetopts-select2-css', plugins_url('assets/css/select2.min.css', dirname(__FILE__)), array(), WIDGETOPTS_VERSION);
if (!wp_script_is('select2', 'enqueued')) {
wp_enqueue_script(
'jquery-widgetopts-select2-script',
$js_dir . 'select2.min.js',
array('jquery'),
WIDGETOPTS_VERSION,
($is_6_3_and_above ? $in_footer_args : true)
);
}
wp_enqueue_style('jquery-widgetopts-multiselect-css', plugins_url('assets/css/bootstrap-multiselect.min.css', dirname(__FILE__)), array(), WIDGETOPTS_VERSION);
wp_enqueue_script(
'jquery-widgetopts-multiselect-script',
$js_dir . 'bootstrap-multiselect.min.js',
array('jquery'),
WIDGETOPTS_VERSION,
($is_6_3_and_above ? $in_footer_args : true)
);
$form = '<div id="widgetopts-widgets-chooser">
<label class="screen-reader-text" for="widgetopts-search-chooser">' . __('Search Sidebar', 'widget-options') . '</label>
<input type="text" id="widgetopts-search-chooser" class="widgetopts-widgets-search" placeholder="' . __('Search sidebar…', 'widget-options') . '" />
<div class="widgetopts-search-icon" aria-hidden="true"></div>
<button type="button" class="widgetopts-clear-results"><span class="screen-reader-text">' . __('Clear Results', 'widget-options') . '</span></button>
<p class="screen-reader-text" id="widgetopts-chooser-desc">' . __('The search results will be updated as you type.', 'widget-options') . '</p>
</div>';
$btn_controls = '';
if (isset($widget_options['move']) && 'activate' == $widget_options['move']) {
$btn_controls .= ' | <button type="button" class="button-link widgetopts-control" data-action="move">' . __('Move', 'widget-options') . '</button>';
}
$sidebaropts = '';
if (isset($widget_options['widget_area']) && 'activate' == $widget_options['widget_area']) {
/* Updated by Haive Vistal - 04/20/2023 - Make sure no empty space in under the widgets if no activated links */
$remove_widget_link = 0;
$download_backup_link = 0;
$delete_all_widget_link = 0;
if (isset($widget_options['settings']['widget_area']) && isset($widget_options['settings']['widget_area']['remove']) && '1' == $widget_options['settings']['widget_area']['remove']) {
$remove_widget_link = 1;
}
if (isset($widget_options['settings']['widget_area']) && isset($widget_options['settings']['widget_area']['backup']) && '1' == $widget_options['settings']['widget_area']['backup']) {
$download_backup_link = 1;
}
if (isset($widget_options['settings']['widget_area']) && isset($widget_options['settings']['widget_area']['remove']) && '1' == $widget_options['settings']['widget_area']['remove']) {
$delete_all_widget_link = 1;
}
if ($remove_widget_link == 1 || $download_backup_link == 1 || $delete_all_widget_link == 1) {
$sidebaropts = '<div class="widgetopts-sidebaropts">';
if ($remove_widget_link == 1) {
$sidebaropts .= '<a href="#" class="sidebaropts-clear">
<span class="dashicons dashicons-warning"></span> ' . __('Remove All Widgets', 'widget-options') . '
</a>';
}
if ($download_backup_link == 1) {
$sidebaropts .= '<a href="' . esc_url(wp_nonce_url(admin_url('tools.php?page=widgetopts_migrator_settings&action=export&single_sidebar=__sidebaropts__'), 'widgeopts_export', 'widgeopts_nonce_export')) . '">
<span class="dashicons dashicons-download"></span> ' . __('Download Backup', 'widget-options') . '
</a>';
}
if ($delete_all_widget_link == 1) {
$sidebaropts .= '<div class="sidebaropts-confirm"><p>
' . __('Are you sure you want to DELETE ALL widgets associated to __sidebar_opts__?', 'widget-options') . '
</p>
<button class="button">' . __('No', 'widget-options') . '</button>
<button class="button button-primary">' . __('Yes', 'widget-options') . '</button>
</div>';
}
$sidebaropts .= '</div>';
}
}
/* Added by Haive Vistal - 04/20/2023 - Default link for all widgets to go through widget options panel settings */
// $sidebaropts .= '<div class="widgetopts-super widgetopts-sidebaropts">';
// $sidebaropts .= '<a href="'. esc_url( wp_nonce_url( admin_url('options-general.php?page=widgetopts_plugin_settings'), 'widgeopts_setings', 'widgeopts_nonce_settings') ) .'">
// <span class="dashicons dashicons-admin-settings"></span> '. __( 'Enable more Widget Options superpowers', 'widget-options' ) .'
// </a>';
// $sidebaropts .= '</div>';
wp_localize_script('jquery-widgetopts-option-tabs', 'widgetopts10n', array('ajax_url' => admin_url('admin-ajax.php'), 'opts_page' => esc_url(admin_url('options-general.php?page=widgetopts_plugin_settings')), 'search_form' => $form, 'sidebaropts' => $sidebaropts, 'controls' => $btn_controls, 'translation' => array('manage_settings' => __('Manage Widget Options', 'widget-options'), 'search_chooser' => __('Search sidebar…', 'widget-options')), 'validate_expression_nonce' => wp_create_nonce('widgetopts-expression-nonce')));
} else {
wp_localize_script('widgetopts-global-script', 'widgetopts10n', array('ajax_url' => admin_url('admin-ajax.php'), 'opts_page' => esc_url(admin_url('options-general.php?page=widgetopts_plugin_settings')), 'translation' => array('manage_settings' => __('Manage Widget Options', 'widget-options'), 'search_chooser' => __('Search sidebar…', 'widget-options')), 'validate_expression_nonce' => wp_create_nonce('widgetopts-expression-nonce')));
}
if (in_array($hook, apply_filters('widgetopts_load_settings_scripts', array('settings_page_widgetopts_plugin_settings')))) {
wp_register_script(
'jquery-widgetopts-settings',
$js_dir . 'settings' . $suffix . '.js',
array('jquery'),
WIDGETOPTS_VERSION,
($is_6_3_and_above ? $in_footer_args : true)
);
$translation = array(
'save_settings' => __('Save Settings', 'widget-options'),
'close_settings' => __('Close', 'widget-options'),
'show_settings' => __('Configure Settings', 'widget-options'),
'hide_settings' => __('Hide Settings', 'widget-options'),
'show_description' => __('Learn More', 'widget-options'),
'hide_description' => __('Hide Details', 'widget-options'),
'show_information' => __('Show Details', 'widget-options'),
'activate' => __('Enable', 'widget-options'),
'deactivate' => __('Disable', 'widget-options'),
'successful_save' => __('Settings saved successfully for %1$s.', 'widget-options'),
'deactivate_btn' => __('Deactivate License', 'widget-options'),
'activate_btn' => __('Activate License', 'widget-options'),
'status_valid' => __('Valid', 'widget-options'),
'status_invalid' => __('Invalid', 'widget-options'),
);
wp_enqueue_script('jquery-widgetopts-settings');
wp_localize_script('jquery-widgetopts-settings', 'widgetopts', array('translation' => $translation, 'ajax_action' => 'widgetopts_ajax_settings', 'ajax_nonce' => wp_create_nonce('widgetopts-settings-nonce'),));
}
}
add_action('admin_enqueue_scripts', 'widgetopts_load_admin_scripts', 100);
endif;
if (!function_exists('widgetopts_widgets_footer')) {
function widgetopts_widgets_footer()
{
global $widget_options; ?>
<div class="widgetsopts-chooser" style="display:none;">
<?php if (isset($widget_options['search']) && 'activate' == $widget_options['search']) : ?>
<div id="widgetopts-widgets-chooser">
<label class="screen-reader-text" for="widgetopts-search-chooser"><?php _e('Search Sidebar', 'widget-options'); ?></label>
<input type="text" id="widgetsopts-widgets-search" class="widgetopts-widgets-search widgetsopts-widgets-search" placeholder="Search sidebar…">
<div class="widgetopts-search-icon" aria-hidden="true"></div>
<button type="button" class="widgetopts-clear-results"><span class="screen-reader-text"><?php _e('Clear Results', 'widget-options'); ?></span></button>
<p class="screen-reader-text" id="widgetopts-chooser-desc"><?php _e('The search results will be updated as you type.', 'widget-options'); ?></p>
</div>
<?php endif; ?>
<ul class="widgetopts-chooser-sidebars"></ul>
<div class="widgetsopts-chooser-actions">
<button class="button widgetsopts-chooser-cancel"><?php _e('Cancel', 'widget-options'); ?></button>
<button class="button button-primary widgetopts-chooser-action"><span><?php _e('Move', 'widget-options'); ?></span> <?php _e('Widget', 'widget-options'); ?></button>
</div>
</div>
<?php }
add_action('admin_footer-widgets.php', 'widgetopts_widgets_footer');
}
if (!function_exists('widgetopts_widgets_footer_additional_script')) {
function widgetopts_widgets_footer_additional_script()
{
?>
<script>
(function() {
/*widget option search option function*/
function widgetopts_seach_button_function(e) {
let current_parent = e.target.closest('.extended-widget-opts-parent-option');
let current_select = current_parent.querySelector('.extended-widget-opts-select2-dropdown');
current_select.classList.add('select2-hidden-accessible');
current_parent.querySelector('.select2-container').classList.remove('widgetopts-is-hidden');
jQuery(current_parent).find('.multiselect-native-select .btn-group').addClass('hide');
jQuery(this).css({
"background-color": "#3D434A",
color: "#fff"
});
jQuery(this).parent().find('.widgetopts-dropdown-option-btn').css({
"background-color": "#fff",
color: "#777A80"
});
}
jQuery(document).on('click', '.widgetopts-search-option-btn', widgetopts_seach_button_function);
// let search_btns = document.getElementsByClassName('widgetopts-search-option-btn');
// for (let i = 0; i < search_btns.length; i++) {
// search_btns[i].addEventListener('click', widgetopts_seach_button_function, false);
// } /*end of widget option search option function*/
/*widget option dropdown option function*/
function widgetopts_dropdown_button_function(e) {
let current_parent = e.target.closest('.extended-widget-opts-parent-option');
let current_select = current_parent.querySelector('.extended-widget-opts-select2-dropdown');
current_select.classList.remove('select2-hidden-accessible');
current_parent.querySelector('.select2-container').classList.add('widgetopts-is-hidden');
jQuery(this).css({
"background-color": "#3D434A",
color: "#fff"
});
jQuery(this).parent().find('.widgetopts-search-option-btn').css({
"background-color": "#fff",
color: "#777A80"
});
if (jQuery(current_parent).find('.multiselect-native-select').length > 0) {
jQuery(current_parent).find('.multiselect-native-select .btn-group').removeClass('hide').find('.multiselect-container.dropdown-menu').removeClass('show');
} else {
let spinner = '<span class="spinner multiple-spinner" style="visibility: visible; float: none; display: inline-block; vertical-align: bottom;"></span>';
jQuery(e.target).parent().append(spinner);
jQuery(current_select).multiselect({
onInitialized: function(select, container) {
setTimeout(function() {
jQuery('.multiple-spinner').remove();
}, 500);
},
onChange: function(option, checked, select) {
jQuery(option).parents('.extended-widget-opts-parent-option').children('div:nth-child(1)').append(spinner);
setTimeout(function() {
jQuery('.multiple-spinner').remove();
}, 500);
},
buttonText: () => 'Click to add more',
keepOrder: true
});
}
}
jQuery(document).on('click', '.widgetopts-dropdown-option-btn', widgetopts_dropdown_button_function);
// let drop_btns = document.getElementsByClassName('widgetopts-dropdown-option-btn');
// for (let i = 0; i < drop_btns.length; i++) {
// drop_btns[i].addEventListener('click', widgetopts_dropdown_button_function, false);
// } /*end of widget option dropdown option function*/
jQuery(document).on('click', '.multiselect-native-select .multiselect.dropdown-toggle', function() {
jQuery(this).parent().find('.multiselect-container.dropdown-menu').each(function() {
if (jQuery(this).hasClass('show')) {
jQuery(this).removeClass('show');
} else {
jQuery(this).addClass('show');
}
});
});
})();
</script>
<?php }
add_action('admin_footer-widgets.php', 'widgetopts_widgets_footer_additional_script', 999);
}
?>