Formal\Form::render PHP Method

render() public method

public render ( )
    function render()
    {
        $aHtml = [];
        $oMorpho = $this->getMorpho();
        $oMorpho->elements()->reset();
        foreach ($oMorpho->elements() as $oElement) {
            # Setting current prop value for element
            # Set on empty (just created) FormMorphology
            # And obtained from Model instance
            $oElement->setValue($this->modelInstance()->get($oElement->option("prop")));
            $aHtml[] = $oElement->render();
        }
        $elements = implode("\n", $aHtml);
        $sModelClass = $this->sModelClass;
        ######################################################
        # Displaying messages
        ######################################################
        if ($this->submitted()) {
            # There were errors detected during execute()
            # Error messages are displayed
            if (!empty($this->aErrors)) {
                $this->sDisplayMessage = "";
                $aMessages = [];
                reset($this->aErrors);
                foreach ($this->aErrors as $aError) {
                    if (trim($aError["message"]) === "") {
                        continue;
                    }
                    $aMessages[] = $aError["message"];
                }
                $this->sDisplayMessage = \Formal\Core\Message::error(implode("<br />", $aMessages), "Validation error");
            }
        }
        $sSubmittedFlagName = $this->submitSignatureName();
        if ($this->option("close") === true) {
            $sCloseUrl = $this->option("closeurl");
            $sCloseButton = '<a class="btn" href="' . $sCloseUrl . '">Close</a>';
        } else {
            $sCloseButton = "";
        }
        if (!isset($_SESSION['CSRF_TOKEN'])) {
            throw new \LogicException('A CSRF token must be set in the session. Try clearing your cookies and logging in again');
        }
        $csrfToken = htmlspecialchars($_SESSION['CSRF_TOKEN']);
        $sActionUrl = $this->option("action");
        $sHtml = <<<HTML
<form class="form-horizontal" action="{$sActionUrl}" method="post" enctype="multipart/formdata">
    <input type="hidden" name="{$sSubmittedFlagName}" value="1" />
    <input type="hidden" name="refreshed" value="0" />
    <input type="hidden" name="CSRF_TOKEN" value="{$csrfToken}" />
    <fieldset>
        <legend style="line-height: 40px;">{$this->sDisplayTitle}</legend>
        {$this->sDisplayMessage}
        {$elements}
        <div class="form-actions">
            <button type="submit" class="btn btn-primary">Save changes</button>
            {$sCloseButton}
        </div>
    </fieldset>
</form>
HTML;
        return $sHtml;
    }