PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 1.2.4
JetFormBuilder — Dynamic Blocks Form Builder v1.2.4
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 / blocks / render / form-builder.php
jetformbuilder / includes / blocks / render Last commit date
base-select-radio-check.php 4 years ago base.php 4 years ago calculated-field-render.php 4 years ago checkbox-field-render.php 4 years ago conditional-block-render.php 4 years ago date-field-render.php 4 years ago datetime-field-render.php 4 years ago form-break-field-render.php 4 years ago form-builder.php 4 years ago group-break-field-render.php 4 years ago heading-field-render.php 4 years ago hidden-field-render.php 4 years ago media-field-render.php 4 years ago number-field-render.php 4 years ago radio-field-render.php 4 years ago range-field-render.php 4 years ago repeater-field-render.php 4 years ago select-field-render.php 4 years ago submit-field-render.php 4 years ago text-field-render.php 4 years ago textarea-field-render.php 4 years ago time-field-render.php 4 years ago wysiwyg-field-render.php 4 years ago
form-builder.php
243 lines
1 <?php
2
3 namespace Jet_Form_Builder\Blocks\Render;
4
5
6 use Jet_Form_Builder\Classes\Attributes_Trait;
7 use Jet_Form_Builder\Classes\Get_Template_Trait;
8 use Jet_Form_Builder\Compatibility\Jet_Style_Manager;
9 use Jet_Form_Builder\File_Upload;
10 use Jet_Form_Builder\Live_Form;
11 use Jet_Form_Builder\Plugin;
12 use Jet_Form_Builder\Presets\Preset_Manager;
13 use JET_SM\Gutenberg\Style_Manager;
14
15 // If this file is called directly, abort.
16
17 if ( ! defined( 'WPINC' ) ) {
18 die;
19 }
20
21 /**
22 * Form builder class
23 */
24 class Form_Builder {
25
26 use Attributes_Trait;
27 use Get_Template_Trait;
28
29 public $form_id;
30 public $post;
31 public $args = array();
32
33 private $form_content;
34
35 /**
36 * Constructor for the class
37 *
38 * @param null $form_id
39 * @param bool $post
40 * @param array $args
41 */
42 function __construct( $form_id = null, $post = false, $args = array() ) {
43
44 if ( ! $form_id ) {
45 return;
46 }
47 $this->form_id = $form_id;
48 $this->set_form_args( $args );
49
50 if ( empty( $post ) ) {
51 $this->post = get_post();
52 }
53
54 $this->form_content = Plugin::instance()->form->get_form_content( $form_id );
55 }
56
57 /**
58 * @param $arguments
59 */
60 public function set_form_args( $arguments ) {
61 $this->args = array_intersect_key( $arguments, Plugin::instance()->post_type->get_default_args() );
62
63 return $this;
64 }
65
66
67 /**
68 * Returns form action url
69 *
70 * @return [type] [description]
71 */
72 public function get_form_action_url() {
73
74 $action = add_query_arg(
75 array(
76 Plugin::instance()->form_handler->hook_key => Plugin::instance()->form_handler->hook_val,
77 ),
78 home_url( '/' )
79 );
80
81 return apply_filters( 'jet-form-builder/form-action-url', $action, $this );
82
83 }
84
85 /**
86 * Returns form refer url
87 *
88 * @return [type] [description]
89 */
90 public function get_form_refer_url() {
91
92 global $wp;
93
94 $refer = home_url( $wp->request );
95
96 if ( ! empty( $_SERVER['QUERY_STRING'] ) ) {
97 $refer = trailingslashit( $refer ) . '?' . $_SERVER['QUERY_STRING'];
98 }
99
100 return apply_filters( 'jet-form-builder/form-refer-url', $refer, $this );
101
102 }
103
104 /**
105 * @return mixed|void
106 */
107 public function pre_render() {
108 return apply_filters( 'jet-form-builder/pre-render/' . $this->form_id, false );
109 }
110
111
112 /**
113 * Open form wrapper
114 *
115 * @return string [type] [description]
116 */
117 public function start_form() {
118
119 $start_form = apply_filters( 'jet-form-builder/before-start-form', '', $this );
120
121 $this->add_attribute( 'class', 'jet-form-builder' );
122 $this->add_attribute( 'class', 'layout-' . Live_Form::instance()->spec_data->fields_layout );
123 $this->add_attribute( 'class', 'submit-type-' . Live_Form::instance()->spec_data->submit_type );
124 $this->add_attribute( 'action', $this->get_form_action_url() );
125 $this->add_attribute( 'method', 'POST' );
126 $this->add_attribute( 'data-form-id', $this->form_id );
127 $this->add_attribute( 'data-layout', Live_Form::instance()->spec_data->fields_layout );
128
129 ob_start();
130 include $this->get_global_template( 'common/start-form.php' );
131 $start_form .= ob_get_clean();
132
133 $start_form .= apply_filters( 'jet-form-builder/after-start-form', '', $this );
134
135 return $start_form;
136 }
137
138 /**
139 * Close form wrapper
140 *
141 * @return string [type] [description]
142 */
143 public function end_form() {
144
145 $end_form = apply_filters( 'jet-form-builder/before-end-form', '', $this );
146 $form_id = $this->form_id;
147
148 ob_start();
149
150 if ( Plugin::instance()->captcha ) {
151 Plugin::instance()->captcha->render( $this->form_id );
152 }
153
154 include $this->get_global_template( 'common/end-form.php' );
155
156 Plugin::instance()->blocks->enqueue_frontend_assets();
157 File_Upload::instance()->enqueue_scripts();
158
159 $end_form .= ob_get_clean();
160
161 $end_form .= apply_filters( 'jet-form-builder/after-end-form', '', $this );
162
163 return $end_form;
164 }
165
166
167 /**
168 * Render from HTML
169 *
170 * @param bool $echo
171 *
172 * @return false|string [type] [description]
173 */
174 public function render_form( $echo = true ) {
175
176 if ( $this->pre_render() ) {
177 return '';
178 }
179
180 if ( ! $this->preset()->sanitize_source() ) {
181 echo 'You are not permitted to submit this form!';
182
183 return '';
184 }
185
186 $this->form_content = Live_Form::instance()
187 ->set_form_id( $this->form_id )
188 ->set_specific_data_for_render( $this->args )
189 ->setup_fields( $this->form_content );
190
191 $form = $this->start_form();
192
193 $form .= Live_Form::force_render_field( 'hidden-field',
194 array(
195 'field_value' => $this->form_id,
196 'name' => Plugin::instance()->form_handler->form_key,
197 )
198 );
199
200 $form .= Live_Form::force_render_field( 'hidden-field',
201 array(
202 'field_value' => $this->get_form_refer_url(),
203 'name' => Plugin::instance()->form_handler->refer_key,
204 )
205 );
206 $form .= Live_Form::force_render_field( 'hidden-field',
207 array(
208 'field_value' => Live_Form::instance()->post->ID,
209 'name' => Plugin::instance()->form_handler->post_id_key,
210 )
211 );
212 $form .= Live_Form::instance()->maybe_progress_pages();
213
214 $form .= Live_Form::instance()->maybe_start_page();
215
216 foreach ( $this->form_content as $block ) {
217 $form .= render_block( $block );
218 }
219
220 $form .= Live_Form::instance()->maybe_end_page( true );
221 $form .= $this->end_form();
222
223 Live_Form::clear();
224 Preset_Manager::clear();
225
226 if ( $echo ) {
227 echo $form;
228 } else {
229 return $form;
230 }
231
232 }
233
234 public function preset() {
235 Preset_Manager::instance()->set_form_id( $this->form_id );
236
237 return Preset_Manager::instance();
238 }
239
240 }
241
242
243