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 +133 -74 2.3.02.9.7 View file →
@@ -3,98 +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' ] );
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',
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',
44 76 [],
45 - GUTSLIDER_VERSION
77 + GUTSLIDER_VERSION,
78 + true
46 79 );
47 80 }
81 + }
48 82
49 - /**
50 - * Enqueue Block Assets [ Editor + Frontend ]
51 - * return void
52 - */
53 - 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 + }
54 114
55 - if( is_admin() ) {
56 - // swiper style
57 - wp_enqueue_style(
58 - 'swiper-style',
59 - 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",
60 120 [],
61 121 GUTSLIDER_VERSION
62 122 );
63 -
64 - // swiper script
65 - wp_enqueue_script(
66 - 'swiper-script',
67 - trailingslashit( GUTSLIDER_URL ) . 'assets/js/swiper-bundle.min.js',
68 - [],
69 - GUTSLIDER_VERSION,
70 - true
71 - );
72 - }
73 -
74 - // enqueue frontend scripts
75 - $swiper_scripts = get_option( 'swiper_scripts', true );
76 - 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' ) )) {
77 - // swiper style
123 + } else {
78 124 wp_enqueue_style(
79 - 'swiper-style',
80 - trailingslashit( GUTSLIDER_URL ) . 'assets/css/swiper-bundle.min.css',
125 + "gutslider-blocks-{$name}-style",
126 + GUTSLIDER_URL . "build/{$name}/{$name}.css",
81 127 [],
82 128 GUTSLIDER_VERSION
83 129 );
130 + }
131 + }
132 + }
84 133
85 - // swiper script
86 - wp_enqueue_script(
87 - 'swiper-script',
88 - trailingslashit( GUTSLIDER_URL ) . 'assets/js/swiper-bundle.min.js',
89 - [],
90 - GUTSLIDER_VERSION,
91 - true
92 - );
93 - }
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}";
94 142 }
143 +
144 + // is Gutslider Pro active
145 + $is_pro_active = defined('GUTSLIDER_PRO_VERSION');
95 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 + );
96 155 }
156 +
157 +}
97 158
98 - }
99 -
100 - new GutSlider_Assets(); // Initialize the class
159 +new GutSlider_Assets();