Rekurzivní výpis s formulářem

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

Zdravím,

řeším teď dosti zapeklitý problém. Mám jednoduchý strom, který vyčítám z databáze ve formě pole. Toto pole potom projdu v šabloně, vypíšu prvky s parent 0 (kořenové prvky) a následně naincluduji šablonu která vypíše pod každý prvek jeho child prvky a opět sama sebe naincluduje. Tohle funguje v pořádku.

Probém je v tom, že potřebuji ke každému prvku přidat checkbox. Obalil jsem si tedy celý výpis do makra form, přičemž ve formulářové komponentě jsou již připraveny potřebné inputy (jako name mají vždy id položky, aby se daly dynamicky přiřadit). Je nutné aby to byl pouze jeden formulář. Potom přiřadím input ke kořenovým prvkům – to funguje správně. Když se ale pokusím vložit input k dalším prvků, které jsou již v includované šabloně a tedy v jiném latte souboru, vyhodí to Undefined variable: _form, což si vysvětluji tak, že se nejprve provede kód v ‚remote‘ šabloně a až pak se stane součástí původní šablony, tj. nemá o nějakém formuláři ponětí.

Moje otázka zní: dá se nějak předat do includované šablony instance Formu, případně má někdo lepší řešení téhle situace?

David Matějka
Moderator | 6445
+
0
-

neinkluduj sablonu, ale bloky

j0hny
Člen | 33
+
0
-

matej21 napsal(a):

neinkluduj sablonu, ale bloky

Paráda, díky moc za odpověď. Mezitím jsem přišel na to, že si můžu do includované šablony předat ‚_form‘ ⇒ $form, nicméně to není moc elegantní řešení, bloky jsou určitě lepší.

j0hny
Člen | 33
+
0
-

j0hny napsal(a):

matej21 napsal(a):

neinkluduj sablonu, ale bloky

Paráda, díky moc za odpověď. Mezitím jsem přišel na to, že si můžu do includované šablony předat ‚_form‘ ⇒ $form, nicméně to není moc elegantní řešení, bloky jsou určitě lepší.

Tak ještě update, při použití bloku (define) stejně nemá kód z bloku k dispozici formulář, tekže jsem se předání {include #block, ‚_form‘ ⇒ $form} nevyhnul, nicméně se s tím dá mnohem lépe pracovat, když je vše v jednom souboru…