HEX
Server: Apache
System: Linux uws7-179.cafe24.com 3.10.0-1160.119.1p.el7.x86_64 #1 SMP Thu Sep 11 14:15:01 KST 2025 x86_64
User: medikors (1589)
PHP: 7.3.1p1
Disabled: mysql_pconnect
Upload Files
File: /medikors/www/eng/wp-content/plugins/happy-elementor-addons/classes/assets-manager.php
<?php
namespace Happy_Addons\Elementor;

use Elementor\Core\Files\CSS\Post as Post_CSS;

defined( 'ABSPATH' ) || die();

class Assets_Manager {

    /**
     * Bind hook and run internal methods here
     */
    public static function init() {
        // Frontend scripts
        add_action( 'wp_enqueue_scripts', [ __CLASS__, 'frontend_register' ] );
        add_action( 'wp_enqueue_scripts', [ __CLASS__, 'frontend_enqueue' ], 99 );
        add_action( 'elementor/css-file/post/enqueue', [ __CLASS__, 'frontend_enqueue_exceptions' ] );

        // Edit and preview enqueue
        add_action( 'elementor/preview/enqueue_styles', [ __CLASS__, 'enqueue_preview_style' ] );

        add_action( 'elementor/editor/before_enqueue_scripts', [ __CLASS__, 'enqueue_editor_scripts' ] );

        // Placeholder image replacement
        add_filter( 'elementor/utils/get_placeholder_image_src', [ __CLASS__, 'set_placeholder_image' ] );

        // Paragraph toolbar registration
        add_filter( 'elementor/editor/localize_settings', [ __CLASS__, 'add_inline_editing_intermediate_toolbar' ] );
    }

    /**
     * Register inline editing paragraph toolbar
     *
     * @param array $config
     * @return array
     */
    public static function add_inline_editing_intermediate_toolbar( $config ) {
        $config['inlineEditing'] = [
            'toolbar' => [
                'intermediate' => [
                    'bold',
                    'underline',
                    'italic',
                    'createlink',
                ],
            ]
        ];
        return $config;
    }

    public static function set_placeholder_image() {
        return HAPPY_ADDONS_ASSETS . 'imgs/placeholder.jpg';
    }

    public static function frontend_register() {
        $suffix = ha_is_script_debug_enabled() ? '.' : '.min.';

        wp_register_style(
            'happy-icons',
            HAPPY_ADDONS_ASSETS . 'fonts/style.min.css',
            null,
            HAPPY_ADDONS_VERSION
        );

        /**
         * Image comparasion
         */
        wp_register_style(
            'twentytwenty',
            HAPPY_ADDONS_ASSETS . 'vendor/twentytwenty/css/twentytwenty.css',
            null,
            HAPPY_ADDONS_VERSION
        );

        wp_register_script(
            'jquery-event-move',
            HAPPY_ADDONS_ASSETS . 'vendor/twentytwenty/js/jquery.event.move.js',
            [ 'jquery' ],
            HAPPY_ADDONS_VERSION,
            true
        );

        wp_register_script(
            'jquery-twentytwenty',
            HAPPY_ADDONS_ASSETS . 'vendor/twentytwenty/js/jquery.twentytwenty.js',
            [ 'jquery-event-move' ],
            HAPPY_ADDONS_VERSION,
            true
        );

        /**
         * Justified Grid
         */
        wp_register_style(
            'justifiedGallery',
            HAPPY_ADDONS_ASSETS . 'vendor/justifiedGallery/css/justifiedGallery.min.css',
            null,
            HAPPY_ADDONS_VERSION
        );

        wp_register_script(
            'jquery-justifiedGallery',
            HAPPY_ADDONS_ASSETS . 'vendor/justifiedGallery/js/jquery.justifiedGallery.min.js',
            [ 'jquery' ],
            HAPPY_ADDONS_VERSION,
            true
        );

        /**
         * Carousel and Slider
         */
        wp_register_style(
            'slick',
            HAPPY_ADDONS_ASSETS . 'vendor/slick/slick.css',
            null,
            HAPPY_ADDONS_VERSION
        );

        wp_register_style(
            'slick-theme',
            HAPPY_ADDONS_ASSETS . 'vendor/slick/slick-theme.css',
            null,
            HAPPY_ADDONS_VERSION
        );

        wp_register_script(
            'jquery-slick',
            HAPPY_ADDONS_ASSETS . 'vendor/slick/slick.min.js',
            [ 'jquery' ],
            HAPPY_ADDONS_VERSION,
            true
        );

        /**
         * Masonry grid
         */
        wp_register_script(
            'jquery-isotope',
            HAPPY_ADDONS_ASSETS . 'vendor/jquery.isotope.js',
            [ 'jquery' ],
            HAPPY_ADDONS_VERSION,
            true
        );

        /**
         * Number animation
         */
        wp_register_script(
            'jquery-numerator',
            HAPPY_ADDONS_ASSETS . 'vendor/jquery-numerator/jquery-numerator.min.js',
            [ 'jquery' ],
            HAPPY_ADDONS_VERSION,
            true
        );

        /**
         * Magnific popup
         */
        wp_register_style(
            'magnific-popup',
            HAPPY_ADDONS_ASSETS . 'vendor/magnific-popup/magnific-popup.css',
            null,
            HAPPY_ADDONS_VERSION
        );

        wp_register_script(
            'jquery-magnific-popup',
            HAPPY_ADDONS_ASSETS . 'vendor/magnific-popup/jquery.magnific-popup.min.js',
            null,
            HAPPY_ADDONS_VERSION,
            true
        );

        /**
         * Floating effects
         */
        wp_register_script(
            'anime',
            HAPPY_ADDONS_ASSETS . 'vendor/anime/lib/anime.min.js',
            null,
            HAPPY_ADDONS_VERSION,
            true
        );

	    // keyframes
	    wp_register_script(
		    'jquery-keyframes',
		    HAPPY_ADDONS_ASSETS . 'vendor/keyframes/jquery.keyframes.min.js',
		    [ 'jquery' ],
		    HAPPY_ADDONS_VERSION,
		    true
	    );

        // Main assets
        wp_register_style(
            'happy-elementor-addons',
            HAPPY_ADDONS_ASSETS . 'css/main' . $suffix . 'css',
            [ 'elementor-frontend' ],
            HAPPY_ADDONS_VERSION
        );

        // Happy addons script
        wp_register_script(
            'happy-elementor-addons',
            HAPPY_ADDONS_ASSETS . 'js/happy-addons' . $suffix . 'js',
            [ 'imagesloaded', 'jquery' ],
            HAPPY_ADDONS_VERSION,
            true
        );
    }

