Renderer formuláře – odlišná CSS pro component se submit tlačíky
- jspetrak
- Člen | 15
Mám formuláře jako zvláštní třídu dědící z \Nette\Application\UI\Form, v konstruktoru přepisuju renderer, aby se zobrazovaly s použitím CSS frameworku Bootstrap od Twitteru.
Následující kód řeší většinu změn:
$renderer = $this->getRenderer();
$renderer->wrappers['controls']['container'] = NULL;
$renderer->wrappers['label']['container'] = NULL;
$renderer->wrappers['pair']['container'] = 'div class="control-group"';
$renderer->wrappers['control']['container'] = 'div class="controls"';
$this->getElementPrototype()->class('form-horizontal');
Potřebuju ale odlišnou CSS třídu pro container obsahující submit tlačítka formuláře. Ani v kódu, ani ve fóru jsem nenašel, že by fungovalo něco jako
$renderer->wrappers['pair.submit']['container'] = 'div class="action-forms"';
Jde to nějak jinak vyřešit?
Editoval jspetrak (4. 2. 2012 15:38)
- pawouk
- Člen | 172
třídu formu lze jedině přes $form->getElementPrototype jak je psano v dotazu, přes wrapper to defaultRenderer neumí, nicméně pokud si píšeš vlastní renderer tak si to můžeš vyřešit v metodě renderBegin(), v label to bohužel taky defaultRenderer neumí, ale umí obalit label jiným elementem, což je skoro to samé, nenapadá mě kdy by to mohlo vadit. Obalit label elementem můžeš přes $wrapper[‚lable‘][‚container‘] = ‚span class=„labeltrida“‘