PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 3.1.1
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v3.1.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
bit-form / includes / Frontend / Form / View / Conversational / ConversationalTheme.php

ConversationalTheme.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 3.1.1, at includes/Frontend/Form/View/Conversational/ConversationalTheme.php

167 lines 8.9 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\Conversational;
4
5 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\CheckBoxField;
6 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\CountryField;
7 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\CurrencyField;
8 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\DecisionBoxField;
9 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\DropdownField;
10 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\FileUploadField;
11 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\GDPRAgreementField;
12 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\HiddenField;
13 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\HtmlSelectField;
14 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\ImageSelectField;
15 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\PhoneNumberField;
16 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\RadioBoxField;
17 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\RatingField;
18 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\RecaptchaV2Field;
19 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\RepeaterField;
20 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\SectionField;
21 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\TextAreaField;
22 use BitCode\BitForm\Frontend\Form\View\Conversational\Fields\TextField;
23
24 class ConversationalTheme
25 {
26 private $_conversationalSettings;
27 private $_nestedLayout;
28 private $_formViewerInstance;
29 private $_conversationalHelpers;
30
31 public function __construct($conversationalSettings)
32 {
33 $this->_conversationalSettings = $conversationalSettings;
34 }
35
36 public function inputWrapper($formViewInstance, $rowID, $isNestedField = false)
37 {
38 $formID = $formViewInstance->getFormID();
39 $this->_conversationalHelpers = new ConversationalHelpers($formID, $this->_conversationalSettings);
40 $stepSettings = $this->_conversationalHelpers->getMergedStepSettings($rowID);
41 if (isset($stepSettings->enable) && !$stepSettings->enable) {
42 return '';
43 }
44
45 $field = $formViewInstance->fields($rowID);
46 $field_name = $formViewInstance->getFieldName($rowID);
47 $form_atomic_Cls_map = $formViewInstance->getAtomicClaMap();
48 $error = $formViewInstance->getError($rowID);
49 $value = $formViewInstance->getValue($field_name, $rowID);
50 $this->_nestedLayout = $formViewInstance->getNestedLayout($rowID);
51 $this->_formViewerInstance = $formViewInstance;
52 $isHidden = !empty($field->valid->hide) && $field->valid->hide ? 'fld-hide' : null;
53
54 $fieldHTML = $this->getField($field, $rowID, $field_name, $form_atomic_Cls_map, $error, $value, $formID);
55 $stepBtnHTML = $isNestedField ? '' : $this->_conversationalHelpers->getStepButtonsView($field, $stepSettings);
56 $minHeightCls = $isNestedField ? "bc{$formID}-min-height" : '';
57 $fieldContent = sprintf(
58 '
59 <div class="btcd-fld-itm %1$s %2$s %3$s">
60 %4$s
61 %5$s
62 </div>
63 ',
64 $rowID,
65 $minHeightCls,
66 $isHidden,
67 $fieldHTML,
68 $stepBtnHTML
69 );
70
71 $imageContent = $this->_conversationalHelpers->conversationalSettingsIcon($stepSettings, 'layoutImage', 'step-img', 'Field Image');
72 $convStepLayout = empty($stepSettings->layout) ? 'normal-layout' : $stepSettings->layout;
73 $layoutClsNames = "bc{$formID}-{$rowID} $convStepLayout";
74 $stepLayoutMarkup = $isNestedField ? $fieldContent : $this->_conversationalHelpers->getStepLayout($formID, $imageContent, $fieldContent, $convStepLayout, $layoutClsNames);
75 return $stepLayoutMarkup;
76 }
77
78 public function getField($field, $rowID, $field_name, $form_atomic_Cls_map, $error, $value, $formID)
79 {
80 // Pro-only fields ship in the Bit Form Pro plugin. In the free plugin, we avoid rendering Pro implementations.
81 $proMissingHtml = '<div class="bf-pro-field-missing"> <!-- Require Bit Form Pro --> </div>';
82
83 switch ($field->typ) {
84 case 'text':
85 case 'username':
86 case 'number':
87 case 'password':
88 case 'email':
89 case 'url':
90 case 'date':
91 case 'datetime-local':
92 case 'time':
93 case 'month':
94 case 'week':
95 case 'color':
96 return TextField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
97 case 'textarea':
98 return TextAreaField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
99 case 'check':
100 // return $this->checkBox($field, $rowID, $field_name, $formID, $error, $value);
101 return CheckBoxField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
102 case 'radio':
103 // return $this->radioBox($field, $rowID, $field_name, $formID, $error, $value);
104 return RadioBoxField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
105 case 'html-select':
106 return HtmlSelectField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
107 case 'select':
108 // return $this->dropDown($field, $rowID, $field_name, $formID, $error, $value);
109 return DropdownField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
110 case 'file-up':
111 // return $this->fileUp($field, $rowID, $field_name, $formID, $error, $value);
112 return FileUploadField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
113 case 'recaptcha':
114 return RecaptchaV2Field::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
115 // return $this->recaptcha($field, $rowID, $field_name, $formID, $error, $value);
116 case 'decision-box':
117 // return $this->decisionBox($field, $rowID, $field_name, $formID, $error, $value);
118 return DecisionBoxField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
119 case 'gdpr':
120 return GDPRAgreementField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
121 case 'hidden':
122 return HiddenField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
123 case 'paypal':
124 if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Conversational\Fields\PayPalField')) {
125 return \BitCode\BitFormPro\Frontend\Form\View\Conversational\Fields\PayPalField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
126 }
127 return $proMissingHtml;
128 case 'stripe':
129 if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Conversational\Fields\StripeField')) {
130 return \BitCode\BitFormPro\Frontend\Form\View\Conversational\Fields\StripeField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
131 }
132 return $proMissingHtml;
133 case 'razorpay':
134 if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Conversational\Fields\RazorPayField')) {
135 return \BitCode\BitFormPro\Frontend\Form\View\Conversational\Fields\RazorPayField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
136 }
137 return $proMissingHtml;
138 case 'country':
139 return CountryField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
140 case 'currency':
141 return CurrencyField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
142 case 'phone-number':
143 return PhoneNumberField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
144 case 'advanced-file-up':
145 if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Conversational\Fields\AdvanceFileUpField')) {
146 return \BitCode\BitFormPro\Frontend\Form\View\Conversational\Fields\AdvanceFileUpField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
147 }
148 return $proMissingHtml;
149 case 'section':
150 return SectionField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $this->_formViewerInstance, $this->_nestedLayout, $error, $value);
151 case 'repeater':
152 return RepeaterField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $this->_formViewerInstance, $this->_nestedLayout, $error, $value);
153 case 'signature':
154 if (class_exists('\BitCode\BitFormPro\Frontend\Form\View\Conversational\Fields\SignatureField')) {
155 return \BitCode\BitFormPro\Frontend\Form\View\Conversational\Fields\SignatureField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
156 }
157 return $proMissingHtml;
158 case 'rating':
159 return RatingField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
160 case 'image-select':
161 return ImageSelectField::init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
162 default:
163 break;
164 }
165 }
166 }
167