PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 3.3.1
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v3.3.1
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
← All changes | includes/Frontend/Form/View/Theme/ThemeBase.php +74 -32 2.10.03.3.1 View file →
@@ -1,9 +1,9 @@
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;
5 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\AddressField;
6 6 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\ButtonField;
7 7 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\CheckBoxField;
8 8 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\CountryField;
9 9 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\CurrencyField;
@@ -9,23 +9,25 @@
9 9 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\CurrencyField;
10 10 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\DecisionBoxField;
11 11 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\DividerField;
12 12 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\DropdownField;
13 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\FieldWithChild;
13 14 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\FileUploadField;
15 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\GDPRAgreementField;
16 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\HCaptchaField;
17 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\HiddenField;
14 18 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\HTMLField;
15 19 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\HtmlSelectField;
16 20 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\ImageField;
17 21 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\ImageSelectField;
18 -use BitCode\BitForm\Frontend\Form\View\Theme\Fields\PayPalField;
19 22 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\PhoneNumberField;
20 23 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\RadioBoxField;
21 24 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\RatingField;
22 -use BitCode\BitForm\Frontend\Form\View\Theme\Fields\RazorPayField;
23 25 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\RecaptchaV2Field;
24 26 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\RepeaterField;
25 27 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\SectionField;
26 -use BitCode\BitForm\Frontend\Form\View\Theme\Fields\SignatureField;
27 -use BitCode\BitForm\Frontend\Form\View\Theme\Fields\StripeField;
28 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\SliderField;
29 +use BitCode\BitForm\Frontend\Form\View\Theme\Fields\SpacerField;
28 30 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\TextAreaField;
29 31 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\TextField;
30 32 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\TitleField;
31 33 use BitCode\BitForm\Frontend\Form\View\Theme\Fields\TurnstileField;
@@ -37,8 +39,11 @@
37 39
38 40 public function inputWrapper($formViewInstance, $rowID)
39 41 {
40 42 $field = $formViewInstance->fields($rowID);
43 + if (!is_object($field)) {
44 + return '';
45 + }
41 46 $field_name = $formViewInstance->getFieldName($rowID);
42 47 $form_atomic_Cls_map = $formViewInstance->getAtomicClaMap();
43 48 $error = $formViewInstance->getError($rowID);
44 49 $value = $formViewInstance->getValue($field_name, $rowID);
@@ -75,13 +80,9 @@
75 80 // </div>
76 81 // ERRORHTML;
77 82 // }
78 83
79 - return <<<INPUTWRAPPER
80 -<div class="btcd-fld-itm $rowID $isHidden">
81 - $fieldHTML
82 -</div>
83 -INPUTWRAPPER;
84 + return sprintf('<div class="btcd-fld-itm %1$s %2$s">%3$s</div>', $rowID, $isHidden, $fieldHTML);
84 85
85 86 // return $fieldHTML;
86 87 }
87 88
@@ -86,14 +87,19 @@
86 87 }
87 88
88 89 protected function getField($field, $rowID, $field_name, $form_atomic_Cls_map, $error = null, $value = null, $formID = null)
89 90 {
91 + if (!is_object($field)) {
92 + return '';
93 + }
94 +
95 + // Pro-only fields ship in the Bit Form Pro plugin. In the free plugin, we avoid rendering Pro implementations.
96 + $proMissingHtml = '<div class="bf-pro-field-missing"> <!-- Require Bit Form Pro --> </div>';
97 +
90 98 switch ($field->typ) {
91 99 case 'text':
92 100 case 'username':
93 101 case 'number':
94 - case 'password':
95 - case 'email':
96 102 case 'url':
97 103 case 'date':
98 104 case 'datetime-local':
99 105 case 'time':
@@ -100,10 +106,18 @@
100 106 case 'month':
101 107 case 'week':
102 108 case 'color':
103 109 return TextField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
110 + case 'password':
111 + case 'email':
112 + case 'name':
113 + return FieldWithChild::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
114 + case 'address':
115 + return AddressField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
104 116 case 'textarea':
105 117 return TextAreaField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
118 + case 'range':
119 + return SliderField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
106 120 case 'check':
107 121 // return $this->checkBox($field, $rowID, $field_name, $formID, $error, $value);
108 122 return CheckBoxField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
109 123 case 'radio':
@@ -120,21 +134,46 @@
120 134 case 'recaptcha':
121 135 return RecaptchaV2Field::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
122 136 case 'turnstile':
123 137 return TurnstileField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
138 + case 'hcaptcha':
139 + return HCaptchaField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
124 140 case 'decision-box':
125 141 // return $this->decisionBox($field, $rowID, $field_name, $formID, $error, $value);
126 142 return DecisionBoxField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
143 + case 'gdpr':
144 + return GDPRAgreementField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
127 145 case 'html':
128 146 // return $this->html($field, $rowID, $field_name, $formID, $error, $value);
129 147 return HTMLField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
148 + case 'shortcode':
149 + if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\ShortcodeField')) {
150 + return \BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\ShortcodeField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
151 + }
152 + return $proMissingHtml;
153 + case 'hidden':
154 + return HiddenField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
130 155 case 'paypal':
131 - return PayPalField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
156 + if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\PayPalField')) {
157 + return \BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\PayPalField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
158 + }
159 + return $proMissingHtml;
132 160 case 'stripe':
133 - return StripeField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
161 + if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\StripeField')) {
162 + return \BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\StripeField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
163 + }
164 + return $proMissingHtml;
165 + case 'mollie':
166 + if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\MollieField')) {
167 + return \BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\MollieField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
168 + }
169 + return $proMissingHtml;
134 170 case 'razorpay':
135 171 // return $this->razorPay($field, $rowID, $field_name, $formID, $error, $value);
136 - return RazorPayField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
172 + if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\RazorPayField')) {
173 + return \BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\RazorPayField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
174 + }
175 + return $proMissingHtml;
137 176 // case 'submit':
138 177 // return $this->submitBtns($field, $rowID, $field_name, $formID, $error, $value);
139 178 case 'button':
140 179 // return $this->button($field, $rowID, $field_name, $formID, $error, $value);
@@ -144,8 +183,10 @@
144 183 return TitleField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
145 184 case 'divider':
146 185 // return $this->button($field, $rowID, $field_name, $formID, $error, $value);
147 186 return DividerField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
187 + case 'spacer':
188 + return SpacerField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
148 189 case 'country':
149 190 return CountryField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
150 191 case 'currency':
151 192 return CurrencyField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
@@ -151,9 +192,12 @@
151 192 return CurrencyField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
152 193 case 'phone-number':
153 194 return PhoneNumberField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
154 195 case 'advanced-file-up':
155 - return AdvanceFileUpField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
196 + if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\AdvanceFileUpField')) {
197 + return \BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\AdvanceFileUpField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
198 + }
199 + return $proMissingHtml;
156 200 case 'image':
157 201 return ImageField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
158 202 case 'section':
159 203 return SectionField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $this->_formViewerInstance, $this->_nestedLayout, $error, $value);
@@ -159,29 +203,27 @@
159 203 return SectionField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $this->_formViewerInstance, $this->_nestedLayout, $error, $value);
160 204 case 'repeater':
161 205 return RepeaterField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $this->_formViewerInstance, $this->_nestedLayout, $error, $value);
162 206 case 'signature':
163 - return SignatureField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
207 + if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\SignatureField')) {
208 + return \BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\SignatureField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
209 + }
210 + return $proMissingHtml;
211 + case 'email-otp':
212 + if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\EmailOtpField')) {
213 + return \BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\EmailOtpField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
214 + }
215 + return $proMissingHtml;
164 216 case 'rating':
165 217 return RatingField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
166 218 case 'image-select':
167 219 return ImageSelectField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
220 + case 'advanced-datetime':
221 + if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\AdvanceDateTimeField')) {
222 + return \BitCode\BitFormPro\Frontend\Form\View\Theme\Fields\AdvanceDateTimeField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
223 + }
224 + return $proMissingHtml;
168 225 default:
169 226 break;
170 227 }
171 - }
172 -
173 - protected function setTag($tag, $value, $attr = null)
174 - {
175 - echo "<$tag $attr>" . esc_html($value) . "</$tag>";
176 - }
177 -
178 - protected function setAttribute($attr, $value = null)
179 - {
180 - echo " $attr='" . esc_attr($value) . "' ";
181 - }
182 -
183 - protected function setSingleValuedAttribute($attr)
184 - {
185 - echo " $attr ";
186 228 }
187 229 }