PluginProbe
GutSlider – All in One Slider and Carousel Blocks for Gutenberg / 2.9.8
GutSlider – All in One Slider and Carousel Blocks for Gutenberg v2.9.8
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
slider-blocks / includes / classes / class-enqueue-assets.php

class-enqueue-assets.php in GutSlider – All in One Slider and Carousel Blocks for Gutenberg 2.9.8, at includes/classes/class-enqueue-assets.php

159 lines 4.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Enqueue Assets
4 * @package GutSliderBlocks
5 */
6
7 if (!defined('ABSPATH')) exit;
8
9 class GutSlider_Assets {
10
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 ];
22
23
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
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 }
42
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
79 );
80 }
81 }
82
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 }
114
115 if ($enqueue_style) {
116 if($register_mode) {
117 wp_register_style(
118 "gutslider-blocks-{$name}-style",
119 GUTSLIDER_URL . "build/{$name}/{$name}.css",
120 [],
121 GUTSLIDER_VERSION
122 );
123 } else {
124 wp_enqueue_style(
125 "gutslider-blocks-{$name}-style",
126 GUTSLIDER_URL . "build/{$name}/{$name}.css",
127 [],
128 GUTSLIDER_VERSION
129 );
130 }
131 }
132 }
133
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}";
142 }
143
144 // is Gutslider Pro active
145 $is_pro_active = defined('GUTSLIDER_PRO_VERSION');
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 );
155 }
156
157 }
158
159 new GutSlider_Assets();