Renderer a vkládání class do obalovacího divu
- Rudolf247
- Člen | 38
Zdravím, jsem v nette úplný nováček a prolezl jsem snad všechny
diskuse, ale nemohu najít odpověď na můj problém.
Používám Bootstrap renderer konkrétně „Bs3FormRenderer“ vše bez
problému chodí, ale potřebuji výsledný formulář trošku „nastylovat“
což by nebyl takový problém, ale spíše mi jde o vložení class do jednoho
konkrétního divu. Zde je komponenta na vytvoření formuláře
i s renderem:
protected function createComponentComplexTaskForm()
{
$form = new Form($this, 'complexTaskForm');
$form->setRenderer(new Bs3FormRenderer());
$renderer = $form->getRenderer();
$form->addGroup("Zadání požadavku")
->setOption('container','fieldset "class=col-md-4');
$form->addText('subject', 'Předmět')
->setRequired('Vyplňte prosím toto pole');
$form->addMultiSelect('involved_employee', 'Zapojení zaměstnanci')
->setAttribute('class', 'employees')
->setRequired('Vyplňte prosím toto pole');
$form->addMultiSelect('involved_department', 'Zapojené oddělení')
->setAttribute('class', 'departments')
->setRequired('Vyplňte prosím toto pole');
$form->addRadioList('priority', 'Priorita', [
'nízká', 'střední', 'vysoká',])
->getSeparatorPrototype()->setName(null);
$form->addText('price', 'Cena úkonu')
->setAttribute('placeholder', '1000 Kč');
$form->addTextArea('task', 'Zadání')
->setAttribute('placeholder', '15000 znaků maximum');
$form->addGroup("Časový plán požadavku")
->setOption('container','fieldset "class=col-md-4');
$form->addText('fromSolution', "Datum řešení")
->setAttribute('id', 'fromSolution');
$form->addText('toSolution', "Datum řešení")
->setAttribute('id', 'toSolution');
$form->addSubmit('next', 'Další')
->setAttribute('class', 'pull-right');
$renderer->wrappers['container']['fieldset'] = 'div class=col-md-4';
}
Zde je výsledek (vložím sem jen část kódu se kterou potřebuji pracovat):
<fieldset class="col-md-4">
<legend>Časový plán požadavku</legend>
<div class="form-group">
<div class="col-sm-3 control-label"><label for="fromSolution">Datum řešení</label></div>
<div class="col-sm-9"><input type="text" name="fromSolution" id="fromSolution" class="form-control text"></div>
</div>
<div class="form-group">
<div class="col-sm-3 control-label"><label for="toSolution">Datum řešení</label></div>
<div class="col-sm-9"><input type="text" name="toSolution" id="toSolution" class="form-control text"></div>
</div>
</fieldset>
Potřeboval bych aby <div class=„form-group“> měla ještě class „col-md-6“, ale jen u těchto dvou divu takže $renderer->wrappers[‚pair‘][‚container‘] = „form-group col-md-6“; mi moc nepomůže.
Poradí mi s tím někdo? Už jsem zkusil snad všechno… Děkuji
- Šaman
- Člen | 2666
V tomhle případě doporučuji ruční renderování. Renderer je fajn, dokud není potřeba upravovat vzhled konkrétních formulářů.