/home/arranoyd/magicraft/wp-content/plugins/popup-maker/includes/scripts.php
<?php
/**
* Scripts
*
* @package POPMAKE
* @subpackage Functions
* @copyright Copyright (c) 2014, Wizard Internet Solutions
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
* @since 1.0
*/
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Load Scripts
*
* Loads the Popup Maker scripts.
*
* @since 1.0
* @return void
*/
function popmake_load_site_scripts() {
$js_dir = POPMAKE_URL . '/assets/js/';
$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.js' : '.min.js';
wp_register_script( 'mobile-detect', $js_dir . 'mobile-detect' . $suffix, null, '1.3.3', true );
wp_register_script( 'popup-maker-site', $js_dir . 'site' . $suffix . '?defer', array(
'jquery',
'jquery-ui-core',
'jquery-ui-position',
), POPMAKE_VERSION, true );
wp_localize_script( 'popup-maker-site', 'pum_vars', apply_filters( 'pum_vars', array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'restapi' => function_exists( 'rest_url' ) ? esc_url_raw( rest_url( 'pum/v1' ) ) : false,
'rest_nonce' => is_user_logged_in() ? wp_create_nonce( 'wp_rest' ) : null,
'default_theme' => (string) popmake_get_default_popup_theme(),
'debug_mode' => Popup_Maker::debug_mode(),
'disable_open_tracking' => popmake_get_option( 'disable_popup_open_tracking' ),
) ) );
wp_localize_script( 'popup-maker-site', 'pum_debug_vars', apply_filters( 'pum_debug_vars', array(
'debug_mode_enabled' => _x( 'Popup Maker Debug Mode Enabled', 'debug console text', 'popup-maker' ),
'debug_started_at' => _x( 'Debug started at:', 'debug console text', 'popup-maker' ),
'debug_more_info' => sprintf( _x( 'For more information on how to use this information visit %s', 'debug console text', 'popup-maker' ), 'http://docs.wppopupmaker.com/?utm_medium=js-debug-info&utm_campaign=ContextualHelp&utm_source=browser-console&utm_content=more-info' ),
'global_info' => _x( 'Global Information', 'debug console text', 'popup-maker' ),
'localized_vars' => _x( 'Localized variables', 'debug console text', 'popup-maker' ),
'popups_initializing' => _x( 'Popups Initializing', 'debug console text', 'popup-maker' ),
'popups_initialized' => _x( 'Popups Initialized', 'debug console text', 'popup-maker' ),
'single_popup_label' => _x( 'Popup: #', 'debug console text', 'popup-maker' ),
'theme_id' => _x( 'Theme ID: ', 'debug console text', 'popup-maker' ),
'label_method_call' => _x( 'Method Call:', 'debug console text', 'popup-maker' ),
'label_method_args' => _x( 'Method Arguments:', 'debug console text', 'popup-maker' ),
'label_popup_settings' => _x( 'Settings', 'debug console text', 'popup-maker' ),
'label_triggers' => _x( 'Triggers', 'debug console text', 'popup-maker' ),
'label_cookies' => _x( 'Cookies', 'debug console text', 'popup-maker' ),
'label_delay' => _x( 'Delay:', 'debug console text', 'popup-maker' ),
'label_conditions' => _x( 'Conditions', 'debug console text', 'popup-maker' ),
'label_cookie' => _x( 'Cookie:', 'debug console text', 'popup-maker' ),
'label_settings' => _x( 'Settings:', 'debug console text', 'popup-maker' ),
'label_selector' => _x( 'Selector:', 'debug console text', 'popup-maker' ),
'label_mobile_disabled' => _x( 'Mobile Disabled:', 'debug console text', 'popup-maker' ),
'label_tablet_disabled' => _x( 'Tablet Disabled:', 'debug console text', 'popup-maker' ),
'label_display_settings' => _x( 'Display Settings:', 'debug console text', 'popup-maker' ),
'label_close_settings' => _x( 'Close Settings:', 'debug console text', 'popup-maker' ),
'label_event_before_open' => _x( 'Event: Before Open', 'debug console text', 'popup-maker' ),
'label_event_after_open' => _x( 'Event: After Open', 'debug console text', 'popup-maker' ),
'label_event_open_prevented' => _x( 'Event: Open Prevented', 'debug console text', 'popup-maker' ),
'label_event_setup_close' => _x( 'Event: Setup Close', 'debug console text', 'popup-maker' ),
'label_event_close_prevented' => _x( 'Event: Close Prevented', 'debug console text', 'popup-maker' ),
'label_event_before_close' => _x( 'Event: Before Close', 'debug console text', 'popup-maker' ),
'label_event_after_close' => _x( 'Event: After Close', 'debug console text', 'popup-maker' ),
'label_event_before_reposition' => _x( 'Event: Before Reposition', 'debug console text', 'popup-maker' ),
'label_event_after_reposition' => _x( 'Event: After Reposition', 'debug console text', 'popup-maker' ),
'label_event_checking_condition' => _x( 'Event: Checking Condition', 'debug console text', 'popup-maker' ),
'triggers' => pum_get_trigger_labels(),
'cookies' => pum_get_cookie_labels(),
) ) );
// TODO Remove all trace usages of these in JS so they can be removed.
// @deprecated 1.4 Use pum_vars instead.
wp_localize_script( 'popup-maker-site', 'ajaxurl', admin_url( 'admin-ajax.php' ) );
// @deprecated 1.4 Use pum_vars instead.
wp_localize_script( 'popup-maker-site', 'popmake_default_theme', (string) popmake_get_default_popup_theme() );
if ( popmake_get_option( 'enable_easy_modal_compatibility_mode', false ) ) {
wp_register_script( 'popup-maker-easy-modal-importer-site', $js_dir . 'popup-maker-easy-modal-importer-site' . $suffix . '?defer', array( 'popup-maker-site' ), POPMAKE_VERSION, true );
}
}
add_action( 'wp_enqueue_scripts', 'popmake_load_site_scripts' );
/**
* Load Styles
*
* Loads the Popup Maker stylesheet.
*
* @since 1.0
* @return void
*/
function popmake_load_site_styles() {
$css_dir = POPMAKE_URL . '/assets/css/';
$dep_css_dir = $css_dir;
// If not v1.4 compatible load backward version until migration complete.
if ( ! pum_is_v1_4_compatible() ) {
$dep_css_dir = POPMAKE_URL . '/deprecated/assets/css/';
}
$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.css' : '.min.css';
wp_register_style( 'popup-maker-site', $dep_css_dir . 'site' . $suffix, false, POPMAKE_VERSION );
if ( ! popmake_get_option( 'disable_popup_theme_styles', false ) ) {
wp_enqueue_style( 'popup-maker-site' );
}
}
add_action( 'wp_enqueue_scripts', 'popmake_load_site_styles' );
function popmake_get_popup_theme_styles() {
$styles = get_transient( 'popmake_theme_styles' );
if ( ! $styles || defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
$styles = '';
$google_fonts = array();
foreach ( popmake_get_all_popup_themes() as $theme ) {
$theme_styles = pum_is_v1_4_compatible() ? pum_render_theme_styles( $theme->ID ) : popmake_render_theme_styles( $theme->ID );
$google_fonts = array_merge( $google_fonts, popmake_get_popup_theme_google_fonts( $theme->ID ) );
if ( $theme_styles != '' ) {
$styles .= "/* Popup Theme " . $theme->ID . ": " . $theme->post_title . " */\r\n";
$styles .= $theme_styles . "\r\n";
}
}
if ( ! empty( $google_fonts ) && ! popmake_get_option( 'disable_google_font_loading', false ) ) {
$link = "//fonts.googleapis.com/css?family=";
foreach ( $google_fonts as $font_family => $variants ) {
if ( $link != "//fonts.googleapis.com/css?family=" ) {
$link .= "|";
}
$link .= $font_family;
if ( is_array( $variants ) ) {
if ( implode( ',', $variants ) != '' ) {
$link .= ":";
$link .= trim( implode( ',', $variants ), ':' );
}
}
}
$styles = "/* Popup Google Fonts */\r\n@import url('$link');\r\n\r\n" . $styles;
}
$styles = apply_filters( 'popmake_theme_styles', $styles );
set_transient( 'popmake_theme_styles', $styles );
}
return $styles;
}
function popmake_render_popup_theme_styles() {
if ( ( current_action() == 'wp_head' && popmake_get_option( 'disable_popup_theme_styles', false ) ) || ( current_action() == 'admin_head' && ! popmake_is_admin_popup_page() ) ) {
return;
}
global $pum_extra_styles;
$styles = popmake_get_popup_theme_styles(); ?>
<style id="pum-styles" type="text/css">
<?php echo $styles; ?>
<?php echo $pum_extra_styles; ?>
<?php do_action( 'pum_styles'); ?>
</style><?php
}
add_action( 'wp_head', 'popmake_render_popup_theme_styles', 99999 );
add_action( 'admin_head', 'popmake_render_popup_theme_styles', 99999 );
function pum_should_load_admin_scripts() {
global $pagenow;
return ( is_admin() && ( popmake_is_admin_page() || in_array( $pagenow, array(
'post.php',
'edit.php',
'post-new.php',
) ) ) ) || ( defined( "PUM_FORCE_ADMIN_SCRIPTS_LOAD" ) && PUM_FORCE_ADMIN_SCRIPTS_LOAD );
}
/**
* Load Admin Scripts
*
* Enqueues the required admin scripts.
*
* @since 1.0
*
* @param string $hook Page hook
*
* @return void
*/
function popmake_load_admin_scripts( $hook ) {
$js_dir = POPMAKE_URL . '/assets/js/';
$dep_js_dir = $js_dir;
// If not v1.4 compatible load backward version until migration complete.
if ( ! pum_is_v1_4_compatible() ) {
$dep_js_dir = POPMAKE_URL . '/deprecated/assets/js/';
}
// Use minified libraries if SCRIPT_DEBUG is turned off
$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.js' : '.min.js';
if ( popmake_is_admin_popup_page() || popmake_is_admin_popup_theme_page() ) {
//add_action( 'popmake_admin_footer', 'popmake_admin_popup_preview' );
}
if ( pum_should_load_admin_scripts() ) {
wp_enqueue_script( 'popup-maker-admin', $dep_js_dir . 'admin' . $suffix, array(
'jquery',
'wp-color-picker',
'jquery-ui-slider',
'wp-util',
), POPMAKE_VERSION );
wp_localize_script( 'popup-maker-admin', 'popmake_admin_ajax_nonce', wp_create_nonce( POPMAKE_NONCE ) );
wp_localize_script( 'popup-maker-admin', 'pum_admin', apply_filters( 'pum_admin_var', array(
'post_id' => ! empty( $_GET['post'] ) ? intval( $_GET['post'] ) : null,
'defaults' => array(
'triggers' => PUM_Triggers::instance()->get_defaults(),
'cookies' => PUM_Cookies::instance()->get_defaults(),
),
'I10n' => array(
'add' => __( 'Add', 'popup-maker' ),
'save' => __( 'Save', 'popup-maker' ),
'update' => __( 'Update', 'popup-maker' ),
'insert' => __( 'Insert', 'popup-maker' ),
'cancel' => __( 'Cancel', 'popup-maker' ),
'shortcode_ui_button_tooltip' => __( 'Popup Maker Shortcodes', 'popup-maker' ),
'confirm_delete_trigger' => __( "Are you sure you want to delete this trigger?", 'popup-maker' ),
'confirm_delete_cookie' => __( "Are you sure you want to delete this cookie?", 'popup-maker' ),
'labels' => array(
'triggers' => PUM_Triggers::instance()->get_labels(),
'cookies' => PUM_Cookies::instance()->get_labels(),
),
'no_cookie' => __( 'None', 'popup-maker' ),
'confirm_count_reset' => __( 'Are you sure you want to reset the open count?', 'popup-maker' ),
'error_loading_shortcode_preview' => __( 'There was an error in generating the preview', 'popup-maker' ),
),
) ) );
}
if ( popmake_is_admin_popup_page() ) {
popmake_load_site_scripts();
add_action( 'admin_footer', 'pum_admin_popup_editor_media_templates' );
}
if ( popmake_is_admin_popup_theme_page() ) {
wp_localize_script( 'popup-maker-admin', 'popmake_google_fonts', popmake_get_google_webfonts_list() );
}
if ( isset( $_GET['page'] ) && $_GET['page'] == 'pum-support' ) {
wp_enqueue_script( 'iframe-resizer', $dep_js_dir . 'iframeResizer' . $suffix, array(
'jquery',
) );
}
}
add_action( 'admin_enqueue_scripts', 'popmake_load_admin_scripts' );
/**
* Load Admin Styles
*
* Enqueues the required admin styles.
*
* @since 1.0
*
* @param string $hook Page hook
*
* @return void
*/
function popmake_load_admin_styles( $hook ) {
$css_dir = POPMAKE_URL . '/assets/css/';
$dep_css_dir = $css_dir;
// If not v1.4 compatible load backward version until migration complete.
if ( ! pum_is_v1_4_compatible() ) {
$dep_css_dir = POPMAKE_URL . '/deprecated/assets/css/';
}
$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.css' : '.min.css';
if ( popmake_is_admin_popup_page() || popmake_is_admin_popup_theme_page() ) {
wp_enqueue_style( 'popup-maker-site', $css_dir . 'site' . $suffix, false, POPMAKE_VERSION );
}
if ( pum_should_load_admin_scripts() ) {
//wp_enqueue_style( 'pumselect2', $css_dir . 'select2' . $suffix, array(), '4.0.1' );
wp_enqueue_style( 'dashicons' );
wp_enqueue_style( 'wp-color-picker' );
wp_enqueue_style( 'popup-maker-admin', $dep_css_dir . 'admin' . $suffix, null, POPMAKE_VERSION );
}
}
add_action( 'admin_enqueue_scripts', 'popmake_load_admin_styles', 100 );
/**
* Load Admin Styles
*
* Defers loading of scripts with ?defer parameter in url.
*
* @since 1.0
*
* @param string $url URL being cleaned
*
* @return string $url
*/
function popmake_defer_js_url( $url ) {
if ( false === strpos( $url, '.js?defer' ) ) {
// not our file
return $url;
}
return "$url' defer='defer";
}
add_filter( 'clean_url', 'popmake_defer_js_url', 11, 1 );
function popmake_script_loading_enabled() {
global $wp_query;
if ( ! empty( $wp_query->post ) && has_shortcode( $wp_query->post->post_content, 'popup' ) || ( defined( "POPMAKE_FORCE_SCRIPTS" ) && POPMAKE_FORCE_SCRIPTS ) ) {
popmake_enqueue_scripts();
}
}
add_action( 'wp_head', 'popmake_script_loading_enabled' );
function popmake_enqueue_scripts( $popup_id = null ) {
global $pum_extra_styles;
$popup = new PUM_Popup( $popup_id );
if ( $popup->mobile_disabled() || $popup->tablet_disabled() ) {
wp_enqueue_script( 'mobile-detect' );
}
$scripts_needed = apply_filters( 'popmake_enqueue_scripts', array(
'popup-maker' => 'popup-maker-site',
'easy-modal-importer' => 'popup-maker-easy-modal-importer-site',
), $popup_id );
foreach ( $scripts_needed as $script ) {
if ( wp_script_is( $script, 'registered' ) ) {
wp_enqueue_script( $script );
}
}
$styles_needed = apply_filters( 'popmake_enqueue_styles', array(
'popup-maker' => 'popup-maker-site',
), $popup_id );
foreach ( $styles_needed as $style ) {
if ( wp_style_is( $style, 'registered' ) ) {
wp_enqueue_style( $style );
}
}
}
add_action( 'popmake_preload_popup', 'popmake_enqueue_scripts' );
function pum_admin_popup_editor_media_templates() {
$presets = apply_filters( 'pum_click_selector_presets', array(
'a[href="exact_url"]' => __( 'Link: Exact Match', 'popup-maker' ),
'a[href*="contains"]' => __( 'Link: Containing', 'popup-maker' ),
'a[href^="begins_with"]' => __( 'Link: Begins With', 'popup-maker' ),
'a[href$="ends_with"]' => __( 'Link: Ends With', 'popup-maker' ),
) ); ?>
<script type="text/html" id="tmpl-pum-click-selector-presets">
<div class="pum-click-selector-presets">
<span class="dashicons dashicons-arrow-left" title="<?php _e( 'Insert Preset', 'popup-maker' ); ?>"></span>
<ul>
<?php foreach ( $presets as $preset => $label ) : ?>
<li data-preset='<?php echo $preset; ?>'><span><?php echo $label; ?></span></li>
<?php endforeach; ?>
</ul>
</div>
</script>
<?php
}