PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.15.3
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.15.3
V3.3.2 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 All 139 releases
← All changes | includes/Frontend/Form/View/Theme/ThemeBase.php +140 -38 1.4 → 2.15.3 View file →
@@ -1,40 +1,95 @@
1 1 <?php
2 2
3 3 namespace BitCode\BitForm\Frontend\Form\View\Theme;
4 4
5 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\AdvanceFileUpField;
6 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\ButtonField;
7 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\CheckBoxField;
8 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\CountryField;
9 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\CurrencyField;
10 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\DecisionBoxField;
11 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\DividerField;
12 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\DropdownField;
13 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\FileUploadField;
14 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\HTMLField;
15 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\HtmlSelectField;
16 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\ImageField;
17 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\ImageSelectField;
18 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\MollieField;
19 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\PayPalField;
20 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\PhoneNumberField;
21 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\RadioBoxField;
22 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\RatingField;
23 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\RazorPayField;
24 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\RecaptchaV2Field;
25 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\RepeaterField;
26 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\SectionField;
27 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\ShortcodeField;
28 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\SignatureField;
29 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\SliderField;
30 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\StripeField;
31 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\TextAreaField;
32 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\TextField;
33 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\TitleField;
34 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\TurnstileField;
35 +
5 36 class ThemeBase
6 37 {
7 - public function inputWrapper($field, $rowID, $field_name, $error = null, $value = null, $formID = null)
38 + private $_nestedLayout;
39 + private $_formViewerInstance;
40 +
41 + public function inputWrapper($formViewInstance, $rowID)
8 42 {
9 - $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'vis-n' : null;
10 - $isReqSym = empty($field->valid->req) ? null : ' <span class="fld-req-symbol">*</span>';
11 - $noLabel = ['decision-box', 'html', 'button', 'paypal', 'razorpay', 'recaptcha'];
12 - $lbl = (!in_array($field->typ, $noLabel) && !isset($field->valid->hideLbl) && isset($field->lbl)) ? "<label class='fld-lbl fld-lbl-$formID' for='$rowID'>" . esc_html($field->lbl) . $isReqSym . "</label>" : "";
13 - $err = (isset($error) && !empty($error)) ? $error : "";
14 - $errStyle = !empty($err) ? "style='height: auto'" : "";
15 - $fieldHTML = $this->getField($field, $rowID, $field_name, $error, $value, $formID);
16 - $errHTML = '';
17 - if ($err || isset($field->err)) {
18 - $errHTML = <<<ERRORHTML
19 - <div class="error-wrapper" $errStyle>
20 - <div id="$rowID-error" class="error-txt">$err</div>
21 - </div>
22 -ERRORHTML;
23 - }
43 + $field = $formViewInstance->fields($rowID);
44 + $field_name = $formViewInstance->getFieldName($rowID);
45 + $form_atomic_Cls_map = $formViewInstance->getAtomicClaMap();
46 + $error = $formViewInstance->getError($rowID);
47 + $value = $formViewInstance->getValue($field_name, $rowID);
48 + $formID = $formViewInstance->getFormID();
49 + $this->_nestedLayout = $formViewInstance->getNestedLayout($rowID);
50 + $this->_formViewerInstance = $formViewInstance;
24 51
52 + // $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'vis-n' : null;
53 + $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'fld-hide' : null;
54 + // $isReqSym = empty($field->valid->req) ? null : ' <span class="fld-req-symbol">*</span>';
55 + // $noLabel = ['decision-box', 'html', 'button', 'paypal', 'razorpay', 'recaptcha'];
56 + // $fieldLbl = "";
57 +
58 + // if (!in_array($field->typ, $noLabel) && isset($field->lbl)) {
59 + // $replaceToBackslash = str_replace('$_bf_$', '\\', $field->lbl);
60 + // $fieldLbl = FieldValueHandler::replaceSmartTagWithValue($replaceToBackslash);
61 + // }
62 +
63 + // if (isset($field->ph)) {
64 + // $phReplaceToBackslash = str_replace('$_bf_$', '\\', $field->ph);
65 + // $field->ph = FieldValueHandler::replaceSmartTagWithValue($phReplaceToBackslash);
66 + // }
67 +
68 + // $lbl = (!in_array($field->typ, $noLabel) && !isset($field->valid->hideLbl) && isset($field->lbl)) ? "<label class='fld-lbl fld-lbl-$formID' for='$rowID'>" . esc_html($fieldLbl) . $isReqSym . "</label>" : "";
69 +
70 + // $err = (isset($error) && !empty($error)) ? $error : "";
71 + // $errStyle = !empty($err) ? "style='height: auto'" : "";
72 + $fieldHTML = $this->getField($field, $rowID, $field_name, $form_atomic_Cls_map, $error, $value, $formID);
73 + // $errHTML = '';
74 + // if ($err || isset($field->err)) {
75 + // $errHTML = <<<ERRORHTML
76 + // <div class="error-wrapper" $errStyle>
77 + // <div id="$rowID-error" class="error-txt">$err</div>
78 + // </div>
79 + // ERRORHTML;
80 + // }
81 +
25 82 return <<<INPUTWRAPPER
26 - <div class="btcd-fld-itm $rowID $isHidden">
27 - <div class="fld-wrp fld-wrp-$formID drag">
28 - $lbl
29 - $fieldHTML
30 - $errHTML
31 - </div>
32 - </div>
83 +<div class="btcd-fld-itm $rowID $isHidden">
84 + $fieldHTML
85 +</div>
33 86 INPUTWRAPPER;
87 +
88 + // return $fieldHTML;
34 89 }
35 90
36 - protected function getField($field, $rowID, $field_name, $error = null, $value = null, $formID = null)
91 + protected function getField($field, $rowID, $field_name, $form_atomic_Cls_map, $error = null, $value = null, $formID = null)
37 92 {
38 93 switch ($field->typ) {
39 94 case 'text':
40 95 case 'username':
@@ -47,33 +102,79 @@
47 102 case 'time':
48 103 case 'month':
49 104 case 'week':
50 105 case 'color':
51 - return $this->textField($field, $rowID, $field_name, $formID, $error, $value);
106 + return TextField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
52 107 case 'textarea':
53 - return $this->textArea($field, $rowID, $field_name, $formID, $error, $value);
108 + return TextAreaField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
109 + case 'range':
110 + return SliderField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
54 111 case 'check':
55 - return $this->checkBox($field, $rowID, $field_name, $formID, $error, $value);
112 + // return $this->checkBox($field, $rowID, $field_name, $formID, $error, $value);
113 + return CheckBoxField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
56 114 case 'radio':
57 - return $this->radioBox($field, $rowID, $field_name, $formID, $error, $value);
115 + // return $this->radioBox($field, $rowID, $field_name, $formID, $error, $value);
116 + return RadioBoxField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
117 + case 'html-select':
118 + return HtmlSelectField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
58 119 case 'select':
59 - return $this->dropDown($field, $rowID, $field_name, $formID, $error, $value);
120 + // return $this->dropDown($field, $rowID, $field_name, $formID, $error, $value);
121 + return DropdownField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
60 122 case 'file-up':
61 - return $this->fileUp($field, $rowID, $field_name, $formID, $error, $value);
123 + // return $this->fileUp($field, $rowID, $field_name, $formID, $error, $value);
124 + return FileUploadField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
62 125 case 'recaptcha':
63 - return $this->recaptcha($field, $rowID, $field_name, $formID, $error, $value);
126 + return RecaptchaV2Field::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
127 + case 'turnstile':
128 + return TurnstileField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
64 129 case 'decision-box':
65 - return $this->decisionBox($field, $rowID, $field_name, $formID, $error, $value);
130 + // return $this->decisionBox($field, $rowID, $field_name, $formID, $error, $value);
131 + return DecisionBoxField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
66 132 case 'html':
67 - return $this->html($field, $rowID, $field_name, $formID, $error, $value);
133 + // return $this->html($field, $rowID, $field_name, $formID, $error, $value);
134 + return HTMLField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
135 + case 'shortcode':
136 + return ShortcodeField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
68 137 case 'paypal':
69 - return $this->paypal($field, $rowID, $field_name, $formID, $error, $value);
138 + return PayPalField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
139 + case 'stripe':
140 + return StripeField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
141 + case 'mollie':
142 + return MollieField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
70 143 case 'razorpay':
71 - return $this->razorPay($field, $rowID, $field_name, $formID, $error, $value);
72 - case 'submit':
73 - return $this->submitBtns($field, $rowID, $field_name, $formID, $error, $value);
144 + // return $this->razorPay($field, $rowID, $field_name, $formID, $error, $value);
145 + return RazorPayField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
146 + // case 'submit':
147 + // return $this->submitBtns($field, $rowID, $field_name, $formID, $error, $value);
74 148 case 'button':
75 - return $this->button($field, $rowID, $field_name, $formID, $error, $value);
149 + // return $this->button($field, $rowID, $field_name, $formID, $error, $value);
150 + return ButtonField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
151 + case 'title':
152 + // return $this->button($field, $rowID, $field_name, $formID, $error, $value);
153 + return TitleField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
154 + case 'divider':
155 + // return $this->button($field, $rowID, $field_name, $formID, $error, $value);
156 + return DividerField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
157 + case 'country':
158 + return CountryField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
159 + case 'currency':
160 + return CurrencyField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
161 + case 'phone-number':
162 + return PhoneNumberField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
163 + case 'advanced-file-up':
164 + return AdvanceFileUpField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
165 + case 'image':
166 + return ImageField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
167 + case 'section':
168 + return SectionField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $this->_formViewerInstance, $this->_nestedLayout, $error, $value);
169 + case 'repeater':
170 + return RepeaterField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $this->_formViewerInstance, $this->_nestedLayout, $error, $value);
171 + case 'signature':
172 + return SignatureField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
173 + case 'rating':
174 + return RatingField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
175 + case 'image-select':
176 + return ImageSelectField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
76 177 default:
77 178 break;
78 179 }
79 180 }
@@ -86,8 +187,9 @@
86 187 protected function setAttribute($attr, $value = null)
87 188 {
88 189 echo " $attr='" . esc_attr($value) . "' ";
89 190 }
191 +
90 192 protected function setSingleValuedAttribute($attr)
91 193 {
92 194 echo " $attr ";
93 195 }