Stromová struktura v latte

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

Zdravím, je již nějaké řešení jak vytvořit v latte stromovu strukturu.
Respektivě:

mám třeba takovouto strukturu (výřez) pole:

[2] => Array
        (
            [kategorie] => sklo
            [parent] => 0
            [id] => 3
            [sublevel] => Array
                (
                    [0] => Array
                        (
                            [kategorie] => Další položka
                            [parent] => 3
                            [id] => 7
                            [sublevel] => Array
                                (
                                )
                        )
                    [1] => Array
                        (
                            [kategorie] => Položka menu
                            [parent] => 3
                            [id] => 8
                            [sublevel] => Array
                                (
                                    [0] => Array
                                        (
                                            [kategorie] => A tak dále...
                                            [parent] => 8
                                            [id] => 9
                                            [sublevel] => Array
                                                (
                                                )
                                        )
                                )
                        )
                )
        )

Chtěl bych jí vypsat jako liste seznam. Normálně bych jí kladicky proje forach a pokud by měl další úroveň, tak bych jí poslal dál…
Je nějaká šance docílit struktury nějak slušně v latte abych tam na prasáka neměl x foreachu v sobě.

Díky

voda
Člen | 561
+
0
-
iwory
Člen | 147
+
0
-

voda napsal(a):

Použij makra {block #xxx} a {include #xxx}.

Jo, to by mělo být přesně ono, akorát mám problém, že se mi to cyklí do tisícu položek:

{block #menu}
<ul>
    {foreach $treeData as $category}
    <li>
    {if count($category[sublevel]) > 0}
        {include #menu, menu => $category[sublevel]}
    {else}
        {$category[kategorie]}
    {/if}
    </li>
    {/foreach}
</ul>
{/block}

Když to nepošlu dál ale jenom si tam countnu jestli jsou vevnitř položky tak je to ok a vypíše to příslušný počet, ale jakmile to pustím include, tka se to zacykl…

duke
Člen | 650
+
0
-

iwory napsal(a):

Když to nepošlu dál ale jenom si tam countnu jestli jsou vevnitř položky tak je to ok a vypíše to příslušný počet, ale jakmile to pustím include, tak se to zacyklí…

Zkus nahradit:

{include #menu, menu => $category[sublevel]}

tímto:

{include #menu, treeData => $category[sublevel]}
iwory
Člen | 147
+
0
-

duke napsal(a):

iwory napsal(a):

Když to nepošlu dál ale jenom si tam countnu jestli jsou vevnitř položky tak je to ok a vypíše to příslušný počet, ale jakmile to pustím include, tak se to zacyklí…

Zkus nahradit:

{include #menu, menu => $category[sublevel]}

tímto:

{include #menu, treeData => $category[sublevel]}

Jj, před miutou mi to došlo, už to šlape. Díky moc!!!