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
← All changes | includes/scripts-manager.php +263 -215 2.2.03.0.2 View file →
@@ -20,94 +20,213 @@
20 20
21 21 $this->version = $settings->getVersion();
22 22 $this->prefix = $settings->getPrefix();
23 23
24 - // Fires after block assets have been enqueued for the editing interface.
25 - add_action( 'enqueue_block_editor_assets', [ $this, 'enqueueEditorAssets'] );
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 26
27 - // Fires after enqueuing block assets for both editor and front-end.
28 - add_action( 'enqueue_block_assets', [ $this, 'enqueueFrontBlockAssets' ] );
27 + add_action( 'enqueue_block_assets', array( $this, 'enqueue_common_blocks_assets' ), 15 );
28 + }
29 29
30 - // section_content_width inline styles
31 - add_action( 'after_theme_setup', [ $this, 'enqueue_editor_section_css' ] );
30 + public function enqueue_block_editor_assets() {
32 31
33 - add_action( 'wp_footer', [ $this, 'localizeFrontend' ] );
32 + $this->setup_editor_global_data();
34 33
35 - // Register frontend styles
36 - add_action( 'wp_footer', [ $this, 'wp_late_enqueue_scripts' ] );
37 - }
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' );
38 37
39 - public function get_image_sizes() {
38 + if ( ! file_exists( $asset_path ) ) {
39 + return;
40 + }
40 41
41 - global $_wp_additional_image_sizes;
42 + $asset = include $asset_path;
42 43
43 - $intermediate_image_sizes = get_intermediate_image_sizes();
44 + wp_enqueue_script(
45 + 'getwid-components',
46 + $script_url,
47 + $asset['dependencies'],
48 + $asset['version'],
49 + );
44 50
45 - $image_sizes = array();
46 - foreach ( $intermediate_image_sizes as $size ) {
47 - if ( isset( $_wp_additional_image_sizes[ $size ] ) ) {
48 - $image_sizes[ $size ] = array(
49 - 'width' => $_wp_additional_image_sizes[ $size ][ 'width' ],
50 - 'height' => $_wp_additional_image_sizes[ $size ][ 'height' ]
51 - );
52 - } else {
53 - $image_sizes[ $size ] = array(
54 - 'width' => intval( get_option( "{$size}_size_w" ) ),
55 - 'height' => intval( get_option( "{$size}_size_h" ) )
56 - );
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 57 }
58 58 }
59 59
60 - $sizes_arr = [];
61 - foreach ( $image_sizes as $key => $value ) {
62 - $temp_arr = [];
63 - $temp_arr[ 'value' ] = $key;
64 - $temp_arr[ 'label' ] = ucwords( strtolower( preg_replace( '/[-_]/', ' ', $key ) ) ) . " - {$value['width']} x {$value['height']}";
65 - $sizes_arr[] = $temp_arr;
66 - }
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' );
67 81
68 - $sizes_arr[] = array(
69 - 'value' => 'full',
70 - 'label' => __( 'Full Size', 'getwid' )
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']
71 90 );
72 91
73 - return $sizes_arr;
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' );
74 100 }
75 101
76 - /**
77 - * Enqueue editor-only js and css (Enqueue scripts (only on Edit Post Page))
78 - */
79 - public function enqueueEditorAssets() {
102 + public function enqueue_block_assets() {
80 103
81 - global $pagenow;
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 + );
82 111
83 - $dependencies = array( 'wp-i18n', 'wp-element', 'wp-blocks', 'wp-components', 'wp-api', 'wp-api-fetch', 'lodash' );
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 + );
84 122
85 - if ( $pagenow && $pagenow === 'widgets.php' ) {
86 - array_push( $dependencies, 'wp-edit-widgets' );
87 - } else {
88 - array_push( $dependencies, 'wp-editor' );
89 - }
123 + wp_register_style(
124 + 'slick',
125 + getwid_get_plugin_url( 'vendors/slick/slick/slick.min.css' ),
126 + array(),
127 + '1.9.0'
128 + );
90 129
91 - // Enqueue the bundled block JS file
92 - wp_enqueue_script(
93 - "{$this->prefix}-blocks-editor-js",
94 - getwid_get_plugin_url( 'assets/js/editor.blocks.js' ),
95 - apply_filters(
96 - 'getwid/editor_blocks_js/dependencies',
97 - $dependencies
98 - ),
99 - $this->version,
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',
100 149 true
101 150 );
102 151
103 - //disabled blocks
104 - $disabledBlocks = [];
105 - $disabledBlocksData = [];
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();
106 225 if ( getwid()->blocksManager()->hasDisabledBlocks() ) {
107 - $disabledBlocks = getwid()->blocksManager()->getDisabledBlocks();
108 - foreach ( $disabledBlocks as $block ) {
109 - $disabledBlocksData[] = $block->getBlockName();
226 + $disabled_blocks = getwid()->blocksManager()->getDisabledBlocks();
227 + foreach ( $disabled_blocks as $block ) {
228 + $disabled_blocks_data[] = $block->get_block_name();
110 229 }
111 230 }
112 231
113 232 $current_user_can_manage_options = current_user_can( 'manage_options' );
@@ -113,186 +232,115 @@
113 232 $current_user_can_manage_options = current_user_can( 'manage_options' );
114 233
115 234 $mailchimp_api_key = get_option( 'getwid_mailchimp_api_key', '' );
116 235
117 - if ( !$current_user_can_manage_options ) {
236 + if ( ! $current_user_can_manage_options ) {
118 237 $mailchimp_api_key = $mailchimp_api_key ? '1' : '';
119 238 }
120 239
121 - $recaptcha_site_key = $current_user_can_manage_options ? get_option( 'getwid_recaptcha_v2_site_key' , '' ) : '1';
240 + $recaptcha_site_key = $current_user_can_manage_options ? get_option( 'getwid_recaptcha_v2_site_key', '' ) : '1';
122 241 $recaptcha_secret_key = $current_user_can_manage_options ? get_option( 'getwid_recaptcha_v2_secret_key', '' ) : '1';
123 242
124 - wp_localize_script(
125 - "{$this->prefix}-blocks-editor-js",
126 - 'Getwid',
127 - apply_filters(
128 - 'getwid/editor_blocks_js/localize_data',
129 - [
130 - 'disabled_blocks' => $disabledBlocksData,
131 - 'settings' => [
132 - 'wide_support' => get_theme_support( 'align-wide' ),
133 - 'date_time_utc' => current_time('Y-m-d H:i:s'),
134 - 'post_type' => get_post_type(),
135 - 'google_api_key' => get_option( 'getwid_google_api_key', '' ),
136 - 'instagram_token_isset' => (bool) get_option( 'getwid_instagram_token', '' ),
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', '' ),
137 253
138 - 'assets_path' => getwid_get_plugin_url( '/assets' ),
139 - 'image_sizes' => $this->get_image_sizes(),
254 + 'assets_path' => getwid_get_plugin_url( '/assets' ),
255 + 'image_sizes' => $this->get_image_sizes(),
140 256
141 - 'excerpt_length' => apply_filters( 'excerpt_length', 55 ),
142 - 'recaptcha_site_key' => $recaptcha_site_key,
143 - 'recaptcha_secret_key' => $recaptcha_secret_key,
144 - 'mailchimp_api_key' => $mailchimp_api_key,
145 - 'debug' => ( defined( 'WP_DEBUG' ) ? WP_DEBUG : false )
146 - ],
147 - 'templates' => [
148 - 'name' => getwid()->postTemplatePart()->postType,
149 - 'new' => admin_url( 'post-new.php?post_type=' . getwid()->postTemplatePart()->postType ),
150 - 'view' => admin_url( 'edit.php?post_type=' . getwid()->postTemplatePart()->postType ),
151 - 'edit' => admin_url( 'post.php?post=' )
152 - ],
153 - 'ajax_url' => admin_url( 'admin-ajax.php' ),
154 - 'options_general_url' => admin_url( 'options-general.php' ),
155 - 'get_instagram_token_url' => add_query_arg(
156 - ['nonce' => wp_create_nonce('getwid_nonce_save_instagram_token') ],
157 - admin_url( 'options-general.php' )
158 - ),
159 - 'options_url' => [
160 - 'general' => getwid()->settingsPage()->getTabUrl('general'),
161 - 'appearance' => getwid()->settingsPage()->getTabUrl('appearance'),
162 - 'blocks' => getwid()->settingsPage()->getTabUrl('blocks'),
163 - ],
164 - 'nonces' => array(
165 - 'google_api_key' => wp_create_nonce( 'getwid_nonce_google_api_key' ),
166 - 'recaptcha_v2' => wp_create_nonce( 'getwid_nonce_recaptcha_v2' ),
167 - 'mailchimp_api_key' => wp_create_nonce( 'getwid_nonce_mailchimp_api_key' ),
168 - 'check_instagram_token' => wp_create_nonce( 'getwid_nonce_check_instagram_token' )
169 - ),
170 - 'acf_exist' => getwid_acf_is_active(),
171 - 'current_user' => [
172 - 'can_manage_options' => $current_user_can_manage_options,
173 - ]
174 - ]
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 + ),
175 290 )
176 291 );
177 292
178 - wp_set_script_translations( "{$this->prefix}-blocks-editor-js", "getwid" );
179 -
180 - $rtl = is_rtl() ? '.rtl' : '';
181 - // Enqueue optional editor only styles
182 - wp_enqueue_style(
183 - "{$this->prefix}-blocks-editor",
184 - getwid_get_plugin_url( 'assets/css/blocks.editor' . $rtl . '.css' ),
185 - apply_filters(
186 - 'getwid/editor_blocks_css/dependencies',
187 - []
188 - ),
189 - $this->version
190 - );
293 + wp_add_inline_script( 'wp-blocks', 'const Getwid = ' . wp_json_encode( $data ), 'before' );
191 294 }
192 295
193 - /**
194 - * Enqueue js and css for both editor and front-end
195 - *
196 - */
197 - public function enqueueFrontBlockAssets() {
296 + public function get_image_sizes() {
198 297
199 - // *** Start of Backend & Frontend ***
298 + global $_wp_additional_image_sizes;
200 299
201 - /**
202 - * Assets optimization. Currently in Beta.
203 - * @since 1.5.3
204 - */
205 - $_has_enabled_blocks = getwid()->blocksManager()->hasEnabledBlocks();
300 + $intermediate_image_sizes = get_intermediate_image_sizes();
206 301
207 - if ( $_has_enabled_blocks ) {
208 -
209 - if ( FALSE == getwid()->assetsOptimization()->load_assets_on_demand() || is_admin() ) {
210 -
211 - $rtl = is_rtl() ? '.rtl' : '';
212 -
213 - wp_enqueue_style(
214 - "{$this->prefix}-blocks",
215 - getwid_get_plugin_url( 'assets/css/blocks.style' . $rtl . '.css' ),
216 -
217 - // section, banner, icon-box, icon, image-box, image-hotspot, media-text-slider, video-popup, post-carousel, post-slider, images-slider
218 - /**
219 - * Filters frontend style dependencies.
220 - */
221 - apply_filters(
222 - 'getwid/blocks_style_css/dependencies',
223 - []
224 - ),
225 - $this->version
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'],
226 308 );
227 -
228 - wp_add_inline_style( "{$this->prefix}-blocks", getwid_generate_section_content_width_css() );
229 - wp_add_inline_style( "{$this->prefix}-blocks", getwid_generate_smooth_animation_css() );
309 + } else {
310 + $image_sizes[ $size ] = array(
311 + 'width' => intval( get_option( "{$size}_size_w" ) ),
312 + 'height' => intval( get_option( "{$size}_size_h" ) ),
313 + );
230 314 }
231 -
232 315 }
233 316
234 - // *** End of Backend & Frontend ***
235 -
236 - /**
237 - * Assets optimization. Currently in Beta.
238 - * @since 1.5.3
239 - */
240 - if ( is_admin() || ! $_has_enabled_blocks || ( TRUE == getwid()->assetsOptimization()->load_assets_on_demand() ) ) {
241 - return;
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;
242 323 }
243 324
244 - /**
245 - * Filters frontend script dependencies.
246 - */
247 - wp_enqueue_script(
248 - "{$this->prefix}-blocks-frontend-js",
249 - getwid_get_plugin_url( 'assets/js/frontend.blocks.js' ),
250 - apply_filters(
251 - 'getwid/frontend_blocks_js/dependencies',
252 - [ 'jquery' ]
253 - ),
254 - $this->version,
255 - true
325 + $sizes_arr[] = array(
326 + 'value' => 'full',
327 + 'label' => __( 'Full Size', 'getwid' ),
256 328 );
329 +
330 + return $sizes_arr;
257 331 }
258 332
259 - public function localizeFrontend() {
260 - wp_localize_script(
261 - "{$this->prefix}-blocks-frontend-js",
262 - 'Getwid',
263 - apply_filters(
264 - 'getwid/frontend_blocks_js/localize_data',
265 - [
266 - 'settings' => [],
267 - 'ajax_url' => admin_url( 'admin-ajax.php' ),
268 - 'isRTL' => is_rtl(),
269 - 'nonces' => array(
270 - 'contact_form' => wp_create_nonce( 'getwid_nonce_send_contact_form' )
271 - ),
272 - ]
273 - )
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,
274 339 );
275 - }
276 340
277 - public function wp_late_enqueue_scripts() {
341 + wp_style_add_data( "{$this->prefix}-blocks-common", 'rtl', 'replace' );
278 342
279 - $should_enqueue_common_style = apply_filters('getwid/optimize/should_load_common_css', false);
280 -
281 - if ( TRUE == getwid()->assetsOptimization()->load_assets_on_demand() && $should_enqueue_common_style ) {
282 -
283 - $rtl = is_rtl() ? '.rtl' : '';
284 -
285 - wp_enqueue_style(
286 - "{$this->prefix}-blocks-common",
287 - getwid_get_plugin_url( 'assets/blocks/common.style' . $rtl . '.css' ),
288 - [],
289 - $this->version
290 - );
291 - }
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() );
292 345 }
293 -
294 - public function enqueue_editor_section_css() {
295 - add_editor_style( getwid_generate_section_content_width_css() );
296 - }
297 -
298 346 }