PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 1.3
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v1.3
3.3.1 V-3.3.0 3.2.2 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 V3.0.3 V3.0.2 -3.0.1 V_3.0.0 1.1.1 1.1.8 1.2 1.3 1.4 1.4.18 1.5.2 1.9 2.0 2.10.0 2.10.1 All 138 releases
bit-form / includes / Frontend / Form / View / Theme / DefaultTheme.php

DefaultTheme.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 1.3, at includes/Frontend/Form/View/Theme/DefaultTheme.php

371 lines 16.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace BitCode\BitForm\Frontend\Form\View\Theme;
4
5 use BitCode\BitForm\Core\Integration\IntegrationHandler;
6
7 final class DefaultTheme extends ThemeBase
8 {
9 protected function fileUp($field, $rowID, $field_name, $error = null, $value = null, $formID)
10 {
11 $name = esc_attr($field_name);
12 $name .= isset($field->mul) ? '[]' : null;
13 $isReqSym = empty($field->valid->req) ? null : ' *';
14 $isDisabled = empty($field->valid->disabled) ? null : 'disabled';
15 $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'btcd-hidden' : null;
16 $lbl = isset($field->lbl) ? "<label class='fld-lbl fld-lbl-$formID' for='$rowID'>" . esc_html($field->lbl) . $isReqSym . "</label>" : "";
17 $upBtnTxt = isset($field->upBtnTxt) ? "<span>" . esc_html($field->upBtnTxt) . "</span>" : "";
18 $maxUpload = isset($field->mxUp) ? "Max " . esc_html($field->mxUp) . " MB" : "";
19 $req = isset($field->req) ? "required" : "";
20 $mul = isset($field->mul) ? "multiple" : "";
21 $extention = isset($field->exts) ? "accept='" . esc_attr($field->exts) . "'" : "";
22 $err = isset($error) ? "<span style='color: #d52522'>" . esc_html($error) . "</span>" : "";
23 // var_dump(function_exists('fastcgi_finish_request'));
24 return <<<FILEUPLOAD
25 <div class="btcd-fld-itm $rowID $isHidden">
26 <div class="fld-wrp fld-wrp-$formID drag" btcd-fld="textarea">
27 $lbl
28 <div class="btcd-f-input">
29 <div class="btcd-f-wrp">
30 <div class="btn-wrp">
31 <button class="btcd-inpBtn" type="button">
32 <svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" width="15" height="15"><path d="M13.5 7.5l-5.757 5.757a4.243 4.243 0 01-6-6l5.929-5.929a2.828 2.828 0 014 4l-5.758 5.758a1.414 1.414 0 01-2-2L9.5 3.5" stroke="currentColor" /></svg>
33 $upBtnTxt
34 </button>
35 </div>
36 <span class="btcd-f-title">No File Chosen</span>
37 <small class="f-max">$maxUpload</small>
38 <input id="$rowID" name="$name" $req $mul $extention $isDisabled type="file" />
39 </div>
40 </div>
41 $err
42 </div>
43 </div>
44 FILEUPLOAD;
45 }
46
47 protected function submitBtns($field, $style, $field_id)
48 {
49 ob_start(); ?>
50 <div class="<?php echo $style; ?>">
51 <div>
52 <div
53 class="btcd-frm-sub <?php $field->align === 'center' ? $this->setSingleValuedAttribute('j-c-c') : ''; ?><?php $field->align === 'right' ? $this->setSingleValuedAttribute('j-c-e') : ''; ?>">
54 <button
55 class="btcd-sub-btn btcd-sub <?php $field->btnSiz === 'md' ? $this->setSingleValuedAttribute('btcd-btn-md') : ''; ?> <?php $field->fulW ? $this->setSingleValuedAttribute('ful-w') : ''; ?>"
56 type="submit" <?php isset($field->name) ? $this->setAttribute('name', $field->name) : '' ?>><?php echo esc_html($field->subBtnTxt) ?></button>
57 <?php //{'rstBtnTxt' in attr && <button className={`btcd-sub-btn btcd-rst ${attr.btnSiz === 'md' && 'btcd-btn-md'} ${attr.fulW && 'ful-w'}`} type="button">{attr.rstBtnTxt}</button>}
58 ?>
59 <?php if (!empty($field->rstBtnTxt)) : ?>
60 <button
61 class="btcd-sub-btn btcd-rst <?php $field->btnSiz === 'md' ? $this->setSingleValuedAttribute('btcd-btn-md') : ''; ?> <?php $field->fulW ? $this->setSingleValuedAttribute('ful-w') : ''; ?>"
62 type="reset"><?php echo esc_html($field->rstBtnTxt) ?></button>
63 <?php endif ?>
64 </div>
65 </div>
66 </div>
67 <?php
68 return ob_get_clean();
69 }
70
71 protected function textField($field, $rowID, $field_name, $error = null, $value = null, $formID)
72 {
73 $isReqSym = empty($field->valid->req) ? null : ' *';
74 $isDisabled = empty($field->valid->disabled) ? null : 'disabled';
75 $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'btcd-hidden' : null;
76 $lbl = isset($field->lbl) ? "<label class='fld-lbl fld-lbl-$formID' for='$rowID'>" . esc_html($field->lbl) . $isReqSym . "</label>" : "";
77 $name = isset($field_name) ? "name='" . esc_attr($field_name) . "'" : "";
78 $ph = isset($field->ph) ? "placeholder='" . esc_attr($field->ph) . "'" : "";
79 $mx = isset($field->mx) ? "max='" . esc_attr($field->mx) . "'" : "";
80 $mn = isset($field->mn) ? "min='" . esc_attr($field->mn) . "'" : "";
81 $val = isset($value) ? "value='" . esc_attr($value) . "'" : "";
82 $required = isset($field->valid->req) ? "required" : "";
83 $err = isset($error) ? "<span style='color: #d52522;'>" . $error . "</span>" : "";
84
85 return <<<TEXTFIELD
86 <div class="btcd-fld-itm $rowID $isHidden">
87 <div class="fld-wrp fld-wrp-$formID drag" btcd-fld="text-fld">
88 $lbl
89 <input id="$rowID" class="fld fld-$formID no-drg" type="$field->typ" $name $ph $mx $mn $val $required $isDisabled/>
90 $err
91 </div>
92 </div>
93 TEXTFIELD;
94 }
95
96 protected function textArea($field, $rowID, $field_name, $error = null, $value = null, $formID)
97 {
98 $isReqSym = empty($field->valid->req) ? null : ' *';
99 $isDisabled = empty($field->valid->disabled) ? null : 'disabled';
100 $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'btcd-hidden' : null;
101 $lbl = isset($field->lbl) ? "<label class='fld-lbl fld-lbl-$formID' for='$rowID'>" . esc_html($field->lbl) . $isReqSym . "</label>" : "";
102 $name = isset($field_name) ? "name='" . esc_attr($field_name) . "'" : "";
103 $ph = isset($field->ph) ? "placeholder='$field->ph'" : "";
104 $val = isset($value) ? "value='$value'" : "";
105 $required = isset($field->valid->req) ? "required" : "";
106 $err = isset($error) ? "<span style='color: #d52522;'>" . esc_html($error) . "</span>" : "";
107
108 return <<<TEXTAREA
109 <div class="btcd-fld-itm $rowID $isHidden">
110 <div class="fld-wrp fld-wrp-$formID drag" btcd-fld="textarea">
111 $lbl
112 <textarea id="$rowID" class="fld fld-$formID no-drg" type="$field->typ" $name $ph $required $isDisabled>$val</textArea>
113 $err
114 </div>
115 </div>
116 TEXTAREA;
117 }
118
119 protected function dropDown($field, $rowID, $field_name, $error = null, $value = null, $formID)
120 {
121 $defaultValue = $value == null ? [] : array_map('esc_html', $value);
122 $isDisabled = empty($field->valid->disabled) ? null : 'msl-disabled';
123 $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'btcd-hidden' : null;
124 $mul = isset($field->mul);
125 $isReqSym = empty($field->valid->req) ? null : ' *';
126 $lbl = isset($field->lbl) ? "<label class='fld-lbl fld-lbl-$formID' for='$rowID'>" . esc_html($field->lbl) . $isReqSym . "</label>" : "";
127 $ph = isset($field->ph) ? "data-placeholder='$field->ph'" : "data-placeholder='Select...'";
128 $val = "";
129 if (isset($field->val)) {
130 $dval = is_string($field->val) ? $field->val : implode(",", $field->val);
131 $val = "value='$dval'";
132 }
133 $options = "";
134 foreach ($field->opt as $selectOption) {
135 $label = esc_html($selectOption->label);
136 $value = esc_html($selectOption->value);
137 // preg_match('/asd 1/', $input_line, $output_array);
138 $selected = in_array($value, $defaultValue) ? "msl-option-selected" : "";
139 $options .= "<option title='$label' class='msl-option btcd-hidden $selected' value='$value'>$label</option>";
140 }
141
142 $defaultValuePlacehold = "<div data-msl='true' $ph class='msl-input' contenteditable='true'></div>";
143 if ($defaultValue !== null && sizeof($defaultValue) === 1 && !$mul) {
144 $defaultValuePlacehold = "<span class='msl-single-value' data-msl='true'>$defaultValue[0]</span>";
145 }
146 return <<<DROPDOWN
147 <div class="btcd-fld-itm $rowID $isHidden">
148 <div class="fld-wrp fld-wrp-$formID drag" btcd-fld="select">
149 $lbl
150 <div class="msl-wrp msl-vars no-drg $isDisabled fld fld-$formID dpd" style="width: 100%;">
151 <input name="$field_name" type="hidden" value="$val">
152 <div data-msl="true" class="msl">
153 <div data-msl="true" class="msl-input-wrp" tabindex="0">
154 $defaultValuePlacehold
155 </div>
156 <div class="msl-actions msl-flx"><div role="button" aria-label="toggle-menu" class="msl-btn msl-arrow-btn msl-flx"></div></div></div>
157 <div class="msl-options">
158 $options
159 </div>
160 </div>
161 </div>
162 </div>
163 DROPDOWN;
164 }
165
166 protected function recaptcha($field, $rowID, $field_name, $error = null, $value = null, $formID)
167 {
168 $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'btcd-hidden' : null;
169
170 return <<<RECAPTCHA
171 <div class="btcd-fld-itm $rowID $isHidden">
172 <div class="btcd-flx j-c-c" style="min-height='inherit'">
173 </div>
174 </div>
175 RECAPTCHA;
176 }
177
178 protected function paypal($field, $rowID, $field_name, $error = null, $value = null, $formID)
179 {
180 $client = '';
181 if (isset($field->payIntegID)) {
182 $client = $this->getClientKey($field->payIntegID, 'clientID');
183 }
184 $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'btcd-hidden' : null;
185
186 return <<<PAYPAL
187 <div class="btcd-fld-itm $rowID $isHidden">
188 <div class="fld-wrp fld-wrp-${formID}">
189 <div style="width: auto; min-width: 150px; max-width: 750px; margin-left: auto; margin-right: auto;" id="paypal-client-$rowID" paypal-client-key="$client">
190 </div>
191 </div>
192 </div>
193 PAYPAL;
194 }
195
196 protected function razorPay($field, $rowID, $field_name, $error = null, $value = null, $formID)
197 {
198 $client = '';
199 if (isset($field->options->payIntegID)) {
200 $client = $this->getClientKey($field->options->payIntegID, 'apiKey');
201 }
202 $isHidden = (!empty($field->valid->hide) && $field->valid->hide) ? 'btcd-hidden' : null;
203 $center = $field->align === 'center' ? 'j-c-c' : '';
204 $right = $field->align === 'right' ? 'j-c-e' : '';
205 $btnSiz = $field->btnSiz === 'md' ? 'btcd-btn-md' : '';
206 $fulW = $field->fulW ? 'ful-w' : '';
207
208 return <<<RAZORPAY
209 <div class="btcd-fld-itm $rowID $isHidden">
210 <div class="fld-wrp fld-wrp-${formID}">
211 <div class="btcd-frm-sub $center $right">
212 <button class="btcd-sub-btn btcd-sub $btnSiz $fulW" type="button" name="$field_name" id="razorpay-client-$rowID" razorpay-client-key="$client">
213 <?php echo esc_html($field->btnTxt) ?>
214 </button>
215 </div>
216 </div>
217 </div>
218 RAZORPAY;
219 }
220
221 protected function checkBox($field, $rowID, $field_name, $error = null, $value = null, $formID)
222 {
223 $isReqSym = empty($field->valid->req) ? null : ' *';
224 $isDisabled = empty($field->valid->disabled) ? null : 'disabled';
225 $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'btcd-hidden' : null;
226
227 $lbl = isset($field->lbl) ? "<label class='fld-lbl fld-lbl-$formID' for='$rowID'>" . esc_html($field->lbl) . $isReqSym . "</label>" : "";
228 $round = isset($field->round) ? "btcd-round" : "";
229 $err = isset($error) ? "<span style='color: #d52522;'>" . esc_html($error) . "</span>" : "";
230
231 $options = "";
232
233 foreach ($field->opt as $checkBoxOption) {
234 $name = isset($field_name) ? "name='" . esc_attr($field_name) . "[]" . "'" : "";
235 $required = isset($checkBoxOption->req) ? "required" : "";
236 $checked = isset($checkBoxOption->check) ? "checked" : "";
237 $checkBoxOptionValue = esc_html($checkBoxOption->lbl);
238 if ((!is_array($value) && strpos($value, $checkBoxOption->lbl) !== false) || (isset($value) && \is_array($value) && $checkBoxOption->lbl === $value[array_search($checkBoxOption->lbl, $value)])) {
239 $checked = "checked";
240 }
241 $options .= <<<OPTION
242 <label class="btcd-ck-wrp btcd-ck-wrp-$formID">
243 <span>$checkBoxOption->lbl</span>
244 <input type="checkbox" $checked $required $name value="$checkBoxOptionValue" $isDisabled/>
245 <span class="btcd-mrk ck"></span>
246 </label>
247 OPTION;
248 }
249
250 return <<<CHECKBOX
251 <div class="btcd-fld-itm $rowID $isHidden">
252 <div class="fld-wrp fld-wrp-$formID drag" btcd-fld="textarea">
253 $lbl
254 <div class="no-drg fld btcd-ck-con $round">
255 $options
256 </div>
257 $err
258 </div>
259 </div>
260 CHECKBOX;
261 }
262
263 protected function radioBox($field, $rowID, $field_name, $error = null, $value = null, $formID)
264 {
265 $isReqSym = empty($field->valid->req) ? null : ' *';
266 $isDisabled = empty($field->valid->disabled) ? null : 'disabled';
267 $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'btcd-hidden' : null;
268 $lbl = isset($field->lbl) ? "<label class='fld-lbl fld-lbl-$formID' for='$rowID'>" . esc_html($field->lbl) . $isReqSym . "</label>" : "";
269 $round = isset($field->round) ? "btcd-round" : "";
270 $err = isset($error) ? "<span style='color: #d52522;'>" . esc_html($error) . "</span>" : "";
271
272 $options = "";
273
274 foreach ($field->opt as $checkBoxOption) {
275 $name = isset($field_name) ? "name='" . esc_attr($field_name) . "'" : "";
276 $required = isset($checkBoxOption->req) ? "required" : "";
277 $optionValue = esc_html($checkBoxOption->lbl);
278 $checked = "";
279 if (isset($checkBoxOption->check) || $checkBoxOption->lbl === $value) {
280 $checked = "checked";
281 }
282 $options .= <<<OPTION
283 <label class="btcd-ck-wrp btcd-ck-wrp-$formID">
284 <span>$checkBoxOption->lbl</span>
285 <input type="radio" $checked $required $name value="$optionValue" $isDisabled/>
286 <span class="btcd-mrk rdo"></span>
287 </label>
288 OPTION;
289 }
290
291 return <<<RADIOBOX
292 <div class="btcd-fld-itm $rowID $isHidden">
293 <div class="fld-wrp fld-wrp-$formID drag" btcd-fld="textarea">
294 $lbl
295 <div class="no-drg fld btcd-ck-con $round">
296 $options
297 </div>
298 $err
299 </div>
300 </div>
301 RADIOBOX;
302 }
303
304 protected function decisionBox($field, $rowID, $field_name, $error = null, $value = null, $formID)
305 {
306 $isRequired = !empty($field->valid->req) ? 'required' : '';
307 $isReqSym = $isRequired ? null : ' *';
308 $isChecked = !empty($field->valid->checked) ? 'checked' : '';
309 $isDisabled = empty($field->valid->disabled) ? null : 'disabled';
310 $value = $isChecked ? $field->msg->checked : $field->msg->unchecked;
311 $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'btcd-hidden' : null;
312 $round = isset($field->round) ? "btcd-round" : "";
313 $err = isset($error) ? "<span style='color: #d52522;'>" . esc_html($error) . "</span>" : "";
314 $size = $isRequired ? '1px' : '';
315
316 $lbl = !empty($field->lbl) ? wp_kses_post($field->lbl) : (isset($field->info) ? wp_kses_post($field->info->lbl) : '');
317
318 return <<<DECISIONBOX
319 <div class="btcd-fld-itm $rowID $isHidden">
320 <div class="fld-wrp fld-wrp-$formID drag" btcd-fld="decision-box">
321 <div class="no-drg fld fld-{$formID} btcd-ck-con $round">
322 <input
323 size="height: {$size}, width: {$size}"
324 type="checkbox"
325 $isDisabled
326 $isRequired
327 $isChecked
328 value="{$value}"
329 />
330 <label class="btcd-ck-wrp btcd-ck-wrp-{$formID}">
331 <span class="decision-content">
332 {$lbl}
333 </span>
334 <input type="hidden" value="{$value}" name="{$field_name}" />
335 </label>
336 <span class="btcd-mrk ck"></span>
337 </div>
338 $err
339 </div>
340 </div>
341 DECISIONBOX;
342 }
343
344 protected function html($field, $rowID, $field_name, $error = null, $value = null, $formID)
345 {
346 $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'btcd-hidden' : null;
347
348 $content = !empty($field->content) ? wp_kses_post($field->content) : '';
349
350 return <<<HTML
351 <div class="btcd-fld-itm $rowID $isHidden">
352 <div class="fld-wrp fld-wrp-$formID drag" btcd-fld="decision-box">
353 $content
354 </div>
355 </div>
356 HTML;
357 }
358
359 private function getClientKey($integID, $keyName)
360 {
361 $client = '';
362 if (!empty($integID)) {
363 $integrationHandler = new IntegrationHandler(0);
364 $integration = $integrationHandler->getAIntegration($integID, 'app', 'payments');
365 $integration_details = json_decode($integration[0]->integration_details);
366 $client = base64_encode($integration_details->{$keyName});
367 }
368 return $client;
369 }
370 }
371