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 | 2668
 
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 :)