public function renderForm(fxForm &$f) { $this->rendering_element_set = false; $o = array(); $atts = $this->renderAtts($f->_getInfoExcept('name')); $o[] = "<form action=\"{$f->_action}\" method=\"{$f->_method}\"{$atts}>"; $o[] = "<input type=\"hidden\" name=\"_form_id\" value=\"{$f->_form_id}\" />"; $o[] = "<input type=\"hidden\" name=\"_form_token\" value=\"{$f->_form_token}\" />"; if ($f->hasErrors()) { // Use a form errors formatting callback to override basic message. $formErrorsCB = $this->errorBlockFormatter; if (is_callable($formErrorsCB)) { $msg = $formErrorsCB($f); if (is_string($msg) && '' !== $msg) { $o[] = $msg; } } else { $o[] = '<div class="form-errors"><p>There was a problem with your form. Please correct any errors and try again.</p></div>'; } } foreach ($f->getElements() as $child) { if (is_string($child)) { $o[] = $child; } else { $o[] = $child->renderUsing($this, $f, $f->id); } } $o[] = "</form>"; $o = implode("\n", $o); if (true == $f->_show_html) { fCore::expose($o); } return $o; }