rozdíl ve výpisu formuláře pomocí control a form

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Marsme
Člen | 75
+
0
-

Jaký je rozdíl mezi výpisem formuláře v šabloně pomocí {control formName} a {form formName}…

Pokud totiž vypíšu formulář pomocí {control formName} nemusím už nic řešit a formulář se vypíše.
Pokud ale vypíšu formulář pomocí {form formName} {/form} musel bych jednotlivé prvky vypsat ručně nebo pomocí <?php echo $form;?>… tímhle způsobem se ovšem ve výsledku v zdrojovém kódu 2× vypíše tag <form>

Ascaria
Člen | 187
+
0
-

Pravděpodobně jen ten, že jak jsi už zjistil, tak {control} ti vykreslí form konvenčním rendererem, a {form} tě nechá vykreslit form ručně a tedy do libovolného designu.

{control form}

{form form}
<div>{label jmeno /}<p><span>{input jmeno}</span></p>
<p>{input heslo}</p>{label heslo /}</div>
<h2>{input ok}</h2>
{/form}

Editoval Ascaria (14. 5. 2012 16:37)

jtousek
Člen | 951
+
0
-

{control formName} vyrenderuje formulář pomocí přednastaveného rendereru, můžeš sice pomocí prototype přiřadit jednotlivým elementům třídy, ale nemůžeš je přeházet abys zobrazil např. dva inputy na jednom řádku.

{form formName} slouží k manuálnímu vykreslování pokud potřebuješ nějaké složitější uspořádání prvků.

Marsme
Člen | 75
+
0
-

Takže v zásadě pokud nepotřebuji měnit vzhled a seskupení formuláře je výhodnější a lepší použit control jinak použiji form.

Jan Endel
Člen | 1016
+
0
-

V podstatě sis odpověděl sám, při použití {control formName} se vykreslí celý formulář a v šabloně ho není možné upravovat naopak přes makro {form formName} si můžeš vykreslit všechny prvky tak jak ty potřebuješ.