    /**
     * Handle exception cases where regular enqueue won't work
     *
     * @param Post_CSS $file
     */
    public static function frontend_enqueue_exceptions( Post_CSS $file ) {
        if ( get_queried_object_id() !== $file->get_post_id() ) {
            if ( Cache_Manager::should_enqueue( $file->get_post_id() ) ) {
                Cache_Manager::enqueue( $file->get_post_id() );
            } else {
                Cache_Manager::enqueue_without_cache();
            }
        }
    }

    public static function frontend_enqueue() {
        if ( ! is_singular() ) {
            return;
        }

        if ( Cache_Manager::should_enqueue( get_the_ID() ) ) {
            Cache_Manager::enqueue( get_the_ID() );
        } else {
            Cache_Manager::enqueue_without_cache();
        }
    }

    public static function enqueue_editor_scripts() {
        wp_enqueue_style(
            'happy-icons',
            HAPPY_ADDONS_ASSETS . 'fonts/style.min.css',
            null,
            HAPPY_ADDONS_VERSION
        );

        wp_enqueue_style(
            'happy-elementor-addons-editor',
            HAPPY_ADDONS_ASSETS . 'admin/css/editor.min.css',
            null,
            HAPPY_ADDONS_VERSION
        );

        wp_enqueue_script(
            'happy-elementor-addons-editor',
            HAPPY_ADDONS_ASSETS . 'admin/js/editor.min.js',
            [ 'elementor-editor' ],
            HAPPY_ADDONS_VERSION,
            true
        );

        wp_localize_script(
            'happy-elementor-addons-editor',
            'HappyAddonsEditor',
            [
                'editorPanelHomeLinkURL' => ha_get_dashboard_link(),
                'editorPanelHomeLinkTitle' => __( 'HappyAddons - Home', 'happy-elementor-addons' ),
                'editorPanelWidgetsLinkURL' => ha_get_dashboard_link( '#widgets' ),
                'editorPanelWidgetsLinkTitle' => __( 'HappyAddons - Widgets', 'happy-elementor-addons' ),
            ]
        );
    }

    public static function enqueue_preview_style() {
        if ( ha_is_weforms_activated() ) {
            wp_enqueue_style(
                'happy-elementor-weform-preview',
                plugins_url( '/weforms/assets/wpuf/css/frontend-forms.css', 'weforms' ),
                null,
                HAPPY_ADDONS_VERSION
            );
        }

        if ( ha_is_wpforms_activated() && defined( 'WPFORMS_PLUGIN_SLUG' ) ) {
            wp_enqueue_style(
                'happy-elementor-wpform-preview',
                plugins_url( '/'. WPFORMS_PLUGIN_SLUG . '/assets/css/wpforms-full.css', WPFORMS_PLUGIN_SLUG ),
                null,
                HAPPY_ADDONS_VERSION
            );
        }

        if ( ha_is_calderaforms_activated() ) {
            wp_enqueue_style(
                'happy-elementor-caldera-preview',
                plugins_url( '/caldera-forms/assets/css/caldera-forms-front.css', 'caldera-forms' ),
                null,
                HAPPY_ADDONS_VERSION
            );
        }

		if ( ha_is_gravityforms_activated() ) {
			wp_enqueue_style(
				'happy-elementor-gravity-preview',
				plugins_url( '/gravityforms/css/formsmain.min.css', 'gravityforms' ),
				null,
				HAPPY_ADDONS_VERSION
			);
		}
    }
}