Twitter Bootstrap vykreslování formuláře
- TomasHuttner
- Člen | 66
Ahoj, mám v presenteru vytvořenej formulář s použitím BootstrapRenderer. Když vykresíl do šablony celý formulář pomocí
{control form}
tak vše funguje ale když ho vypíšu
{form form}
{input name}
{input send}
{/form form}
tak se mi formulář nevykresluje pomocí bootstrapu. Nevíte někdo co s tím?
- Šaman
- Člen | 2659
Myslím, že je to tím, že když zavoláš {control form}
, tak
se to přeloží na kód $form->render()
a formulář render
realizuje pomocí rendereru.
Pokud voláš makra form, input, label, …
tak se žádný
renderer nevolá, vykreslí se to pomocí těchto maker a form
jen
říká jaká data se těm makrům předají na vstupu.
- TomasHuttner
- Člen | 66
Když použiju klasickej bootstrap tak to funguje ale když použiju nějakej jinej styl ze stránky http://bootswatch.com tak to nefunguje.
- MartinitCZ
- Člen | 580
@**TomasHuttner**: Je to psané pro výchozí bootstrap. Pkud používáš jiný, tak si to musíš upravit. + Bootstrap 3, tímto addonem, není podporován.
- David Matějka
- Moderator | 6445
@martinit: na bootswatch je bootstrap pouze nastylovanej, je to zcela
kompatibilni s twb
@TomasHuttner: a pouzivas z bootswatch styly pro twb 2?
- Mesiah
- Člen | 240
David na blogu php fashion píše o tom, jak použít Bootstrap2 i 3 v Nette 2.1 – nevýhoda je, že je potřeba renderer upravovat u každého formuláře; možná by to šlo i nějak zautomatizovat, ale nenapadá mě jak…
- uestla
- Backer | 799
Mesiah napsal(a):
… možná by to šlo i nějak zautomatizovat, ale nenapadá mě jak…
Třeba použít formulář jako komponentu a ve společném předkovi
renderer nastavovat. Osobně na to mám vlastní metodu komponenty, která podle
vzoru v Nette examples iteruje všemi prvky formuláře (protože ty nejsou
ještě v momentě vytvoření známy) a dané CSS třídy
navěšuje.
@hrachovo řešení níže je daleko lepšejší ;-)
Editoval uestla (8. 1. 2014 19:33)
- sKopheK
- Člen | 207
Taky to tak mám, ale teď s přechodem na 2.1 se mi rozbilo vlastní makro
pro vykreslování labelu, které jsem byl nucen napsat, protože Nette při
ručním renderování zapomene přidat atribut class="required"
(viz. https://forum.nette.org/…oveho-zapisu),.
a ta nová zpětně kompatibilní notace
{label nazev:} {input nazev:} ... {/label}
mi vůbec nevypíše
text labelu. Navíc, co si budeme povídat, mít všechny prvky formuláře na
jediném místě je pěkně DRY :).
Takže si asi napíšu vlastní makro na výpis formuláře, „jak to mám rád“ – jen se bojím, že s příchodem nové verze se zase něco změní a makro budu muset složitě přepisovat.
- amik
- Člen | 118
S kolegy jsme přetvořili oblíbený modul od @FilipProcházka pro
vykreslování formulářů v BS2 pro bootstrap 3 se zachováním všech
předností, jako např. makro {pair}, pokud máte zájem, najdete ho
v composeru jako instante/bootstrap-3-renderer
nebo na bitbucketu
https://bitbucket.org/…renderer.git . Díky
@FilipProcházka za skvělý základ a doufám, že se upgrade pro
bootstrap 3 bude hodit :)