_form = $form; $this->_formContents = $form_contents; $this->_formInfo = isset($form_contents->formInfo) ? $form_contents->formInfo : ''; $this->_layout = isset($form_contents->layout) ? $form_contents->layout : ''; } private function getFormInfoProperty($propertyName) { return isset($this->_formInfo->{$propertyName}) ? $this->_formInfo->{$propertyName} : null; } private function getFormId() { return $this->_form->getFormID(); } public function filterHtml($str) { return wp_kses_post(str_replace('$_bf_$', '\\', $str)); } private function getIconMarkup($source, $classElement) { if (empty($source)) { return ''; } return << ICON; } private function getHeaderLabelMarkup($lbl, $preIcn, $sufIcn, $uniqClass) { $formID = $this->getFormId(); return << {$this->getIconMarkup($preIcn, "_frm-b{$formID}-stp-{$uniqClass}-pre-i")} {$this->filterHtml($lbl)} {$this->getIconMarkup($sufIcn, "_frm-b{$formID}-stp-{$uniqClass}-suf-i")} HEADERLABEL; } private function getStepButton($btnSettings) { $key = $btnSettings->key; $txt = $btnSettings->txt; $btnTyp = $btnSettings->typ; $formID = $this->getFormId(); $preIcn = isset($btnSettings->preIcn) ? $btnSettings->preIcn : null; $sufIcn = isset($btnSettings->sufIcn) ? $btnSettings->sufIcn : null; $preIcnMrkp = $this->getIconMarkup($preIcn, "_frm-b{$formID}-{$key}-pre-i"); $sufIcnMrkp = $this->getIconMarkup($sufIcn, "_frm-b{$formID}-{$key}-suf-i"); $btnSpinner = ''; return << BUTTON; } public function getStepHeaderHtml() { $multiStepSettings = $this->getFormInfoProperty('multiStepSettings'); if (isset($multiStepSettings->showStepHeader) && !$multiStepSettings->showStepHeader) { return ''; } $formID = $this->_form->getFormID(); $layout = $this->_layout; $stepHeaderHtml = <<
HEADERHTML; $showHeadarIcon = isset($multiStepSettings->headerIcon->show) ? $multiStepSettings->headerIcon->show : false; $showLbl = isset($multiStepSettings->showLbl) ? $multiStepSettings->showLbl : false; $showSubtitle = isset($multiStepSettings->showSubtitle) ? $multiStepSettings->showSubtitle : false; $iconType = isset($multiStepSettings->headerIcon->iconType) ? $multiStepSettings->headerIcon->iconType : 'number'; $stepValidation = isset($multiStepSettings->validateOnStepChange) ? $multiStepSettings->validateOnStepChange : false; foreach ($layout as $key => $lay) { $step = $key + 1; $settings = isset($lay->settings) ? $lay->settings : null; if (empty($settings)) { continue; } $iconWrapper = ''; $stepIcon = ''; if ('icon' === $iconType) { $stepIcon = "_form->getAtomicCls("_frm-b{$formID}-stp-icn")} alt='Step Icon' />"; } else { $stepIcon = "{$step}"; } if ($showHeadarIcon) { $iconWrapper = <<
{$stepIcon}
ICONWRPR; } $showStepLbl = $showLbl && isset($settings->showLbl) ? $settings->showLbl : false; $showStepSubtitle = $showSubtitle && isset($settings->showSubtitle) ? $settings->showSubtitle : false; $lblPreIcn = isset($settings->lblPreIcn) ? $settings->lblPreIcn : null; $lblSufIcn = isset($settings->lblSufIcn) ? $settings->lblSufIcn : null; $subTlePreIcn = isset($settings->subTlePreIcn) ? $settings->subTlePreIcn : null; $subTleSufIcn = isset($settings->subTleSufIcn) ? $settings->subTleSufIcn : null; $stepLabelMarkup = $showStepLbl ? $this->getHeaderLabelMarkup($settings->lbl, $lblPreIcn, $lblSufIcn, 'lbl') : ''; $stepSubtitleMarkup = $showStepSubtitle ? $this->getHeaderLabelMarkup($settings->subtitle, $subTlePreIcn, $subTleSufIcn, 'sub-titl') : ''; $activeClass = 0 === $key ? 'active' : ''; $disableClass = (0 !== $key && $stepValidation) ? 'disabled' : ''; $stepHeaderHtml .= <<
{$iconWrapper} {$stepLabelMarkup} {$stepSubtitleMarkup}
HEADERHTML; } $stepHeaderHtml .= << HEADERHTML; return $stepHeaderHtml; } public function getProgressBarMarkup() { $multiStepSettings = $this->getFormInfoProperty('multiStepSettings'); $progressBarSettings = isset($multiStepSettings->progressSettings) ? $multiStepSettings->progressSettings : null; if (isset($progressBarSettings->show) && !$progressBarSettings->show) { return ''; } $precentage = (isset($progressBarSettings->showPercentage) && $progressBarSettings->showPercentage) ? '0%' : ''; $formID = $this->getFormId(); return <<
{$precentage}
PROGRESSHTML; } public function getStepButtonMarkup() { $multiStepSettings = $this->getFormInfoProperty('multiStepSettings'); $btnSettings = isset($multiStepSettings->btnSettings) ? $multiStepSettings->btnSettings : null; if (is_null($btnSettings) || (empty($btnSettings->show))) { return ''; } $formID = $this->getFormId(); return <<
{$this->getStepButton($btnSettings->prevBtn)} {$this->getStepButton($btnSettings->nextBtn)}
BUTTONWRPR; } }