Nette\Forms\Rendering\DefaultFormRenderer::renderBody PHP Method

renderBody() public method

Renders form body.
public renderBody ( ) : string
return string
    public function renderBody()
    {
        $s = $remains = '';
        $defaultContainer = $this->getWrapper('group container');
        $translator = $this->form->getTranslator();
        foreach ($this->form->getGroups() as $group) {
            if (!$group->getControls() || !$group->getOption('visual')) {
                continue;
            }
            $container = $group->getOption('container', $defaultContainer);
            $container = $container instanceof Html ? clone $container : Html::el($container);
            $id = $group->getOption('id');
            if ($id) {
                $container->id = $id;
            }
            $s .= "\n" . $container->startTag();
            $text = $group->getOption('label');
            if ($text instanceof IHtmlString) {
                $s .= $this->getWrapper('group label')->addHtml($text);
            } elseif (is_string($text)) {
                if ($translator !== NULL) {
                    $text = $translator->translate($text);
                }
                $s .= "\n" . $this->getWrapper('group label')->setText($text) . "\n";
            }
            $text = $group->getOption('description');
            if ($text instanceof IHtmlString) {
                $s .= $text;
            } elseif (is_string($text)) {
                if ($translator !== NULL) {
                    $text = $translator->translate($text);
                }
                $s .= $this->getWrapper('group description')->setText($text) . "\n";
            }
            $s .= $this->renderControls($group);
            $remains = $container->endTag() . "\n" . $remains;
            if (!$group->getOption('embedNext')) {
                $s .= $remains;
                $remains = '';
            }
        }
        $s .= $remains . $this->renderControls($this->form);
        $container = $this->getWrapper('form container');
        $container->setHtml($s);
        return $container->render(0);
    }

Usage Example

Example #1
0
 public function renderBody()
 {
     $this->controlsInit();
     return parent::renderBody();
 }