vykreslení formulařu pomocí bootsrap
- cvit84
- Člen | 43
Zdravím, používám běžné vykreslení formulaře v presenter přes use
Nette\Application\UI\Form; ale potřeboval bych ho nastylovat podle
bootstrapových pravidel. Snažil jsem se to nastylovat přes
$form->getElementPrototype()->class=‚form-horizontal‘;
a ->setAttribute(‚class‘, ‚form-control‘) ale nepotřebuji stylovat
jenom inputy ale i labely. Může mi někdo poradit. Četl jsem i tohle: https://forum.nette.org/…-bootstrap-3
ale nejsem z toho moc chytrý.
Díky za pomoc.
- Pavel Kravčík
- Člen | 1196
Vykreslujeme ručně kvůli barvám, ikonkám, více inputům na jednom řádku atd. Nejlepší varianta.
- newPOPE
- Člen | 648
@cvit84 skus https://github.com/…otstrap-form je to simple nic nenastavujes. Mozno ti to bude stacit
- Jakub.Man
- Člen | 11
Nastav si renderer (Více info tady https://doc.nette.org/cs/forms#…)
Tím si můžeš nastavit jak se budou vykreslovat prvky formuláře.
Výchozí nastavení rendereru pro bootstrap vypadá nějak takto
<?php
$form = new Form;
$renderer = $form->getRenderer();
$renderer->wrappers['controls']['container'] = NULL;
$renderer->wrappers['pair']['container'] = 'div class=form-group';
$renderer->wrappers['pair']['.error'] = 'has-error';
$renderer->wrappers['control']['container'] = 'div class=col-sm-9';
$renderer->wrappers['label']['container'] = 'div class="col-sm-3 control-label"';
$renderer->wrappers['control']['description'] = 'span class=help-block';
$renderer->wrappers['control']['errorcontainer'] = 'span class=help-block';
?>
Potom jednotlivým prvkům formuláře přidáš přes ->setAttribute(‚class‘, ‚nazev-tridy‘) třídy bootstrapu (tlačítka, inputy …) a formulář se ti vykreslí v bootstrapu…
Kdybys chtěl úplně jednoduché řešení, můžeš použít prostě
<?php
$renderer = $form->getRenderer();
$renderer->wrappers['controls']['container'] = 'div';
$renderer->wrappers['pair']['container'] = 'div';
$renderer->wrappers['label']['container'] = null;
$renderer->wrappers['control']['container'] = 'div';
?>
a v šabloně použít něco jako
<div class=„col-sm-12 col-md-6“>
{control nazevFormulare}
</div>
- Landsman
- Člen | 152
@cvit84 Na jednoduché formuláře: https://componette.org/…tstrap-form/
$form->setRenderer(new Bootstrap...)