Jak jednoduse na dva hodně podobné formuláře?

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

Jak nejlépe vyřešit to, když mám dva formuláře, které se liší v podstatě jen tím, že jeden má asi o pět inputů více. Samozřejmě mám tu společnou část udělanou jako container. Ale to řeší jen nějaké sestavení a ne vykreslení. Jde nějak udělat, abych měl ten Container i se šablonou. Napadá mě jedině udělat to nějak jako komponentu, ale půjde to pak vzíát a vykreslit nějakým stylem jako

{form form}
{control container}
{/form}

předpokládám, že nikoli. Jak na to? Nebo prostě musím, copy-pastnout tu šablonu a jen tam dosadit ty změny?

voda
Člen | 561
+
0
-

Vyřešil bych to továrnou, která bude podle parametru některé prvky přidávat/nepřidávat. Pokud potřebuješ i vlastní vykreslení, tak formulář obalit do komponenty. Je to dobře popsané na https://doc.nette.org/…s/form-reuse, jen tam ještě přidáš parametr na typ.

Jiří Nápravník
Člen | 710
+
0
-

Formulare jako komponenty používám… Dát tam typ a podle otho to sestavovat, to je sice řešení, ale ten formulář, je hodně dlouhý a podle mě jej to akorát zaplevelí. Já bych zkrátka potřeboval, zda jde nějak udělat container jako komponentu. Že bych zkrátka napsal Container, ten měl šablonu a někam jej vložil do formuláře.

voda
Člen | 561
+
0
-

Aby měl sám container vlastní vykreslení si myslím že nejde. Můžeš to vyřešit další komponentou, která se o vykreslení postará nebo mít někde nadefinován block pomocí {define} a pak použít {include container => $form['container']}.