PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.21.4
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.21.4
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 2.10.2 All 137 releases
← All changes | includes/Core/WorkFlow/ConditionalLogic.php +61 -40 2.02.21.4 View file →
@@ -1,18 +1,21 @@
1 1 <?php
2 2
3 3 namespace BitCode\BitForm\Core\WorkFlow;
4 4
5 -final class ConditionalLogic {
5 +final class ConditionalLogic
6 +{
6 7 protected $_workflow_condition;
7 8 protected $_data;
8 9
9 - public function __construct($workFlowCondition, $data) {
10 + public function __construct($workFlowCondition, $data)
11 + {
10 12 $this->_workflow_condition = $workFlowCondition;
11 13 $this->_data = $data;
12 14 }
13 15
14 - public function valueToCheck($logic) {
16 + public function valueToCheck($logic)
17 + {
15 18 if ((isset($this->_data[$this->_workflow_condition->field]['mul']) && $this->_data[$this->_workflow_condition->field]['mul'])
16 19 || 'check' === $this->_data[$this->_workflow_condition->field]['type']
17 20 ) {
18 21 $fieldValue = !empty($this->_data[$this->_workflow_condition->field]['value']) ? $this->_data[$this->_workflow_condition->field]['value'] : [];
@@ -36,18 +39,22 @@
36 39
37 40 return $default[$logic];
38 41 }
39 42
40 - public function isBetween() {
43 + public function isBetween()
44 + {
41 45 $fldValue = $this->_data[$this->_workflow_condition->field]['value'];
42 46 $actionsValue = json_decode($this->_workflow_condition->val);
43 - if (is_object($actionsValue) && (!empty($actionsValue->min) && !empty($actionsValue->max))) {
44 - return $fldValue >= $actionsValue->min && $fldValue <= $actionsValue->max;
47 + if (is_object($actionsValue)) {
48 + $min = empty($actionsValue->min) ? '' : $actionsValue->min;
49 + $max = empty($actionsValue->max) ? '' : $actionsValue->max;
50 + return $fldValue >= $min && $fldValue <= $max;
45 51 }
46 52 return false;
47 53 }
48 54
49 - public function isEqual() {
55 + public function isEqual()
56 + {
50 57 $valueToCheckFun = self::valueToCheck('equal');
51 58
52 59 if (!is_array($valueToCheckFun)) {
53 60 return $valueToCheckFun;
@@ -70,9 +77,10 @@
70 77 }
71 78 return false;
72 79 }
73 80
74 - public function isNotEqual() {
81 + public function isNotEqual()
82 + {
75 83 $valueToCheckFun = self::valueToCheck('not_equal');
76 84
77 85 if (!is_array($valueToCheckFun)) {
78 86 return $valueToCheckFun;
@@ -94,17 +102,20 @@
94 102 }
95 103 return $valueToCheckLenght === $checker;
96 104 }
97 105
98 - public function isNull() {
106 + public function isNull()
107 + {
99 108 return empty($this->_data[$this->_workflow_condition->field]['value']);
100 109 }
101 110
102 - public function isNotNull() {
111 + public function isNotNull()
112 + {
103 113 return !empty($this->_data[$this->_workflow_condition->field]['value']);
104 114 }
105 115
106 - public function isContain() {
116 + public function isContain()
117 + {
107 118 $valueToCheckFun = self::valueToCheck('contain');
108 119
109 120 if (!is_array($valueToCheckFun)) {
110 121 return $valueToCheckFun;
@@ -124,9 +135,10 @@
124 135 }
125 136 return false;
126 137 }
127 138
128 - public function isContainAll() {
139 + public function isContainAll()
140 + {
129 141 $valueToCheckFun = self::valueToCheck('contain_all');
130 142
131 143 if (!is_array($valueToCheckFun)) {
132 144 return $valueToCheckFun;
@@ -146,9 +158,10 @@
146 158 }
147 159 return false;
148 160 }
149 161
150 - public function isNotContain() {
162 + public function isNotContain()
163 + {
151 164 $valueToCheckFun = self::valueToCheck('not_contain');
152 165
153 166 if (!is_array($valueToCheckFun)) {
154 167 return $valueToCheckFun;
@@ -168,9 +181,10 @@
168 181 }
169 182 return false;
170 183 }
171 184
172 - public function isGreaterThenValue() {
185 + public function isGreaterThenValue()
186 + {
173 187 if (!isset($this->_data[$this->_workflow_condition->field]['value'])) {
174 188 return false;
175 189 }
176 190 return isset($this->_data[$this->_workflow_condition->field]['value']) && $this->_data[$this->_workflow_condition->field]['value'] > $this->_workflow_condition->val;
@@ -175,9 +189,10 @@
175 189 }
176 190 return isset($this->_data[$this->_workflow_condition->field]['value']) && $this->_data[$this->_workflow_condition->field]['value'] > $this->_workflow_condition->val;
177 191 }
178 192
179 - public function isLessThenValue() {
193 + public function isLessThenValue()
194 + {
180 195 if (!isset($this->_data[$this->_workflow_condition->field]['value'])) {
181 196 return false;
182 197 }
183 198 return isset($this->_data[$this->_workflow_condition->field]['value']) && $this->_data[$this->_workflow_condition->field]['value'] < $this->_workflow_condition->val;
@@ -182,9 +197,10 @@
182 197 }
183 198 return isset($this->_data[$this->_workflow_condition->field]['value']) && $this->_data[$this->_workflow_condition->field]['value'] < $this->_workflow_condition->val;
184 199 }
185 200
186 - public function isGreatertOrEqual() {
201 + public function isGreatertOrEqual()
202 + {
187 203 if (!isset($this->_data[$this->_workflow_condition->field]['value'])) {
188 204 return false;
189 205 }
190 206 return isset($this->_data[$this->_workflow_condition->field]['value']) && $this->_data[$this->_workflow_condition->field]['value'] >= $this->_workflow_condition->val;
@@ -189,9 +205,10 @@
189 205 }
190 206 return isset($this->_data[$this->_workflow_condition->field]['value']) && $this->_data[$this->_workflow_condition->field]['value'] >= $this->_workflow_condition->val;
191 207 }
192 208
193 - public function isLessOrEqual() {
209 + public function isLessOrEqual()
210 + {
194 211 if (!isset($this->_data[$this->_workflow_condition->field]['value'])) {
195 212 return false;
196 213 }
197 214 return isset($this->_data[$this->_workflow_condition->field]['value']) && $this->_data[$this->_workflow_condition->field]['value'] <= $this->_workflow_condition->val;
@@ -196,9 +213,10 @@
196 213 }
197 214 return isset($this->_data[$this->_workflow_condition->field]['value']) && $this->_data[$this->_workflow_condition->field]['value'] <= $this->_workflow_condition->val;
198 215 }
199 216
200 - public function isStarttWithString() {
217 + public function isStarttWithString()
218 + {
201 219 if (!isset($this->_data[$this->_workflow_condition->field]['value'])) {
202 220 return false;
203 221 }
204 222 return isset($this->_data[$this->_workflow_condition->field]['value']) && 0 === stripos($this->_data[$this->_workflow_condition->field]['value'], $this->_workflow_condition->val);
@@ -203,9 +221,10 @@
203 221 }
204 222 return isset($this->_data[$this->_workflow_condition->field]['value']) && 0 === stripos($this->_data[$this->_workflow_condition->field]['value'], $this->_workflow_condition->val);
205 223 }
206 224
207 - public function isEndWithString() {
225 + public function isEndWithString()
226 + {
208 227 if (!isset($this->_data[$this->_workflow_condition->field]['value'])) {
209 228 return false;
210 229 }
211 230 $fieldValue = $this->_data[$this->_workflow_condition->field]['value'];
@@ -215,9 +234,10 @@
215 234 $fieldValueEnds = strtolower(substr($fieldValue, $fieldValueLength - $compareValueLength, $fieldValueLength));
216 235 return $compareValue === $fieldValueEnds;
217 236 }
218 237
219 - public function logicOnFieldActionValue($actionDetail, $fieldData, $fields) {
238 + public function logicOnFieldActionValue($actionDetail, $fieldData, $fields)
239 + {
220 240 if (!empty($actionDetail->val) && !empty($fieldData[$actionDetail->field]['key'])) {
221 241 $actionValue = Helper::replaceFieldWithValue($actionDetail->val, $fieldData);
222 242 $fields->{$fieldData[$actionDetail->field]['key']}->val = Helper::evalMathExpression($actionValue);
223 243 $fieldData[$actionDetail->field]['value'] = $actionValue;
@@ -224,9 +244,10 @@
224 244 }
225 245 return $fieldData;
226 246 }
227 247
228 - public function logicOnFieldActionShow($actionDetail, $fieldData, $fields) {
248 + public function logicOnFieldActionShow($actionDetail, $fieldData, $fields)
249 + {
229 250 $fields->{$fieldData[$actionDetail->field]['key']}->valid->hide = false;
230 251 if ('hidden' === $fields->{$fieldData[$actionDetail->field]['key']}->typ) {
231 252 $fields->{$fieldData[$actionDetail->field]['key']}->typ = 'text';
232 253 }
@@ -232,9 +253,10 @@
232 253 }
233 254 return $fieldData;
234 255 }
235 256
236 - public function logicOnFieldActions($workFlowReturnable, $fieldData, $fields, $actionDetail) {
257 + public function logicOnFieldActions($workFlowReturnable, $fieldData, $fields, $actionDetail)
258 + {
237 259 return [
238 260 'value' => self::logicOnFieldActionValue($actionDetail, $fieldData, $fields),
239 261 'hide' => $fields->{$fieldData[$actionDetail->field]['key']}->valid->disabled = true,
240 262 'enable' => $fields->{$fieldData[$actionDetail->field]['key']}->valid->disabled = false,
@@ -241,12 +263,13 @@
241 263 'disable' => $fields->{$fieldData[$actionDetail->field]['key']}->valid->disabled = true,
242 264 'readonly' => $fields->{$fieldData[$actionDetail->field]['key']}->valid->readonly = true,
243 265 'show' => self::logicOnFieldActionShow($actionDetail, $fieldData, $fields),
244 266 ];
245 - return $workFlowReturnable['fields'];
267 + // return $workFlowReturnable['fields'];
246 268 }
247 269
248 - public function getConditionStatus() {
270 + public function getConditionStatus()
271 + {
249 272 $workflows = $this->_workflow_condition;
250 273 if (is_array($this->_workflow_condition)) {
251 274 foreach ($this->_workflow_condition as $sskey => $ssvalue) {
252 275 if (!is_string($ssvalue)) {
@@ -251,9 +274,8 @@
251 274 foreach ($this->_workflow_condition as $sskey => $ssvalue) {
252 275 if (!is_string($ssvalue)) {
253 276 $this->_workflow_condition = $ssvalue;
254 277 $isCondition = $this->getConditionStatus();
255 -
256 278 if (0 === $sskey) {
257 279 $conditionStatus = $isCondition;
258 280 }
259 281
@@ -280,9 +302,10 @@
280 302 return $this->isLogicMatch($this->_workflow_condition->logic);
281 303 }
282 304 }
283 305
284 - public function isLogicMatch($logic) {
306 + public function isLogicMatch($logic)
307 + {
285 308 if (isset($this->_workflow_condition->smartKey)) {
286 309 $this->_workflow_condition->field = str_replace('()', '', $this->_workflow_condition->field);
287 310 }
288 311
@@ -291,49 +314,47 @@
291 314 }
292 315 switch (strtolower($logic)) {
293 316 case 'equal':
294 317 return self::isEqual();
295 - break;
318 +
296 319 case 'not_equal':
297 320 return self::isNotEqual();
298 - break;
321 +
299 322 case 'null':
300 323 return self::isNull();
301 - break;
324 +
302 325 case 'not_null':
303 326 return self::isNotNull();
304 - break;
327 +
305 328 case 'contain':
306 329 return self::isContain();
307 - break;
330 +
308 331 case 'contain_all':
309 332 return self::isContainAll();
310 - break;
333 +
311 334 case 'not_contain':
312 335 return self::isNotContain();
313 - break;
336 +
314 337 case 'greater':
315 338 return self::isGreaterThenValue();
316 - break;
339 +
317 340 case 'less':
318 341 return self::isLessThenValue();
319 - break;
342 +
320 343 case 'greater_or_equal':
321 344 return self::isGreatertOrEqual();
322 - break;
345 +
323 346 case 'less_or_equal':
324 347 return self::isLessOrEqual();
325 - break;
326 348
327 349 case 'start_with':
328 350 return self::isStarttWithString();
329 - break;
351 +
330 352 case 'end_with':
331 353 return self::isEndWithString();
332 - break;
354 +
333 355 case 'between':
334 356 return self::isBetween();
335 - break;
336 357
337 358 default:
338 359 return false;
339 360 }