FOF30\Render\AkeebaStrapper::renderFormRaw PHP Метод

renderFormRaw() публичный Метод

Renders a raw Form and returns the corresponding HTML
public renderFormRaw ( Form &$form, DataModel $model, string $formType = null ) : string
$form FOF30\Form\Form
$model FOF30\Model\DataModel The model providing our data
$formType string The form type e.g. 'edit' or 'read'
Результат string The HTML rendering of the form
    public function renderFormRaw(Form &$form, DataModel $model, $formType = null)
    {
        $html = '';
        $tabHtml = array();
        // Do we have a tabbed form?
        $isTabbed = $form->getAttribute('tabbed', '0');
        $isTabbed = in_array($isTabbed, array('true', 'yes', 'on', '1'));
        foreach ($form->getFieldsets() as $fieldset) {
            if ($isTabbed && $this->isTabFieldset($fieldset)) {
                continue;
            } elseif ($isTabbed && isset($fieldset->innertab)) {
                $inTab = $fieldset->innertab;
            } else {
                $inTab = '__outer';
            }
            $tabHtml[$inTab][] = $this->renderFieldset($fieldset, $form, $model, $formType, false);
        }
        // If the form is tabbed, render the tabs bars
        if ($isTabbed) {
            $html .= '<ul class="nav nav-tabs">' . "\n";
            foreach ($form->getFieldsets() as $fieldset) {
                // Only create tabs for tab fieldsets
                $isTabbedFieldset = $this->isTabFieldset($fieldset);
                if (!$isTabbedFieldset) {
                    continue;
                }
                // Only create tabs if we do have a label
                if (!isset($fieldset->label) || empty($fieldset->label)) {
                    continue;
                }
                $label = \JText::_($fieldset->label);
                $name = $fieldset->name;
                $liClass = $isTabbedFieldset == 2 ? 'class="active"' : '';
                $html .= "<li {$liClass}><a href=\"#{$name}\" data-toggle=\"tab\">{$label}</a></li>" . "\n";
            }
            $html .= '</ul>' . "\n\n<div class=\"tab-content\">" . "\n";
            foreach ($form->getFieldsets() as $fieldset) {
                if (!$this->isTabFieldset($fieldset)) {
                    continue;
                }
                $html .= $this->renderFieldset($fieldset, $form, $model, $formType, false, $tabHtml);
            }
            $html .= "</div>\n";
        }
        if (isset($tabHtml['__outer'])) {
            $html .= implode('', $tabHtml['__outer']);
        }
        return $html;
    }