/** * * @param array $element */ private function renderAsHtml(&$element) { switch ($element['type']) { default: $element['input'] = $this->renderHtmlTextarea($element); $element['label'] = $this->renderHtmlLabel($element); $element['html'] = $this->renderFinalHtml($element); break; case 'button': case 'submit': case 'reset': $element['input'] = $this->renderHtmlButton($element); $element['label'] = ""; $element['html'] = $this->renderFinalHtml($element); break; case 'radio': $element['input'] = $this->renderHtmlRadio($element); $element['label'] = ""; $element['html'] = $this->renderFinalHtml($element); break; case 'checkbox': $element['input'] = $this->renderHtmlCheckbox($element); $element['label'] = ""; $element['html'] = $this->renderFinalHtml($element); break; case 'static': $className = Component::parseComponentName($element['label_type']); if (class_exists($className) && method_exists($className, 'renderHtmlInput')) { $element['label'] = $element['label_label']; $in = $className::renderHtmlInput($element); $inVal = $className::addValidation($element); if (isset($in['html'])) { $element['input'] = $in['html']; } if (isset($in['css'])) { $element['css'] = $in['css']; } if (isset($in['extrahtml'])) { $element['extrahtml'] = $in['extrahtml']; } $element['label'] = $this->renderHtmlLabel($element); $element['html'] = $this->renderFinalHtml($element); if (isset($in['js'])) { $this->tpl->addCustomJs($in['js']); } if (isset($inVal['eventValidation'])) { if (isset($inVal['eventValidation']['extraJs'])) { $this->eventValidation['extraJs'] .= $inVal['eventValidation']['extraJs']; unset($inVal['eventValidation']['extraJs']); } $this->eventValidation['validators'] = array_merge($this->eventValidation['validators'], $inVal['eventValidation']); } if (isset($inVal['submitValidation'])) { $this->submitValidation .= $inVal['submitValidation']; } } break; } }