PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / V3.3.2
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder vV3.3.2
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/Fields/DecisionBoxField.php +87 -37 2.0 → V3.3.2 View file →
@@ -1,17 +1,22 @@
1 1 <?php
2 2
3 3 namespace BitCode\BitForm\Frontend\Form\View\Theme\Fields;
4 4
5 -class DecisionBoxField {
6 - public static function init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error = null, $value = null) {
7 - $inputWrapper = new InputWrapper($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
5 +use BitCode\BitForm\Core\Util\FrontendHelpers;
6 +
7 +class DecisionBoxField
8 +{
9 + public static function init($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error = null, $value = null)
10 + {
11 + $inputWrapper = new ClassicInputWrapper($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
8 12 $input = self::field($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error, $value);
9 13 return $inputWrapper->wrapper($input, true);
10 14 }
11 15
12 - private static function field($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error = null, $value = null) {
13 - $fieldHelpers = new FieldHelpers($field, $rowID, $form_atomic_Cls_map);
16 + private static function field($field, $rowID, $field_name, $form_atomic_Cls_map, $formID, $error = null, $value = null)
17 + {
18 + $fieldHelpers = new ClassicFieldHelpers($field, $rowID, $form_atomic_Cls_map);
14 19
15 20 $suggestions = '';
16 21 $req = $fieldHelpers->required();
17 22 $disabled = '';
@@ -17,10 +22,16 @@
17 22 $disabled = '';
18 23 $readonly = '';
19 24 $name = $fieldHelpers->name();
20 25 $value = '';
26 + $ariaDescribedBy = $fieldHelpers->ariaDescribedBy();
27 + $ariaRequired = $fieldHelpers->ariaRequired();
28 + // Get dynamic label ID to link the checkbox group to its label for screen readers
29 + $labelId = $fieldHelpers->getLabelId();
30 + $bfFrontendFormIds = FrontendHelpers::$bfFrontendFormIds;
31 + $contentCount = count($bfFrontendFormIds);
21 32 if ($fieldHelpers->property_exists_nested($field, 'msg->checked')) {
22 - $value = "value='{$field->msg->checked}'";
33 + $value = "value='" . $fieldHelpers->esc_attr($field->msg->checked) . "'";
23 34 }
24 35 $checked = '';
25 36
26 37 if ($fieldHelpers->property_exists_nested($field, 'valid->disabled', true)) {
@@ -26,9 +37,9 @@
26 37 if ($fieldHelpers->property_exists_nested($field, 'valid->disabled', true)) {
27 38 $disabled = 'disabled';
28 39 }
29 40
30 - if ($fieldHelpers->property_exists_nested($field, 'valid->checked', true)) {
41 + if ($fieldHelpers->property_exists_nested($field, 'valid->checked', true) || $fieldHelpers->isChecked()) {
31 42 $checked = 'checked';
32 43 }
33 44
34 45 if ($fieldHelpers->property_exists_nested($field, 'valid->readonly', true)) {
@@ -41,60 +52,99 @@
41 52 } elseif ($fieldHelpers->property_exists_nested($field, 'info->lbl') && !empty($field->info->lbl)) {
42 53 $lbl = $field->info->lbl;
43 54 }
44 55
45 - return <<<DECISIONBOXFIELD
46 - <div
47 - class="{$fieldHelpers->getAtomicCls('cc')} {$fieldHelpers->getCustomClasses('cc')}"
48 - {$fieldHelpers->getCustomAttributes('cc')}
56 + return sprintf(
57 + '<div
58 + %1$s
59 + class="%2$s %3$s"
60 + role="group"
61 + aria-labelledby="%4$s"
62 + %5$s
49 63 >
50 - <svg class="{$fieldHelpers->getAtomicCls('cks')}">
51 - <symbol id="${rowID}-ck-svg" viewBox="0 0 12 10">
64 + <svg class="%6$s" aria-hidden="true">
65 + <symbol id="%7$s-ck-svg" viewBox="0 0 12 10">
52 66 <polyline
53 - class="{$fieldHelpers->getAtomicCls('ck-svgline')}"
67 + class="%8$s"
54 68 points="1.5 6 4.5 9 10.5 1"
55 - />
69 + ></polyline>
56 70 </symbol>
57 71 </svg>
58 72
59 73 <div
60 - class="{$fieldHelpers->getAtomicCls('cw')} {$fieldHelpers->getCustomClasses('cw')}"
61 - {$fieldHelpers->getCustomAttributes('cw')}
74 + %9$s
75 + class="%10$s %11$s"
62 76 >
63 77 <input
64 - id="{$rowID}-decision"
78 + id="%12$s-%13$s-decision"
65 79 type="checkbox"
66 - class="{$fieldHelpers->getAtomicCls('ci')}"
67 - {$disabled}
68 - {$readonly}
69 - {$req}
70 - {$name}
71 - {$checked}
72 - {$value}
80 + class="%14$s"
81 + %15$s
82 + %16$s
83 + %17$s
84 + %18$s
85 + %19$s
86 + %20$s
87 + %21$s
73 88 />
74 89 <label
90 + %22$s
75 91 data-cl
76 - for="{$rowID}-decision"
77 - class="{$fieldHelpers->getAtomicCls('cl')}"
78 - {$fieldHelpers->getCustomAttributes('cl')}
92 + for="%23$s-%24$s-decision"
93 + class="%25$s"
79 94 >
80 95 <span
96 + %26$s
81 97 data-bx
82 - class="{$fieldHelpers->getAtomicCls('bx')} {$fieldHelpers->getAtomicCls('bx')}"
83 - {$fieldHelpers->getCustomAttributes('bx')}
98 + class="%27$s %28$s"
84 99 >
85 - <svg width="12" height="10" viewBox="0 0 12 10" class="{$fieldHelpers->getAtomicCls('svgwrp')}">
86 - <use data-ck-icn href="#{$rowID}-ck-svg" class="{$fieldHelpers->getAtomicCls('ck-icn')}" />
100 + <svg width="12" height="10" viewBox="0 0 12 10" class="%29$s" aria-hidden="true">
101 + <use data-ck-icn href="#%30$s-ck-svg" class="%31$s" />
87 102 </svg>
88 103 </span>
89 104 <span
90 - class="{$fieldHelpers->getAtomicCls('ct')} {$fieldHelpers->getCustomClasses('ct')}"
91 - {$fieldHelpers->getCustomAttributes('ct')}
105 + %32$s
106 + class="%33$s %34$s"
92 107 >
93 - {$fieldHelpers->renderHTMR($lbl)}
108 + %35$s
94 109 </span>
95 110 </label>
96 111 </div>
97 - </div>
98 -DECISIONBOXFIELD;
112 + </div>',
113 + $fieldHelpers->getCustomAttributes('cc'), // 1
114 + $fieldHelpers->getAtomicCls('cc'), // 2
115 + $fieldHelpers->getCustomClasses('cc'), // 3
116 + $labelId, // 4
117 + $ariaDescribedBy, // 5
118 + $fieldHelpers->getAtomicCls('cks'), // 6
119 + $rowID, // 7
120 + $fieldHelpers->getAtomicCls('ck-svgline'), // 8
121 + $fieldHelpers->getCustomAttributes('cw'), // 9
122 + $fieldHelpers->getAtomicCls('cw'), // 10
123 + $fieldHelpers->getCustomClasses('cw'), // 11
124 + $rowID, // 12
125 + $contentCount, // 13
126 + $fieldHelpers->getAtomicCls('ci'), // 14
127 + $disabled, // 15
128 + $readonly, // 16
129 + $req, // 17
130 + $ariaRequired, // 18
131 + $name, // 19
132 + $checked, // 20
133 + $value, // 21
134 + $fieldHelpers->getCustomAttributes('cl'), // 22
135 + $rowID, // 23
136 + $contentCount, // 24
137 + $fieldHelpers->getAtomicCls('cl'), // 25
138 + $fieldHelpers->getCustomAttributes('bx'), // 26
139 + $fieldHelpers->getAtomicCls('bx'), // 27
140 + $fieldHelpers->getAtomicCls('bx'), // 28
141 + $fieldHelpers->getAtomicCls('svgwrp'), // 29
142 + $rowID, // 30
143 + $fieldHelpers->getAtomicCls('ck-icn'), // 31
144 + $fieldHelpers->getCustomAttributes('ct'), // 32
145 + $fieldHelpers->getAtomicCls('ct'), // 33
146 + $fieldHelpers->getCustomClasses('ct'), // 34
147 + $fieldHelpers->kses_post($fieldHelpers->renderHTMR($lbl)) // 35
148 + );
99 149 }
100 150 }