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/FormViewHelper.php +132 -61 2.10.13.3.1 View file →
@@ -39,27 +39,36 @@
39 39 {
40 40 if (empty($source)) {
41 41 return '';
42 42 }
43 - return <<<ICON
44 -<img
45 - class="{$this->_form->getAtomicCls($classElement)}"
46 - src="{$source}"
47 - alt=""
48 -/>
49 -ICON;
43 + return sprintf(
44 + '<img
45 + class="%1$s _frm-b-stp-icn"
46 + src="%2$s"
47 + alt=""
48 + aria-hidden="true"
49 + />
50 + ',
51 + $this->_form->getAtomicCls($classElement),
52 + $source
53 + );
50 54 }
51 55
52 56 private function getHeaderLabelMarkup($lbl, $preIcn, $sufIcn, $uniqClass)
53 57 {
54 58 $formID = $this->getFormId();
55 - return <<<HEADERLABEL
56 - <span class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-{$uniqClass}")}'>
57 - {$this->getIconMarkup($preIcn, "_frm-b{$formID}-stp-{$uniqClass}-pre-i")}
58 - {$this->filterHtml($lbl)}
59 - {$this->getIconMarkup($sufIcn, "_frm-b{$formID}-stp-{$uniqClass}-suf-i")}
60 - </span>
61 -HEADERLABEL;
59 + return sprintf(
60 + '<span class="%1$s _frm-b-stp-hdr-%2$s">
61 + %3$s
62 + %4$s
63 + %5$s
64 + </span>',
65 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-{$uniqClass}"),
66 + $uniqClass,
67 + $this->getIconMarkup($preIcn, "_frm-b{$formID}-stp-{$uniqClass}-pre-i"),
68 + $this->filterHtml($lbl),
69 + $this->getIconMarkup($sufIcn, "_frm-b{$formID}-stp-{$uniqClass}-suf-i")
70 + );
62 71 }
63 72
64 73 private function getStepButton($btnSettings)
65 74 {
@@ -71,19 +80,27 @@
71 80 $sufIcn = isset($btnSettings->sufIcn) ? $btnSettings->sufIcn : null;
72 81 $preIcnMrkp = $this->getIconMarkup($preIcn, "_frm-b{$formID}-{$key}-pre-i");
73 82 $sufIcnMrkp = $this->getIconMarkup($sufIcn, "_frm-b{$formID}-{$key}-suf-i");
74 83 $btnSpinner = '<span class="bf-spinner d-none"></span>';
75 - return <<<BUTTON
76 - <button
77 - class="{$this->_form->getAtomicCls("_frm-b{$formID}-{$key}")} {$key}"
78 - type="{$btnTyp}"
84 + return sprintf(
85 + '<button
86 + class="%1$s %2$s"
87 + name="%2$s"
88 + type="%3$s"
79 89 >
80 - {$preIcnMrkp}
81 - {$this->filterHtml($txt)}
82 - {$sufIcnMrkp}
83 - {$btnSpinner}
84 - </button>
85 -BUTTON;
90 + %4$s
91 + %5$s
92 + %6$s
93 + %7$s
94 + </button>',
95 + $this->_form->getAtomicCls("_frm-b{$formID}-{$key}"),
96 + $key,
97 + $btnTyp,
98 + $preIcnMrkp,
99 + $this->filterHtml($txt),
100 + $sufIcnMrkp,
101 + $btnSpinner
102 + );
86 103 }
87 104
88 105 public function getStepHeaderHtml()
89 106 {
@@ -94,12 +111,19 @@
94 111 }
95 112
96 113 $formID = $this->_form->getFormID();
97 114 $layout = $this->_layout;
98 - $stepHeaderHtml = <<<HEADERHTML
99 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-cntnr")}'>
100 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-wrpr")}'>
101 -HEADERHTML;
115 + $totalSteps = is_array($layout) ? count($layout) : 1;
116 + $stepHeaderHtml = sprintf(
117 + '<div class="%1$s _frm-b-stp-hdr-cntnr">
118 + <div
119 + class="%2$s _frm-b-stp-hdr-wrpr"
120 + role="tablist"
121 + aria-label="Form steps navigation"
122 + >',
123 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-cntnr"),
124 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-wrpr")
125 + );
102 126
103 127 $showHeadarIcon = isset($multiStepSettings->headerIcon->show) ? $multiStepSettings->headerIcon->show : false;
104 128 $showLbl = isset($multiStepSettings->showLbl) ? $multiStepSettings->showLbl : false;
105 129 $showSubtitle = isset($multiStepSettings->showSubtitle) ? $multiStepSettings->showSubtitle : false;
@@ -122,15 +146,18 @@
122 146 } else {
123 147 $stepIcon = "<span class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-num")}'>{$step}</span>";
124 148 }
125 149 if ($showHeadarIcon) {
126 - $iconWrapper = <<<ICONWRPR
127 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-icn-wrp")}'>
128 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-icn-cntn")}'>
129 - {$stepIcon}
150 + $iconWrapper = sprintf(
151 + '<div class="%1$s _frm-b-stp-hdr-icn-wrp">
152 + <div class="%2$s _frm-b-stp-icn-cntn">
153 + %3$s
130 154 </div>
131 - </div>
132 -ICONWRPR;
155 + </div>',
156 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-icn-wrp"),
157 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-icn-cntn"),
158 + $stepIcon
159 + );
133 160 }
134 161 $showStepLbl = $showLbl && isset($settings->showLbl) ? $settings->showLbl : false;
135 162 $showStepSubtitle = $showSubtitle && isset($settings->showSubtitle) ? $settings->showSubtitle : false;
136 163 $lblPreIcn = isset($settings->lblPreIcn) ? $settings->lblPreIcn : null;
@@ -141,24 +168,49 @@
141 168 $stepSubtitleMarkup = $showStepSubtitle ? $this->getHeaderLabelMarkup($settings->subtitle, $subTlePreIcn, $subTleSufIcn, 'sub-titl') : '';
142 169
143 170 $activeClass = 0 === $key ? 'active' : '';
144 171 $disableClass = (0 !== $key && $stepValidation) ? 'disabled' : '';
145 - $stepHeaderHtml .= <<<HEADERHTML
146 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr")} {$activeClass} {$disableClass}' data-step='{$step}'>
147 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-cntnt")}'>
148 - {$iconWrapper}
149 - <span class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-titl-wrpr")}'>
150 - {$stepLabelMarkup}
151 - {$stepSubtitleMarkup}
172 + $ariaSelected = 0 === $key ? 'true' : 'false';
173 + $ariaDisabled = (0 !== $key && $stepValidation) ? 'aria-disabled="true"' : '';
174 + $tabIndex = 0 === $key ? '0' : '-1';
175 + $stepHeaderHtml .= sprintf(
176 + '
177 + <div
178 + class="%1$s _frm-b-stp-hdr %2$s %3$s"
179 + data-step="%4$s"
180 + role="tab"
181 + aria-selected="%5$s"
182 + aria-controls="step-%6$s-%4$s-panel"
183 + id="step-%6$s-%4$s-tab"
184 + tabindex="%7$s"
185 + %8$s
186 + >
187 + <div class="%9$s _frm-b-stp-hdr-cntnt">
188 + %10$s
189 + <span class="%11$s _frm-b-stp-hdr-titl-wrpr">
190 + %12$s
191 + %13$s
152 192 </span>
153 193 </div>
154 - </div>
155 -HEADERHTML;
194 + </div>',
195 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr"), // 1
196 + $activeClass, // 2
197 + $disableClass, // 3
198 + $step, // 4
199 + $ariaSelected, // 5
200 + $formID, // 6
201 + $tabIndex, // 7
202 + $ariaDisabled, // 8
203 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-cntnt"), // 9
204 + $iconWrapper, // 10
205 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-hdr-titl-wrpr"), // 11
206 + $stepLabelMarkup, // 12
207 + $stepSubtitleMarkup // 13
208 + );
156 209 }
157 - $stepHeaderHtml .= <<<HEADERHTML
210 + $stepHeaderHtml .= '
158 211 </div>
159 - </div>
160 -HEADERHTML;
212 + </div>';
161 213 return $stepHeaderHtml;
162 214 }
163 215
164 216 public function getProgressBarMarkup()
@@ -169,19 +221,34 @@
169 221 return '';
170 222 }
171 223 $precentage = (isset($progressBarSettings->showPercentage) && $progressBarSettings->showPercentage) ? '0%' : '';
172 224 $formID = $this->getFormId();
173 - return <<<PROGRESSHTML
174 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-progress-wrpr")}'>
175 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-progress")}'>
176 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-progress-bar")}'>
177 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-progress-fill")}' style="width: 0%;">
178 - {$precentage}
225 + $totalSteps = is_array($this->_layout) ? count($this->_layout) : 1;
226 + return sprintf(
227 + '
228 + <div class="%1$s _frm-b-stp-progress-wrpr">
229 + <div class="%2$s _frm-b-stp-progress">
230 + <div
231 + class="%3$s _frm-b-stp-progress-bar"
232 + role="progressbar"
233 + aria-valuenow="0"
234 + aria-valuemin="0"
235 + aria-valuemax="100"
236 + aria-label="Form completion progress: Step 1 of %4$s"
237 + >
238 + <div class="%5$s _frm-b-stp-progress-fill" style="width: 0%%;">
239 + %6$s
179 240 </div>
180 241 </div>
181 242 </div>
182 - </div>
183 - PROGRESSHTML;
243 + </div>',
244 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-progress-wrpr"),
245 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-progress"),
246 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-progress-bar"),
247 + $totalSteps,
248 + $this->_form->getAtomicCls("_frm-b{$formID}-progress-fill"),
249 + $precentage
250 + );
184 251 }
185 252
186 253 public function getStepButtonMarkup()
187 254 {
@@ -190,14 +257,18 @@
190 257 if (is_null($btnSettings) || (empty($btnSettings->show))) {
191 258 return '';
192 259 }
193 260 $formID = $this->getFormId();
194 - return <<<BUTTONWRPR
195 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-btn-wrpr")}'>
196 - <div class='{$this->_form->getAtomicCls("_frm-b{$formID}-stp-btn-cntnt")}'>
197 - {$this->getStepButton($btnSettings->prevBtn)}
198 - {$this->getStepButton($btnSettings->nextBtn)}
261 + return sprintf(
262 + '<div class="%1$s">
263 + <div class="%2$s">
264 + %3$s
265 + %4$s
199 266 </div>
200 - </div>
201 -BUTTONWRPR;
267 + </div>',
268 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-btn-wrpr"),
269 + $this->_form->getAtomicCls("_frm-b{$formID}-stp-btn-cntnt"),
270 + $this->getStepButton($btnSettings->prevBtn),
271 + $this->getStepButton($btnSettings->nextBtn)
272 + );
202 273 }
203 274 }