PluginProbe
Getwid – Gutenberg Blocks / 3.0.2
Getwid – Gutenberg Blocks v3.0.2
3.0.2 3.0.1 3.0.0 2.1.0 2.1.1 2.1.2 2.1.3 2.2.0 trunk 1.8.7 1.9.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9
getwid / includes / scripts-manager.php

scripts-manager.php in Getwid – Gutenberg Blocks 3.0.2, at includes/scripts-manager.php

347 lines 9.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Getwid;
4
5 /**
6 * Class ScriptsManager
7 * @package Getwid
8 */
9 class ScriptsManager {
10
11 private $version;
12 private $prefix;
13
14 /**
15 * ScriptsManager constructor.
16 */
17 public function __construct() {
18
19 $settings = getwid()->settings();
20
21 $this->version = $settings->getVersion();
22 $this->prefix = $settings->getPrefix();
23
24 add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ), 10 );
25 add_action( 'enqueue_block_assets', array( $this, 'enqueue_block_assets' ), 10 );
26
27 add_action( 'enqueue_block_assets', array( $this, 'enqueue_common_blocks_assets' ), 15 );
28 }
29
30 public function enqueue_block_editor_assets() {
31
32 $this->setup_editor_global_data();
33
34 $style_url = getwid_get_plugin_url( '/assets/components/index.css' );
35 $script_url = getwid_get_plugin_url( '/assets/components/index.js' );
36 $asset_path = getwid_get_plugin_path( '/assets/components/index.asset.php' );
37
38 if ( ! file_exists( $asset_path ) ) {
39 return;
40 }
41
42 $asset = include $asset_path;
43
44 wp_enqueue_script(
45 'getwid-components',
46 $script_url,
47 $asset['dependencies'],
48 $asset['version'],
49 );
50
51 $disabled_blocks = array();
52 $disabled_blocks_data = array();
53 if ( getwid()->blocksManager()->hasDisabledBlocks() ) {
54 $disabled_blocks = getwid()->blocksManager()->getDisabledBlocks();
55 foreach ( $disabled_blocks as $block ) {
56 $disabled_blocks_data[] = $block->get_block_name();
57 }
58 }
59
60 $data = apply_filters(
61 'getwid/editor_blocks_js/localize_data',
62 array(
63 'disabledBlocks' => $disabled_blocks_data,
64 'optionsUrl' => array(
65 'general' => getwid()->settingsPage()->getTabUrl( 'general' ),
66 'appearance' => getwid()->settingsPage()->getTabUrl( 'appearance' ),
67 'blocks' => getwid()->settingsPage()->getTabUrl( 'blocks' ),
68 ),
69 'templates' => array(
70 'name' => getwid()->postTemplatePart()->postType,
71 'new' => admin_url( 'post-new.php?post_type=' . getwid()->postTemplatePart()->postType ),
72 'view' => admin_url( 'edit.php?post_type=' . getwid()->postTemplatePart()->postType ),
73 'edit' => admin_url( 'post.php?post=' ),
74 ),
75 'settings' => array(
76 'image_sizes' => $this->get_image_sizes(),
77 ),
78 )
79 );
80 wp_add_inline_script( 'getwid-components', 'const GetwidComponentsData = ' . json_encode( $data ), 'before' );
81
82 wp_enqueue_style(
83 'getwid-components',
84 $style_url,
85 apply_filters(
86 'getwid/editor_blocks_css/dependencies',
87 array( 'wp-components' )
88 ),
89 $asset['version']
90 );
91
92 wp_register_style(
93 "{$this->prefix}-blocks-editor-common",
94 getwid_get_plugin_url( 'assets/common-styles/editor.css' ),
95 array(),
96 $this->version
97 );
98
99 wp_style_add_data( "{$this->prefix}-blocks-editor-common", 'rtl', 'replace' );
100 }
101
102 public function enqueue_block_assets() {
103
104 wp_register_script(
105 'slick',
106 getwid_get_plugin_url( 'vendors/slick/slick/slick.min.js' ),
107 array( 'jquery' ),
108 '1.9.0',
109 true
110 );
111
112 wp_add_inline_script(
113 'slick',
114 sprintf(
115 'window.Getwid = window.Getwid || {}; window.Getwid = {...window.Getwid, ...%s};',
116 wp_json_encode(
117 array( 'isRTL' => is_rtl() )
118 )
119 ),
120 'before'
121 );
122
123 wp_register_style(
124 'slick',
125 getwid_get_plugin_url( 'vendors/slick/slick/slick.min.css' ),
126 array(),
127 '1.9.0'
128 );
129
130 wp_register_style(
131 'slick-theme',
132 getwid_get_plugin_url( 'vendors/slick/slick/slick-theme.min.css' ),
133 array(),
134 '1.9.0'
135 );
136
137 wp_register_style(
138 'animate',
139 getwid_get_plugin_url( 'vendors/animate.css/animate.min.css' ),
140 array(),
141 '3.7.0'
142 );
143
144 wp_register_script(
145 'wow',
146 getwid_get_plugin_url( 'vendors/wow.js/dist/wow.min.js' ),
147 array( 'jquery' ),
148 '1.2.1',
149 true
150 );
151
152 wp_register_script(
153 'mp-fancybox',
154 getwid_get_plugin_url( 'vendors/mp-fancybox/jquery.fancybox.min.js' ),
155 array( 'jquery' ),
156 '3.5.7-mp.1',
157 true
158 );
159
160 wp_register_style(
161 'mp-fancybox',
162 getwid_get_plugin_url( 'vendors/mp-fancybox/jquery.fancybox.min.css' ),
163 array(),
164 '3.5.7-mp.1'
165 );
166
167 wp_register_script(
168 'countup',
169 getwid_get_plugin_url( 'vendors/countup.js/dist/countUp.min.js' ),
170 array(),
171 '2.0.4',
172 true
173 );
174
175 wp_register_script(
176 'waypoints',
177 getwid_get_plugin_url( 'vendors/waypoints/lib/jquery.waypoints.min.js' ),
178 array( 'jquery' ),
179 '4.0.1',
180 true
181 );
182
183 wp_register_script(
184 'popper',
185 getwid_get_plugin_url( 'vendors/tippy.js/popper.min.js' ),
186 array( 'jquery' ),
187 '2.4.0',
188 true
189 );
190
191 wp_register_script(
192 'tippy',
193 getwid_get_plugin_url( 'vendors/tippy.js/tippy-bundle.umd.min.js' ),
194 array( 'jquery', 'popper' ),
195 '6.2.3',
196 true
197 );
198
199 wp_register_script(
200 'unescape',
201 getwid_get_plugin_url( 'vendors/lodash.unescape/unescape.min.js' ),
202 array(),
203 '4.0.1',
204 true
205 );
206
207 wp_register_style(
208 'tippy-themes',
209 getwid_get_plugin_url( 'vendors/tippy.js/themes.css' ),
210 array(),
211 '6.2.3'
212 );
213
214 wp_register_style(
215 'tippy-animation',
216 getwid_get_plugin_url( 'vendors/tippy.js/animations.css' ),
217 array(),
218 '6.2.3'
219 );
220 }
221
222 public function setup_editor_global_data() {
223 $disabled_blocks = array();
224 $disabled_blocks_data = array();
225 if ( getwid()->blocksManager()->hasDisabledBlocks() ) {
226 $disabled_blocks = getwid()->blocksManager()->getDisabledBlocks();
227 foreach ( $disabled_blocks as $block ) {
228 $disabled_blocks_data[] = $block->get_block_name();
229 }
230 }
231
232 $current_user_can_manage_options = current_user_can( 'manage_options' );
233
234 $mailchimp_api_key = get_option( 'getwid_mailchimp_api_key', '' );
235
236 if ( ! $current_user_can_manage_options ) {
237 $mailchimp_api_key = $mailchimp_api_key ? '1' : '';
238 }
239
240 $recaptcha_site_key = $current_user_can_manage_options ? get_option( 'getwid_recaptcha_v2_site_key', '' ) : '1';
241 $recaptcha_secret_key = $current_user_can_manage_options ? get_option( 'getwid_recaptcha_v2_secret_key', '' ) : '1';
242
243 $data = apply_filters(
244 'getwid/editor_blocks_js/localize_data',
245 array(
246 'disabled_blocks' => $disabled_blocks_data,
247 'settings' => array(
248 'wide_support' => get_theme_support( 'align-wide' ),
249 'date_time_utc' => current_time( 'Y-m-d H:i:s' ),
250 'post_type' => get_post_type(),
251 'google_api_key' => get_option( 'getwid_google_api_key', '' ),
252 'instagram_token_isset' => (bool) get_option( 'getwid_instagram_token', '' ),
253
254 'assets_path' => getwid_get_plugin_url( '/assets' ),
255 'image_sizes' => $this->get_image_sizes(),
256
257 'excerpt_length' => apply_filters( 'excerpt_length', 55 ),
258 'recaptcha_site_key' => $recaptcha_site_key,
259 'recaptcha_secret_key' => $recaptcha_secret_key,
260 'mailchimp_api_key' => $mailchimp_api_key,
261 'debug' => ( defined( 'WP_DEBUG' ) ? WP_DEBUG : false ),
262 ),
263 'templates' => array(
264 'name' => getwid()->postTemplatePart()->postType,
265 'new' => admin_url( 'post-new.php?post_type=' . getwid()->postTemplatePart()->postType ),
266 'view' => admin_url( 'edit.php?post_type=' . getwid()->postTemplatePart()->postType ),
267 'edit' => admin_url( 'post.php?post=' ),
268 ),
269 'ajax_url' => admin_url( 'admin-ajax.php' ),
270 'options_general_url' => admin_url( 'options-general.php' ),
271 'get_instagram_token_url' => add_query_arg(
272 array( 'nonce' => wp_create_nonce( 'getwid_nonce_save_instagram_token' ) ),
273 admin_url( 'options-general.php' )
274 ),
275 'options_url' => array(
276 'general' => getwid()->settingsPage()->getTabUrl( 'general' ),
277 'appearance' => getwid()->settingsPage()->getTabUrl( 'appearance' ),
278 'blocks' => getwid()->settingsPage()->getTabUrl( 'blocks' ),
279 ),
280 'nonces' => array(
281 'google_api_key' => wp_create_nonce( 'getwid_nonce_google_api_key' ),
282 'recaptcha_v2' => wp_create_nonce( 'getwid_nonce_recaptcha_v2' ),
283 'mailchimp_api_key' => wp_create_nonce( 'getwid_nonce_mailchimp_api_key' ),
284 'check_instagram_token' => wp_create_nonce( 'getwid_nonce_check_instagram_token' ),
285 ),
286 'acf_exist' => getwid_acf_is_active(),
287 'current_user' => array(
288 'can_manage_options' => $current_user_can_manage_options,
289 ),
290 )
291 );
292
293 wp_add_inline_script( 'wp-blocks', 'const Getwid = ' . wp_json_encode( $data ), 'before' );
294 }
295
296 public function get_image_sizes() {
297
298 global $_wp_additional_image_sizes;
299
300 $intermediate_image_sizes = get_intermediate_image_sizes();
301
302 $image_sizes = array();
303 foreach ( $intermediate_image_sizes as $size ) {
304 if ( isset( $_wp_additional_image_sizes[ $size ] ) ) {
305 $image_sizes[ $size ] = array(
306 'width' => $_wp_additional_image_sizes[ $size ]['width'],
307 'height' => $_wp_additional_image_sizes[ $size ]['height'],
308 );
309 } else {
310 $image_sizes[ $size ] = array(
311 'width' => intval( get_option( "{$size}_size_w" ) ),
312 'height' => intval( get_option( "{$size}_size_h" ) ),
313 );
314 }
315 }
316
317 $sizes_arr = array();
318 foreach ( $image_sizes as $key => $value ) {
319 $temp_arr = array();
320 $temp_arr['value'] = $key;
321 $temp_arr['label'] = ucwords( strtolower( preg_replace( '/[-_]/', ' ', $key ) ) ) . " - {$value['width']} x {$value['height']}";
322 $sizes_arr[] = $temp_arr;
323 }
324
325 $sizes_arr[] = array(
326 'value' => 'full',
327 'label' => __( 'Full Size', 'getwid' ),
328 );
329
330 return $sizes_arr;
331 }
332
333 public function enqueue_common_blocks_assets() {
334 wp_enqueue_style(
335 "{$this->prefix}-blocks-common",
336 getwid_get_plugin_url( 'assets/common-styles/style.css' ),
337 array(),
338 $this->version,
339 );
340
341 wp_style_add_data( "{$this->prefix}-blocks-common", 'rtl', 'replace' );
342
343 wp_add_inline_style( "{$this->prefix}-blocks-common", getwid_generate_section_content_width_css() );
344 wp_add_inline_style( "{$this->prefix}-blocks-common", getwid_generate_smooth_animation_css() );
345 }
346 }
347