PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.10.2
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.10.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 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 2.10.2, at includes/Frontend/Form/View/Conversational/ConversationalTheme.php

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