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

renderPairMulti() public method

Renders single visual row of multiple controls.
public renderPairMulti ( array $controls ) : string
$controls array
return string
    public function renderPairMulti(array $controls)
    {
        $s = [];
        foreach ($controls as $control) {
            if (!$control instanceof Nette\Forms\IControl) {
                throw new Nette\InvalidArgumentException('Argument must be array of Nette\\Forms\\IControl instances.');
            }
            $description = $control->getOption('description');
            if ($description instanceof IHtmlString) {
                $description = ' ' . $description;
            } elseif (is_string($description)) {
                if ($control instanceof Nette\Forms\Controls\BaseControl) {
                    $description = $control->translate($description);
                }
                $description = ' ' . $this->getWrapper('control description')->setText($description);
            } else {
                $description = '';
            }
            $control->setOption('rendered', TRUE);
            $el = $control->getControl();
            if ($el instanceof Html && $el->getName() === 'input') {
                $el->class($this->getValue("control .{$el->type}"), TRUE);
            }
            $s[] = $el . $description;
        }
        $pair = $this->getWrapper('pair container');
        $pair->addHtml($this->renderLabel($control));
        $pair->addHtml($this->getWrapper('control container')->setHtml(implode(' ', $s)));
        return $pair->render(0);
    }

Usage Example

 public function renderPairMulti(array $controls)
 {
     $rendered = parent::renderPairMulti($controls);
     $class = $this->getValue('control .buttons');
     $firstReplace = Nette\Utils\Strings::replace($rendered, '~(form-group">\\s*<div) class="~', "\\0{$class} ");
     return Nette\Utils\Strings::replace($firstReplace, '~(form-group">\\s*<div)>~', "\\1 class=\"{$class}\">");
 }
All Usage Examples Of Nette\Forms\Rendering\DefaultFormRenderer::renderPairMulti