Dynamický cyklus – a.k.a. rekurzia cyklu v šablóne

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

Zdarec,

už pár dní si lámem hlavu nad tým, ako vypísať pole cyklom, ktorý má dynamickú hĺbku… vysvetlím to na jednoduchom príklade:

Chceme vytvoriť dropdown menu, ktoré má momentálne 3 levely (hĺbku)

lvl 1 → lvl 2 → lvl 3

avšak podmienkou je možnosť pridať kedykoľvek ďalšie levely a neni vylúčené, že o týždeň už budeme na lvl 20

lvl 1 → lvl 2 → … → lvl 20

Pokiaľ ide o php, tak jednoducho by som pri renderovaní zavolal funkciu, ktorá pre ďalšie levely použije rekurziu. Avšak ako to spraviť v latte ma napadlo jedine vytvorenie vlastného makra… tak preto sa obraciam na Vás, či neni možné nejaké iné riešenie (ak to zbytočne komplikujem, tak nech sa páči, do mňa ;DD)

grogy
Člen | 147
+
0
-

Dobrý večer,

něco takovéhoto by mohlo být řešením:

{block #myMenu}
	<ul>
	{foreach $subsections as $section}
		<li>{$section->name}</li>
		{if $sections->haveSubsections()}
			{include #myMenu, 'subsections' => $section->getSubsections()}
		{/if}
	{/foreach}
	</ul>
{/block}
DOBss
Člen | 24
+
0
-

hmmm… díky, pohrajem sa s tým – asi som nesprávne hľadal, ale nič mi nenašlo =[

thx again ;]