PluginProbe
weForms – Easy Drag & Drop Contact Form Builder For WordPress / 1.3.1
weForms – Easy Drag & Drop Contact Form Builder For WordPress v1.3.1
1.6.7 1.6.8 1.6.9 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.18 1.6.19 1.6.2 1.6.20 1.6.21 1.6.22 1.6.23 1.6.24 1.6.25 1.6.26 1.6.27 1.6.28 1.6.3 1.6.4 1.6.5 1.6.6 All 74 releases
weforms / includes / class-scripts-styles.php

class-scripts-styles.php in weForms – Easy Drag & Drop Contact Form Builder For WordPress 1.3.1, at includes/class-scripts-styles.php

486 lines 15.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * The scripts class
5 *
6 * @since 1.1.0
7 */
8 class WeForms_Scripts_Styles {
9
10 /**
11 * The constructor
12 */
13 function __construct() {
14
15 if ( is_admin() ) {
16 add_action( 'admin_enqueue_scripts', array( $this, 'register_backend' ), 1800 );
17 add_action( 'admin_enqueue_scripts', array( $this, 'no_conflict_mode' ), 1500 );
18 } else {
19 add_action( 'wp_enqueue_scripts', array( $this, 'register_frontend' ) );
20 }
21 }
22
23 /**
24 * Helper function for No-Conflict Mode
25 *
26 * @return void
27 */
28 public function no_conflict_mode() {
29 global $wp_scripts;
30
31 $reg_arr = array();
32 $required_objects = array (
33 'utils',
34 'common',
35 'wp-ajax-response',
36 'wp-api-request',
37 'wp-pointer',
38 'wp-auth-check',
39 'wp-lists',
40 'prototype',
41 'jquery',
42 'jquery-core',
43 'jquery-migrate',
44 'jquery-ui-core',
45 'jquery-effects-core',
46 'jquery-effects-blind',
47 'jquery-effects-bounce',
48 'jquery-effects-clip',
49 'jquery-effects-drop',
50 'jquery-effects-explode',
51 'jquery-effects-fade',
52 'jquery-effects-fold',
53 'jquery-effects-highlight',
54 'jquery-effects-puff',
55 'jquery-effects-pulsate',
56 'jquery-effects-scale',
57 'jquery-effects-shake',
58 'jquery-effects-size',
59 'jquery-effects-slide',
60 'jquery-effects-transfer',
61 'jquery-ui-accordion',
62 'jquery-ui-autocomplete',
63 'jquery-ui-button',
64 'jquery-ui-datepicker',
65 'jquery-ui-dialog',
66 'jquery-ui-draggable',
67 'jquery-ui-droppable',
68 'jquery-ui-menu',
69 'jquery-ui-mouse',
70 'jquery-ui-position',
71 'jquery-ui-progressbar',
72 'jquery-ui-resizable',
73 'jquery-ui-selectable',
74 'jquery-ui-selectmenu',
75 'jquery-ui-slider',
76 'jquery-ui-sortable',
77 'jquery-ui-spinner',
78 'jquery-ui-tabs',
79 'jquery-ui-tooltip',
80 'jquery-ui-widget',
81 'jquery-form',
82 'jquery-color',
83 'schedule',
84 'jquery-query',
85 'jquery-serialize-object',
86 'jquery-hotkeys',
87 'jquery-table-hotkeys',
88 'jquery-touch-punch',
89 'thickbox',
90 'json2',
91 'underscore',
92 'backbone',
93 'wp-util',
94 'wp-sanitize',
95 'wp-backbone',
96 'wp-embed',
97 'wp-api',
98 'postbox',
99 'post',
100 'link',
101 'inline-edit-post',
102 'inline-edit-tax',
103 'iris',
104 'wp-color-picker',
105 'dashboard',
106 'weforms-chart-js',
107 'weforms-tiny-mce',
108 'weforms-vendor',
109 'weforms-form-builder-mixins',
110 'weforms-form-builder-mixins-form',
111 'weforms-form-builder-components',
112 'weforms-int-payment-settings',
113 'weforms-int-mailpoet',
114 'weforms-int-aweber',
115 'weforms-int-campaign-monitor',
116 'weforms-int-constant-contact',
117 'weforms-int-convertkit',
118 'weforms-int-getresponse',
119 'weforms-int-google-analytics',
120 'weforms-int-google-sheets',
121 'weforms-int-hubspot',
122 'weforms-int-mailchimp',
123 'weforms-int-salesforce',
124 'weforms-int-trello',
125 'weforms-int-zapier',
126 'weforms-int-zoho',
127 'weforms-mixins',
128 'weforms-components',
129 'weforms-app',
130 'weforms-pro-wpuf-form-mixins',
131 'weforms-pro-wpuf-form-components',
132 'weforms-pro-components',
133 );
134
135 $wpuf_settings = weforms_get_settings();
136 $screen = get_current_screen();
137
138 if ( isset( $wpuf_settings['no_conflict'] ) && $wpuf_settings['no_conflict'] && $screen->base == 'toplevel_page_weforms' ) {
139 $registered_scripts = array_keys( $wp_scripts->registered );
140
141 foreach ( $registered_scripts as $r_script ) {
142 if ( !in_array( $r_script, $required_objects ) ) {
143 $reg_arr[] = $r_script;
144 wp_deregister_script( $r_script );
145 }
146 }
147
148 // $this->enqueue_scripts( $this->get_admin_scripts() );
149
150 // foreach ( $reg_arr as $reg_obj ) {
151 // if ( !in_array( $reg_obj, $wp_scripts->queue ) ) {
152 // wp_enqueue_script( $reg_obj );
153 // }
154 // }
155 }
156
157 }
158
159 /**
160 * Register frontend scripts and styles
161 *
162 * @return void
163 */
164 public function register_frontend() {
165 $this->register_styles( $this->get_frontend_styles() );
166 $this->register_scripts( $this->get_frontend_scripts() );
167
168 $this->get_frontend_localized();
169 }
170
171 /**
172 * Register frontend scripts and styles
173 *
174 * @return void
175 */
176 public function register_backend() {
177 // bail out if not weforms screen
178 $screen = get_current_screen();
179 if ( $screen->base != 'toplevel_page_weforms' ) {
180 return;
181 }
182
183 $this->register_styles( $this->get_admin_styles() );
184 $this->register_scripts( $this->get_admin_scripts() );
185
186 $this->get_frontend_localized();
187 }
188
189 /**
190 * Enqueue all the scripts and styles for frontend
191 *
192 * @return void
193 */
194 public function enqueue_frontend() {
195 $this->enqueue_scripts( $this->get_frontend_scripts() );
196 $this->enqueue_styles( $this->get_frontend_styles() );
197 }
198
199 /**
200 * Enqueue all the scripts and styles for backend
201 *
202 * @return void
203 */
204 public function enqueue_backend() {
205 $this->enqueue_scripts( $this->get_admin_scripts() );
206 $this->enqueue_styles( $this->get_admin_styles() );
207 }
208
209 /**
210 * Get file prefix
211 *
212 * @return string
213 */
214 public function get_prefix() {
215 $prefix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
216
217 return $prefix;
218 }
219
220 /**
221 * Get all registered admin scripts
222 *
223 * @return array
224 */
225 public function get_admin_scripts() {
226 $prefix = $this->get_prefix();
227
228 $form_builder_js_deps = apply_filters( 'weforms-form-builder-js-deps', array(
229 'jquery',
230 'jquery-ui-sortable',
231 'jquery-ui-draggable',
232 'jquery-ui-datepicker',
233 'weforms-tiny-mce',
234 'underscore',
235 ) );
236
237 $builder_scripts = apply_filters( 'weforms_builder_scripts', array(
238 'weforms-tiny-mce' => array(
239 'src' => site_url( '/wp-includes/js/tinymce/tinymce.min.js' ),
240 'deps' => array(),
241 'in_footer' => true
242 ),
243 'weforms-vendor' => array(
244 'src' => WEFORMS_ASSET_URI . '/js/vendor' . $prefix . '.js',
245 'deps' => $form_builder_js_deps,
246 'in_footer' => true
247 ),
248 'weforms-form-builder-mixins' => array(
249 'src' => WEFORMS_ASSET_URI . '/wpuf/js/wpuf-form-builder-mixins.js',
250 'deps' => array('weforms-vendor'),
251 'in_footer' => true
252 ),
253 'weforms-form-builder-mixins-form' => array(
254 'src' => WEFORMS_ASSET_URI . '/js/wpuf-form-builder-contact-forms' . $prefix . '.js',
255 'deps' => array('weforms-vendor'),
256 'in_footer' => true
257 ),
258 'weforms-form-builder-components' => array(
259 'src' => WEFORMS_ASSET_URI . '/wpuf/js/wpuf-form-builder-components' . $prefix . '.js',
260 'deps' => array( 'weforms-form-builder-mixins', 'weforms-form-builder-mixins-form' ),
261 'in_footer' => true
262 ),
263 ) );
264
265 $spa_scripts = array(
266 'weforms-mixins' => array(
267 'src' => WEFORMS_ASSET_URI . '/js/spa-mixins' . $prefix . '.js',
268 'deps' => array( 'weforms-vendor', 'wp-util' ),
269 'in_footer' => true
270 ),
271 'weforms-components' => array(
272 'src' => WEFORMS_ASSET_URI . '/js/form-builder-components' . $prefix . '.js',
273 'deps' => array( 'weforms-vendor', 'wp-util' ),
274 'in_footer' => true
275 ),
276 'weforms-app' => array(
277 'src' => WEFORMS_ASSET_URI . '/js/spa-app' . $prefix . '.js',
278 'deps' => array( 'weforms-vendor', 'wp-util', 'weforms-form-builder-components' ),
279 'in_footer' => true
280 ),
281 );
282
283 $scripts = array_merge( $builder_scripts, $spa_scripts );
284
285 return apply_filters( 'weforms_admin_scripts', $scripts );
286 }
287
288 /**
289 * Get admin styles
290 *
291 * @return array
292 */
293 public function get_admin_styles() {
294 $frontend_styles = $this->get_frontend_styles();
295
296 $backend_styles = array(
297 'weforms-font-awesome' => array(
298 'src' => WEFORMS_ASSET_URI . '/wpuf/vendor/font-awesome/css/font-awesome.min.css',
299 ),
300 'weforms-sweetalert2' => array(
301 'src' => WEFORMS_ASSET_URI . '/wpuf/vendor/sweetalert2/dist/sweetalert2.css',
302 ),
303 'weforms-selectize' => array(
304 'src' => WEFORMS_ASSET_URI . '/wpuf/vendor/selectize/css/selectize.default.css',
305 ),
306 'weforms-toastr' => array(
307 'src' => WEFORMS_ASSET_URI . '/wpuf/vendor/toastr/toastr.min.css',
308 ),
309 'weforms-tooltip' => array(
310 'src' => WEFORMS_ASSET_URI . '/wpuf/vendor/tooltip/tooltip.css',
311 ),
312 'weforms-form-builder' => array(
313 'src' => WEFORMS_ASSET_URI . '/wpuf/css/wpuf-form-builder.css',
314 'deps' => array(
315 'weforms-css',
316 'weforms-font-awesome',
317 'weforms-sweetalert2',
318 'weforms-selectize',
319 'weforms-toastr',
320 'weforms-tooltip'
321 )
322 ),
323 'weforms-style' => array(
324 'src' => WEFORMS_ASSET_URI . '/css/admin.css',
325 ),
326 'weforms-tiny-mce-css' => array(
327 'src' => site_url( '/wp-includes/css/editor.css' ),
328 'deps' => array( 'wp-color-picker' )
329 )
330
331 );
332
333 $styles = array_merge( $frontend_styles, $backend_styles );
334
335 return apply_filters( 'weforms_admin_styles', $styles );
336 }
337
338 /**
339 * Get all registered frontend scripts
340 *
341 * @return array
342 */
343 public function get_frontend_scripts() {
344
345 $prefix = $this->get_prefix();
346
347 $scripts = array(
348 'wpuf-form' => array(
349 'src' => WEFORMS_ASSET_URI . '/wpuf/js/frontend-form' . $prefix . '.js',
350 'deps' => array( 'jquery', 'jquery-ui-datepicker', 'jquery-ui-slider' ),
351 'in_footer' => false
352 ),
353 'jquery-ui-timepicker' => array(
354 'src' => WEFORMS_ASSET_URI . '/wpuf/js/jquery-ui-timepicker-addon' . $prefix . '.js',
355 'deps' => array( 'jquery-ui-datepicker' ),
356 'in_footer' => false
357 ),
358 'wpuf-upload' => array(
359 'src' => WEFORMS_ASSET_URI . '/wpuf/js/upload' . $prefix . '.js',
360 'deps' => array( 'jquery', 'plupload-handlers', 'jquery-ui-sortable' ),
361 'in_footer' => false
362 )
363 );
364
365 return apply_filters( 'weforms_frontend_scripts', $scripts );
366 }
367
368 /**
369 * Get all registered frontend styles
370 *
371 * @return array
372 */
373 public function get_frontend_styles() {
374 $styles = array(
375 'weforms-css' => array(
376 'src' => WEFORMS_ASSET_URI . '/wpuf/css/frontend-forms.css',
377 ),
378 'jquery-ui' => array(
379 'src' => WEFORMS_ASSET_URI . '/wpuf/css/jquery-ui-1.9.1.custom.css',
380 )
381 );
382
383 return apply_filters( 'weforms_frontend_styles', $styles );
384 }
385
386 /**
387 * Frontend localized scripts
388 *
389 * @return void
390 */
391 public function get_frontend_localized() {
392
393 wp_localize_script( 'wpuf-form', 'wpuf_frontend', apply_filters( 'wpuf_frontend_js_data' , array(
394 'ajaxurl' => admin_url( 'admin-ajax.php' ),
395 'error_message' => __( 'Please fix the errors to proceed', 'weforms' ),
396 'nonce' => wp_create_nonce( 'wpuf_nonce' ),
397 'word_limit' => __( 'Word limit reached', 'weforms' )
398 ) ) );
399
400 wp_localize_script( 'wpuf-form', 'error_str_obj', array(
401 'required' => __( 'is required', 'weforms' ),
402 'mismatch' => __( 'does not match', 'weforms' ),
403 'validation' => __( 'is not valid', 'weforms' ),
404 'duplicate' => __( 'requires a unique entry and this value has already been used', 'weforms' ),
405 ) );
406
407 wp_localize_script( 'wpuf-upload', 'wpuf_frontend_upload', array(
408 'confirmMsg' => __( 'Are you sure?', 'weforms' ),
409 'nonce' => wp_create_nonce( 'wpuf_nonce' ),
410 'ajaxurl' => admin_url( 'admin-ajax.php' ),
411 'plupload' => array(
412 'url' => admin_url( 'admin-ajax.php' ) . '?nonce=' . wp_create_nonce( 'wpuf-upload-nonce' ),
413 'flash_swf_url' => includes_url( 'js/plupload/plupload.flash.swf' ),
414 'filters' => array(
415 array(
416 'title' => __( 'Allowed Files', 'weforms' ),
417 'extensions' => '*'
418 )
419 ),
420 'multipart' => true,
421 'urlstream_upload' => true,
422 'warning' => __( 'Maximum number of files reached!', 'weforms' ),
423 'size_error' => __( 'The file you have uploaded exceeds the file size limit. Please try again.', 'weforms' ),
424 'type_error' => __( 'You have uploaded an incorrect file type. Please try again.', 'weforms' )
425 )
426 ) );
427 }
428
429 /**
430 * Register scripts
431 *
432 * @param array $scripts
433 *
434 * @return void
435 */
436 public function register_scripts( $scripts ) {
437 foreach ( $scripts as $handle => $script ) {
438 $deps = isset( $script['deps'] ) ? $script['deps'] : false;
439 $in_footer = isset( $script['in_footer'] ) ? $script['in_footer'] : false;
440
441 wp_register_script( $handle, $script['src'], $deps, WEFORMS_VERSION, $in_footer );
442 }
443 }
444
445 /**
446 * Register styles
447 *
448 * @param array $styles
449 *
450 * @return void
451 */
452 public function register_styles( $styles ) {
453 foreach ( $styles as $handle => $style ) {
454 $deps = isset( $style['deps'] ) ? $style['deps'] : false;
455
456 wp_register_style( $handle, $style['src'], $deps, WEFORMS_VERSION );
457 }
458 }
459
460 /**
461 * Enqueue the scripts
462 *
463 * @param array $scripts
464 *
465 * @return void
466 */
467 public function enqueue_scripts( $scripts ) {
468 foreach ( $scripts as $handle => $script ) {
469 wp_enqueue_script( $handle );
470 }
471 }
472
473 /**
474 * Enqueue styles
475 *
476 * @param array $styles
477 *
478 * @return void
479 */
480 public function enqueue_styles( $styles ) {
481 foreach ( $styles as $handle => $script ) {
482 wp_enqueue_style( $handle );
483 }
484 }
485 }
486