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);
}
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}\">"); }