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 +127 -128 2.6.12.9.7 View file →
@@ -3,158 +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 23
28 - // enqueue patterns
29 - // if( file_exists( trailingslashit( GUTSLIDER_DIR_PATH ) . './build/patterns/patterns.asset.php' ) ) {
30 - // $patterns_dependency_file = include_once trailingslashit( GUTSLIDER_DIR_PATH ) . './build/patterns/patterns.asset.php';
31 - // }
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 + }
32 32
33 - // if( is_array( $patterns_dependency_file ) && ! empty( $patterns_dependency_file ) ) {
34 - // wp_enqueue_script(
35 - // 'gutslider-blocks-patterns-script',
36 - // trailingslashit( GUTSLIDER_URL ) . './build/patterns/patterns.js',
37 - // isset( $patterns_dependency_file['dependencies'] ) ? $patterns_dependency_file['dependencies'] : [],
38 - // isset( $patterns_dependency_file['version'] ) ? $patterns_dependency_file['version'] : GUTSLIDER_VERSION,
39 - // true
40 - // );
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 + }
41 42
42 - // wp_enqueue_style(
43 - // 'gutslider-blocks-patterns-style',
44 - // trailingslashit( GUTSLIDER_URL ) . './build/patterns/style-patterns.css',
45 - // [],
46 - // GUTSLIDER_VERSION
47 - // );
48 - // }
43 + /**
44 + * Enqueue assets
45 + * return void
46 + */
47 + public function enqueue_assets() {
49 48
50 - // global
51 - if( file_exists( trailingslashit( GUTSLIDER_DIR_PATH ) . './build/global/global.asset.php' ) ){
52 - $dependency_file = include_once trailingslashit( GUTSLIDER_DIR_PATH ) . './build/global/global.asset.php';
53 - }
54 -
55 - if( is_array( $dependency_file ) && ! empty( $dependency_file ) ) {
56 - wp_enqueue_script(
57 - 'gutslider-blocks-global-script',
58 - trailingslashit( GUTSLIDER_URL ) . './build/global/global.js',
59 - isset( $dependency_file['dependencies'] ) ? $dependency_file['dependencies'] : [],
60 - isset( $dependency_file['version'] ) ? $dependency_file['version'] : GUTSLIDER_VERSION,
61 - true
62 - );
63 - }
64 -
65 - wp_enqueue_style(
66 - 'gutslider-blocks-global-style',
67 - trailingslashit( GUTSLIDER_URL ) . './build/global/global.css',
68 - [],
69 - GUTSLIDER_VERSION
70 - );
49 + wp_register_style(
50 + 'gutslider-swiper-style',
51 + GUTSLIDER_URL . 'assets/css/swiper-bundle.min.css',
52 + [],
53 + GUTSLIDER_VERSION
54 + );
71 55
72 - // modules
73 - if( file_exists( trailingslashit( GUTSLIDER_DIR_PATH ) . './build/modules/modules.asset.php' ) ) {
74 - $modules_dependency_file = include_once trailingslashit( GUTSLIDER_DIR_PATH ) . './build/modules/modules.asset.php';
75 - }
56 + wp_register_script(
57 + 'gutslider-swiper-script',
58 + GUTSLIDER_URL . 'assets/js/swiper-bundle.min.js',
59 + [],
60 + GUTSLIDER_VERSION,
61 + true
62 + );
76 63
77 - if( is_array( $modules_dependency_file ) && ! empty( $modules_dependency_file ) ) {
78 - wp_enqueue_script(
79 - 'gutslider-blocks-modules-script',
80 - trailingslashit( GUTSLIDER_URL ) . './build/modules/modules.js',
81 - isset( $modules_dependency_file['dependencies'] ) ? $modules_dependency_file['dependencies'] : [],
82 - isset( $modules_dependency_file['version'] ) ? $modules_dependency_file['version'] : GUTSLIDER_VERSION,
83 - false
84 - );
85 - }
64 + wp_localize_script(
65 + 'gutslider-swiper-script',
66 + 'gutslider_swiper',
67 + [
68 + 'placeholder' => GUTSLIDER_URL . 'assets/images/placeholder.svg'
69 + ]
70 + );
86 71
87 - // wp localize script
88 - wp_localize_script(
89 - 'gutslider-blocks-modules-script',
90 - 'gutslider_preview',
91 - [
92 - 'content' => trailingslashit( GUTSLIDER_URL ) . 'assets/images/content.svg',
93 - 'photo_carousel' => trailingslashit( GUTSLIDER_URL ) . 'assets/images/photo.svg',
94 - 'testimonial_slider' => trailingslashit( GUTSLIDER_URL ) . 'assets/images/testimonial.svg',
95 - 'before_after' => trailingslashit( GUTSLIDER_URL ) . 'assets/images/ba.svg',
96 - ]
72 + if(!is_admin()) {
73 + wp_register_script(
74 + 'gutslider-fslightbox',
75 + GUTSLIDER_URL . 'assets/js/fslightbox.js',
76 + [],
77 + GUTSLIDER_VERSION,
78 + true
97 79 );
98 80 }
81 + }
99 82
100 - /**
101 - * Enqueue Block Assets [ Editor + Frontend ]
102 - * return void
103 - */
104 - 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 + }
105 114
106 - if( is_admin() ) {
107 - // swiper style
108 - wp_enqueue_style(
109 - 'gutslider-swiper-style',
110 - 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",
111 120 [],
112 121 GUTSLIDER_VERSION
113 122 );
114 -
115 - // swiper script
116 - wp_enqueue_script(
117 - 'gutslider-swiper-script',
118 - trailingslashit( GUTSLIDER_URL ) . 'assets/js/swiper-bundle.min.js',
119 - [],
120 - GUTSLIDER_VERSION,
121 - true
122 - );
123 - }
124 -
125 - // enqueue frontend scripts
126 - if( ! is_admin() && ( 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' ) ) ) {
127 - // swiper style
123 + } else {
128 124 wp_enqueue_style(
129 - 'gutslider-swiper-style',
130 - trailingslashit( GUTSLIDER_URL ) . 'assets/css/swiper-bundle.min.css',
125 + "gutslider-blocks-{$name}-style",
126 + GUTSLIDER_URL . "build/{$name}/{$name}.css",
131 127 [],
132 128 GUTSLIDER_VERSION
133 129 );
130 + }
131 + }
132 + }
134 133
135 - // swiper script
136 - wp_enqueue_script(
137 - 'gutslider-swiper-script',
138 - trailingslashit( GUTSLIDER_URL ) . 'assets/js/swiper-bundle.min.js',
139 - [],
140 - GUTSLIDER_VERSION,
141 - true
142 - );
143 - }
144 - if( ! is_admin() && ( has_block( 'gutsliders/photo-carousel' ) )) {
145 - // lightbox
146 - wp_enqueue_script(
147 - 'gutslider-fslightbox',
148 - trailingslashit( GUTSLIDER_URL ) . 'assets/js/fslightbox.js',
149 - [],
150 - GUTSLIDER_VERSION,
151 - true
152 - );
153 - }
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}";
154 142 }
143 +
144 + // is Gutslider Pro active
145 + $is_pro_active = defined('GUTSLIDER_PRO_VERSION');
155 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 + );
156 155 }
156 +
157 +}
157 158
158 - }
159 -
160 - new GutSlider_Assets(); // Initialize the class
159 +new GutSlider_Assets();