PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 1.4.2
JetFormBuilder — Dynamic Blocks Form Builder v1.4.2
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / includes / admin / editor.php
jetformbuilder / includes / admin Last commit date
pages 4 years ago tabs-handlers 4 years ago editor.php 4 years ago
editor.php
403 lines
1 <?php
2
3 namespace Jet_Form_Builder\Admin;
4
5 use Jet_Form_Builder\Admin\Tabs_Handlers\Tab_Handler_Manager;
6 use Jet_Form_Builder\Classes\Condition_Helper;
7 use Jet_Form_Builder\Classes\Tools;
8 use Jet_Form_Builder\Gateways\Gateway_Manager;
9 use Jet_Form_Builder\Plugin;
10
11 /**
12 * Form editor class
13 * Thanks Tom J Nowell for initial editor idea and inspiration!
14 */
15
16 // If this file is called directly, abort.
17 if ( ! defined( 'WPINC' ) ) {
18 die;
19 }
20
21 /**
22 * Define Editor class
23 */
24 class Editor {
25
26 const EDITOR_HANDLE = 'jet-form-builder-editor';
27 const EDITOR_PACKAGE_HANDLE = 'jet-form-builder-editor-package';
28
29 /**
30 * Returns taxonomies list for the config
31 *
32 * @return [type] [description]
33 */
34 public function get_taxonomies_list() {
35
36 $taxonomies = get_taxonomies( array(), 'objects' );
37
38 $result = array();
39
40 foreach ( $taxonomies as $tax ) {
41 $result[] = array(
42 'value' => $tax->name,
43 'label' => sprintf( '%1$s (%2$s)', $tax->label, $tax->name ),
44 );
45 }
46
47 return $result;
48
49 }
50
51 public function get_preset_config() {
52 return apply_filters(
53 'jet-form-builder/editor/preset-config',
54 array(
55 'global_fields' => array(
56 array(
57 'name' => 'from',
58 'label' => __( 'Source:', 'jet-form-builder' ),
59 'type' => 'select',
60 'options' => Tools::with_placeholder(
61 array(
62 array(
63 'value' => 'post',
64 'label' => __( 'Post', 'jet-form-builder' ),
65 ),
66 array(
67 'value' => 'user',
68 'label' => __( 'User', 'jet-form-builder' ),
69 ),
70 array(
71 'value' => 'query_var',
72 'label' => __( 'URL Query Variable', 'jet-form-builder' ),
73 ),
74 )
75 ),
76 ),
77 array(
78 'name' => 'post_from',
79 'label' => __( 'Get post ID from:', 'jet-form-builder' ),
80 'type' => 'select',
81 'options' => Tools::with_placeholder(
82 array(
83 array(
84 'value' => 'current_post',
85 'label' => __( 'Current post', 'jet-form-builder' ),
86 ),
87 array(
88 'value' => 'query_var',
89 'label' => __( 'URL Query Variable', 'jet-form-builder' ),
90 ),
91 )
92 ),
93 'condition' => array(
94 'field' => 'from',
95 'value' => 'post',
96 ),
97 ),
98 array(
99 'name' => 'user_from',
100 'label' => __( 'Get user ID from:', 'jet-form-builder' ),
101 'type' => 'select',
102 'options' => Tools::with_placeholder(
103 array(
104 array(
105 'value' => 'current_user',
106 'label' => __( 'Current user', 'jet-form-builder' ),
107 ),
108 array(
109 'value' => 'query_var',
110 'label' => __( 'URL Query Variable', 'jet-form-builder' ),
111 ),
112 )
113 ),
114 'condition' => array(
115 'field' => 'from',
116 'value' => 'user',
117 ),
118 ),
119 array(
120 'name' => 'query_var',
121 'label' => __( 'Query variable name:', 'jet-form-builder' ),
122 'type' => 'text',
123 'custom_condition' => 'query_var',
124 'position' => 'dynamic',
125 ),
126 ),
127 'map_fields' => array(
128 array(
129 'name' => 'key',
130 'label' => __( 'Query variable key', 'jet-form-builder' ),
131 'type' => 'text',
132 'position' => 'general',
133 'parent_condition' => array(
134 'field' => 'from',
135 'value' => 'query_var',
136 ),
137 ),
138 array(
139 'name' => 'prop',
140 'label' => __( 'Post property', 'jet-form-builder' ),
141 'type' => 'select',
142 'options' => Tools::with_placeholder(
143 array(
144 array(
145 'value' => 'ID',
146 'label' => __( 'Post ID', 'jet-form-builder' ),
147 ),
148 array(
149 'value' => 'post_title',
150 'label' => __( 'Post Title', 'jet-form-builder' ),
151 ),
152 array(
153 'value' => 'post_content',
154 'label' => __( 'Post Content', 'jet-form-builder' ),
155 ),
156 array(
157 'value' => 'post_excerpt',
158 'label' => __( 'Post Excerpt', 'jet-form-builder' ),
159 ),
160 array(
161 'value' => 'post_date',
162 'label' => __( 'Post Date', 'jet-form-builder' ),
163 ),
164 array(
165 'value' => 'post_date_gmt',
166 'label' => __( 'Post Date GMT', 'jet-form-builder' ),
167 ),
168 array(
169 'value' => 'post_thumb',
170 'label' => __( 'Post Thumbnail', 'jet-form-builder' ),
171 ),
172 array(
173 'value' => 'post_meta',
174 'label' => __( 'Post Meta', 'jet-form-builder' ),
175 ),
176 array(
177 'value' => 'post_terms',
178 'label' => __( 'Post Terms', 'jet-form-builder' ),
179 ),
180 )
181 ),
182 'parent_condition' => array(
183 'field' => 'from',
184 'value' => 'post',
185 ),
186 ),
187 array(
188 'name' => 'key',
189 'label' => __( 'Taxonomy', 'jet-form-builder' ),
190 'type' => 'select',
191 'options' => Tools::with_placeholder( $this->get_taxonomies_list() ),
192 'parent_condition' => array(
193 'field' => 'from',
194 'value' => 'post',
195 ),
196 'condition' => array(
197 'field' => 'prop',
198 'value' => 'post_terms',
199 ),
200 ),
201 array(
202 'name' => 'key',
203 'label' => __( 'Meta field key', 'jet-form-builder' ),
204 'type' => 'text',
205 'parent_condition' => array(
206 'field' => 'from',
207 'value' => 'post',
208 ),
209 'condition' => array(
210 'field' => 'prop',
211 'value' => 'post_meta',
212 ),
213 ),
214 array(
215 'name' => 'prop',
216 'label' => __( 'User field', 'jet-form-builder' ),
217 'type' => 'select',
218 'options' => Tools::with_placeholder(
219 array(
220 array(
221 'value' => 'ID',
222 'label' => __( 'User ID', 'jet-form-builder' ),
223 ),
224 array(
225 'value' => 'user_login',
226 'label' => __( 'User Login', 'jet-form-builder' ),
227 ),
228 array(
229 'value' => 'user_email',
230 'label' => __( 'Email', 'jet-form-builder' ),
231 ),
232 array(
233 'value' => 'password',
234 'label' => __( 'Password', 'jet-form-builder' ),
235 ),
236 array(
237 'value' => 'first_name',
238 'label' => __( 'First Name', 'jet-form-builder' ),
239 ),
240 array(
241 'value' => 'last_name',
242 'label' => __( 'Last Name', 'jet-form-builder' ),
243 ),
244 array(
245 'value' => 'user_url',
246 'label' => __( 'User URL', 'jet-form-builder' ),
247 ),
248 array(
249 'value' => 'user_meta',
250 'label' => __( 'User Meta', 'jet-form-builder' ),
251 ),
252 )
253 ),
254 'parent_condition' => array(
255 'field' => 'from',
256 'value' => 'user',
257 ),
258 ),
259 array(
260 'name' => 'key',
261 'label' => __( 'Meta field key', 'jet-form-builder' ),
262 'type' => 'text',
263 'parent_condition' => array(
264 'field' => 'from',
265 'value' => 'user',
266 ),
267 'condition' => array(
268 'field' => 'prop',
269 'value' => 'user_meta',
270 ),
271 ),
272 ),
273 )
274 );
275 }
276
277 public function get_messages_default() {
278 return Plugin::instance()->post_type->get_messages_default();
279 }
280
281 /**
282 * Enqueue editor assets
283 *
284 * @return void
285 */
286 public function enqueue_assets() {
287 do_action( 'jet-form-builder/editor-package/before', $this, self::EDITOR_PACKAGE_HANDLE );
288
289 wp_enqueue_script(
290 self::EDITOR_PACKAGE_HANDLE,
291 JET_FORM_BUILDER_URL . 'assets/js/package.js',
292 array(
293 'wp-editor',
294 'wp-core-data',
295 'wp-data',
296 'wp-block-library',
297 'wp-format-library',
298 'wp-api-fetch',
299 ),
300 JET_FORM_BUILDER_VERSION,
301 true
302 );
303
304 wp_set_script_translations(
305 self::EDITOR_PACKAGE_HANDLE,
306 'jet-form-builder',
307 Plugin::instance()->plugin_dir( 'languages' )
308 );
309
310 do_action( 'jet-form-builder/editor-assets/before', $this, self::EDITOR_HANDLE );
311
312 wp_enqueue_script(
313 self::EDITOR_HANDLE,
314 JET_FORM_BUILDER_URL . 'assets/js/editor.js',
315 array(),
316 JET_FORM_BUILDER_VERSION,
317 true
318 );
319
320 wp_enqueue_style(
321 self::EDITOR_HANDLE,
322 JET_FORM_BUILDER_URL . 'assets/css/editor.css',
323 array(
324 'media',
325 'l10n',
326 'buttons',
327 'wp-edit-blocks',
328 'wp-editor',
329 ),
330 JET_FORM_BUILDER_VERSION,
331 'all'
332 );
333
334 $conditions_settings = jet_form_builder()->form_handler->action_handler->condition_manager()->get_settings();
335
336 wp_localize_script(
337 self::EDITOR_PACKAGE_HANDLE,
338 'JetFormEditorData',
339 array(
340 'presetConfig' => $this->get_preset_config(),
341 'messagesDefault' => $this->get_messages_default(),
342 'gateways' => Gateway_Manager::instance()->editor_data(),
343 'helpForRepeaters' => $this->get_help_for_repeaters(),
344 'global_settings' => Tab_Handler_Manager::instance()->all(),
345 'jetEngineVersion' => Tools::get_jet_engine_version(),
346 'actionConditionSettings' => $conditions_settings,
347 )
348 );
349
350 do_action( 'jet-form-builder/editor-assets/after', $this, self::EDITOR_HANDLE );
351 }
352
353 private function get_help_for_repeaters() {
354 return array(
355 'conditional_block' => array(
356 'label' => __( 'With many conditions for the block, they are checked with the AND operator', 'jet-form-builder' ),
357 ),
358 'conditional_block_or' => array(
359 'label' => __( 'With many conditions for the block, they are checked with the OR operator', 'jet-form-builder' ),
360 ),
361 'conditional_action' => array(
362 'label' => __( 'With many conditions for the action, they are checked with the AND operator', 'jet-form-builder' ),
363 ),
364 'conditional_action_or' => array(
365 'label' => __( 'With many conditions for the action, they are checked with the OR operator', 'jet-form-builder' ),
366 ),
367 );
368 }
369
370 public function enqueue_form_assets() {
371
372 $handle = 'jet-form-builder/form';
373
374 do_action( 'jet-form-builder/other-editor-assets/before', $this, $handle );
375
376 wp_enqueue_script(
377 $handle,
378 JET_FORM_BUILDER_URL . 'assets/js/form-block.js',
379 array(
380 'wp-editor',
381 'wp-core-data',
382 'wp-data',
383 'wp-block-library',
384 'wp-format-library',
385 'wp-api-fetch',
386 ),
387 JET_FORM_BUILDER_VERSION,
388 true
389 );
390
391 wp_enqueue_style(
392 'jet-form-builder-others',
393 Plugin::instance()->plugin_url( 'assets/css/frontend.css' ),
394 array(),
395 Plugin::instance()->get_version()
396 );
397
398 do_action( 'jet-form-builder/other-editor-assets/after', $this, $handle );
399
400 }
401
402 }
403