PluginProbe
GutSlider – All in One Slider and Carousel Blocks for Gutenberg / 2.9.9
GutSlider – All in One Slider and Carousel Blocks for Gutenberg v2.9.9
3.2.0 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 All 57 releases
← All changes | includes/classes/class-enqueue-assets.php +132 -98 2.5.1 → 2.9.9 View file →
@@ -3,123 +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',
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 );
80 + }
81 + }
47 82
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';
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 + }
51 112 }
52 -
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 - }
62 113 }
63 114
64 - /**
65 - * Enqueue Block Assets [ Editor + Frontend ]
66 - * return void
67 - */
68 - public function enqueue_assets() {
69 -
70 - if( is_admin() ) {
71 - // swiper style
72 - wp_enqueue_style(
73 - 'swiper-style',
74 - 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",
75 120 [],
76 121 GUTSLIDER_VERSION
77 122 );
78 -
79 - // swiper script
80 - wp_enqueue_script(
81 - 'swiper-script',
82 - trailingslashit( GUTSLIDER_URL ) . 'assets/js/swiper-bundle.min.js',
83 - [],
84 - GUTSLIDER_VERSION,
85 - true
86 - );
87 - }
88 -
89 - // enqueue frontend scripts
90 - $swiper_scripts = get_option( 'swiper_scripts', true );
91 - 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' ) )) {
92 - // swiper style
123 + } else {
93 124 wp_enqueue_style(
94 - 'swiper-style',
95 - trailingslashit( GUTSLIDER_URL ) . 'assets/css/swiper-bundle.min.css',
125 + "gutslider-blocks-{$name}-style",
126 + GUTSLIDER_URL . "build/{$name}/{$name}.css",
96 127 [],
97 128 GUTSLIDER_VERSION
98 129 );
130 + }
131 + }
132 + }
99 133
100 - // swiper script
101 - wp_enqueue_script(
102 - 'swiper-script',
103 - trailingslashit( GUTSLIDER_URL ) . 'assets/js/swiper-bundle.min.js',
104 - [],
105 - GUTSLIDER_VERSION,
106 - true
107 - );
108 - }
109 - if( ! is_admin() && ( has_block( 'gutsliders/photo-carousel' ) )) {
110 - // lightbox
111 - wp_enqueue_script(
112 - 'gutslider-fslightbox',
113 - trailingslashit( GUTSLIDER_URL ) . 'assets/js/fslightbox.js',
114 - [],
115 - GUTSLIDER_VERSION,
116 - true
117 - );
118 - }
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}";
119 142 }
143 +
144 + // is Gutslider Pro active
145 + $is_pro_active = defined('GUTSLIDER_PRO_VERSION');
120 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 + );
121 155 }
156 +
157 +}
122 158
123 - }
124 -
125 - new GutSlider_Assets(); // Initialize the class
159 +new GutSlider_Assets();