PluginProbe
GutSlider – All in One Slider and Carousel Blocks for Gutenberg / 2.9.7
GutSlider – All in One Slider and Carousel Blocks for Gutenberg v2.9.7
3.1.0 3.0.0 2.13.2 2.13.1 2.13.0 trunk 1.0.0 2.1.0 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.1 2.5.3 2.5.4 2.5.5 2.6.1 All 56 releases
← All changes | includes/classes/class-enqueue-assets.php +131 -110 2.5.32.9.7 View file →
@@ -3,136 +3,157 @@
3 3 * Enqueue Assets
4 4 * @package GutSliderBlocks
5 5 */
6 6
7 - if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly.
7 +if (!defined('ABSPATH')) exit;
8 8
9 - if( ! class_exists( 'GutSlider_Assets' ) ) {
9 +class GutSlider_Assets {
10 10
11 - class GutSlider_Assets {
12 -
13 - /**
14 - * Constructor
15 - * return void
16 - */
17 - public function __construct() {
18 - add_action( 'enqueue_block_editor_assets', [ $this, 'enqueue_editor_assets' ], 1 );
19 - add_action( 'enqueue_block_assets', [ $this, 'enqueue_assets' ] );
20 - }
11 + /**
12 + * Preview images for blocks
13 + * @var array
14 + */
15 + private const PREVIEW_IMAGES = [
16 + 'content' => 'content.svg',
17 + 'photo_carousel' => 'photo.svg',
18 + 'testimonial_slider' => 'testimonial.svg',
19 + 'before_after' => 'ba.svg',
20 + 'placeholder' => 'placeholder.svg',
21 + ];
21 22
22 - /**
23 - * Enqueue Block Assets [ Editor Only ]
24 - * return void
25 - */
26 - public function enqueue_editor_assets(){
27 - if( file_exists( trailingslashit( GUTSLIDER_DIR_PATH ) . './build/global/global.asset.php' ) ){
28 - $dependency_file = include_once trailingslashit( GUTSLIDER_DIR_PATH ) . './build/global/global.asset.php';
29 - }
30 -
31 - if( is_array( $dependency_file ) && ! empty( $dependency_file ) ) {
32 - wp_enqueue_script(
33 - 'gutslider-blocks-global-script',
34 - trailingslashit( GUTSLIDER_URL ) . './build/global/global.js',
35 - isset( $dependency_file['dependencies'] ) ? $dependency_file['dependencies'] : [],
36 - isset( $dependency_file['version'] ) ? $dependency_file['version'] : GUTSLIDER_VERSION,
37 - true
38 - );
39 - }
40 -
41 - wp_enqueue_style(
42 - 'gutslider-blocks-global-style',
43 - trailingslashit( GUTSLIDER_URL ) . './build/global/global.css',
44 - [],
45 - GUTSLIDER_VERSION
46 - );
47 23
48 - // modules
49 - if( file_exists( trailingslashit( GUTSLIDER_DIR_PATH ) . './build/modules/modules.asset.php' ) ) {
50 - $modules_dependency_file = include_once trailingslashit( GUTSLIDER_DIR_PATH ) . './build/modules/modules.asset.php';
51 - }
24 + /**
25 + * Constructor
26 + * return void
27 + */
28 + public function __construct() {
29 + add_action('enqueue_block_editor_assets', [$this, 'enqueue_editor_assets'], 2);
30 + add_action('enqueue_block_assets', [$this, 'enqueue_assets']);
31 + }
52 32
53 - if( is_array( $modules_dependency_file ) && ! empty( $modules_dependency_file ) ) {
54 - wp_enqueue_script(
55 - 'gutslider-blocks-modules-script',
56 - trailingslashit( GUTSLIDER_URL ) . './build/modules/modules.js',
57 - isset( $modules_dependency_file['dependencies'] ) ? $modules_dependency_file['dependencies'] : [],
58 - isset( $modules_dependency_file['version'] ) ? $modules_dependency_file['version'] : GUTSLIDER_VERSION,
59 - false
60 - );
61 - }
33 + /**
34 + * Enqueue editor assets
35 + * return void
36 + */
37 + public function enqueue_editor_assets() {
38 + $this->enqueue_asset('global', true, true);
39 + $this->enqueue_asset('modules', false);
40 + $this->localize_preview_images();
41 + }
62 42
63 - // wp localize script
64 - wp_localize_script(
65 - 'gutslider-blocks-modules-script',
66 - 'gutslider_preview',
67 - [
68 - 'fixed_content' => trailingslashit( GUTSLIDER_URL ) . 'assets/images/content-slider.svg',
69 - 'any_content' => trailingslashit( GUTSLIDER_URL ) . 'assets/images/any-content.svg',
70 - 'photo_carousel' => trailingslashit( GUTSLIDER_URL ) . 'assets/images/photo-carousel.svg',
71 - 'testimonial_slider' => trailingslashit( GUTSLIDER_URL ) . 'assets/images/testimonial-slider.svg',
72 - 'post_slider' => trailingslashit( GUTSLIDER_URL ) . 'assets/images/post-slider.svg',
73 - ]
43 + /**
44 + * Enqueue assets
45 + * return void
46 + */
47 + public function enqueue_assets() {
48 +
49 + wp_register_style(
50 + 'gutslider-swiper-style',
51 + GUTSLIDER_URL . 'assets/css/swiper-bundle.min.css',
52 + [],
53 + GUTSLIDER_VERSION
54 + );
55 +
56 + wp_register_script(
57 + 'gutslider-swiper-script',
58 + GUTSLIDER_URL . 'assets/js/swiper-bundle.min.js',
59 + [],
60 + GUTSLIDER_VERSION,
61 + true
62 + );
63 +
64 + wp_localize_script(
65 + 'gutslider-swiper-script',
66 + 'gutslider_swiper',
67 + [
68 + 'placeholder' => GUTSLIDER_URL . 'assets/images/placeholder.svg'
69 + ]
70 + );
71 +
72 + if(!is_admin()) {
73 + wp_register_script(
74 + 'gutslider-fslightbox',
75 + GUTSLIDER_URL . 'assets/js/fslightbox.js',
76 + [],
77 + GUTSLIDER_VERSION,
78 + true
74 79 );
75 80 }
81 + }
76 82
77 - /**
78 - * Enqueue Block Assets [ Editor + Frontend ]
79 - * return void
80 - */
81 - public function enqueue_assets() {
83 + /**
84 + * Enqueue asset
85 + * @param string $name
86 + * @param bool $enqueue_style
87 + * return void
88 + */
89 + private function enqueue_asset($name, $enqueue_style = true, $register_mode = false) {
90 + $asset_path = GUTSLIDER_DIR_PATH . "build/{$name}/{$name}.asset.php";
91 +
92 + if (file_exists($asset_path)) {
93 + $dependency_file = include $asset_path;
94 + if (is_array($dependency_file) && !empty($dependency_file)) {
95 + if($register_mode) {
96 + wp_register_script(
97 + "gutslider-blocks-{$name}-script",
98 + GUTSLIDER_URL . "build/{$name}/{$name}.js",
99 + $dependency_file['dependencies'] ?? [],
100 + $dependency_file['version'] ?? GUTSLIDER_VERSION,
101 + $name === 'global'
102 + );
103 + } else {
104 + wp_enqueue_script(
105 + "gutslider-blocks-{$name}-script",
106 + GUTSLIDER_URL . "build/{$name}/{$name}.js",
107 + $dependency_file['dependencies'] ?? [],
108 + $dependency_file['version'] ?? GUTSLIDER_VERSION,
109 + $name === 'global'
110 + );
111 + }
112 + }
113 + }
82 114
83 - if( is_admin() ) {
84 - // swiper style
85 - wp_enqueue_style(
86 - 'swiper-style',
87 - trailingslashit( GUTSLIDER_URL ) . 'assets/css/swiper-bundle.min.css',
115 + if ($enqueue_style) {
116 + if($register_mode) {
117 + wp_register_style(
118 + "gutslider-blocks-{$name}-style",
119 + GUTSLIDER_URL . "build/{$name}/{$name}.css",
88 120 [],
89 121 GUTSLIDER_VERSION
90 122 );
91 -
92 - // swiper script
93 - wp_enqueue_script(
94 - 'swiper-script',
95 - trailingslashit( GUTSLIDER_URL ) . 'assets/js/swiper-bundle.min.js',
96 - [],
97 - GUTSLIDER_VERSION,
98 - true
99 - );
100 - }
101 -
102 - // enqueue frontend scripts
103 - $swiper_scripts = get_option( 'swiper_scripts', true );
104 - if( ! is_admin() && $swiper_scripts && ( has_block( 'gutsliders/content-slider' ) || has_block( 'gutsliders/any-content' ) || has_block( 'gutsliders/testimonial-slider' ) || has_block( 'gutsliders/post-slider' ) || has_block( 'gutsliders/photo-carousel' ) || has_block( 'gutsliders/logo-carousel' ) )) {
105 - // swiper style
123 + } else {
106 124 wp_enqueue_style(
107 - 'swiper-style',
108 - trailingslashit( GUTSLIDER_URL ) . 'assets/css/swiper-bundle.min.css',
125 + "gutslider-blocks-{$name}-style",
126 + GUTSLIDER_URL . "build/{$name}/{$name}.css",
109 127 [],
110 128 GUTSLIDER_VERSION
111 129 );
130 + }
131 + }
132 + }
112 133
113 - // swiper script
114 - wp_enqueue_script(
115 - 'swiper-script',
116 - trailingslashit( GUTSLIDER_URL ) . 'assets/js/swiper-bundle.min.js',
117 - [],
118 - GUTSLIDER_VERSION,
119 - true
120 - );
121 - }
122 - if( ! is_admin() && ( has_block( 'gutsliders/photo-carousel' ) )) {
123 - // lightbox
124 - wp_enqueue_script(
125 - 'gutslider-fslightbox',
126 - trailingslashit( GUTSLIDER_URL ) . 'assets/js/fslightbox.js',
127 - [],
128 - GUTSLIDER_VERSION,
129 - true
130 - );
131 - }
134 + /**
135 + * Localize preview images
136 + * return void
137 + */
138 + private function localize_preview_images() {
139 + $preview_urls = [];
140 + foreach (self::PREVIEW_IMAGES as $key => $image) {
141 + $preview_urls[$key] = GUTSLIDER_URL . "assets/images/{$image}";
132 142 }
143 +
144 + // is Gutslider Pro active
145 + $is_pro_active = defined('GUTSLIDER_PRO_VERSION');
133 146
147 + // add to the preview urls
148 + $preview_urls['is_pro'] = $is_pro_active;
149 +
150 + wp_localize_script(
151 + 'gutslider-blocks-modules-script',
152 + 'gutslider_preview',
153 + $preview_urls
154 + );
134 155 }
156 +
157 +}
135 158
136 - }
137 -
138 - new GutSlider_Assets(); // Initialize the class
159 +new GutSlider_Assets();