stromova struktura pomocou Nette

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

Caute,
Vedeli by ste mi poradit? Potrebujem vygenerovat klasicku stromovu strukturu z db:

id | name | parent | weight

mam moznost ze si to vygenerujem rekurziou do pola, a poslem sablone kde to prebehnem zase rekurziou pomocou foreach a include. Zaujimalo by ma ci nahodou Nette neposkytuje nejake hotove riesenie, resp. ci by sa to nedalo urobit efektivnejsie

Editoval duskohu (25. 9. 2012 10:33)

vvoody
Člen | 910
+
0
-

Ak sa ti nechce generovat to pole, tak si do sablony posli selection na korenove prvky a cez related nad jednotlivymi prvkami rekurzivne vypisuj dalsie urovne dokial nebude vracat realted nula riadkov.

Jirda
Člen | 103
+
0
-

Na tu rekurzi bych daval pozor. Paklize se jedna o maly strom, tak se to da snest. Ale u vetsich by to mohlo jit zacit pekne citit, pokud se to spatne navrhne.

Ot@s
Backer | 476
+
0
-
vvoody
Člen | 910
+
0
-

Jirda napsal(a):

Na tu rekurzi bych daval pozor. Paklize se jedna o maly strom, tak se to da snest. Ale u vetsich by to mohlo jit zacit pekne citit, pokud se to spatne navrhne.

S tymto by som pri NDB nesuhlasil, ale skorej sa opytam preco si to myslis? Kde to bude citit?

duskohu
Člen | 778
+
0
-

Closure Tree som si pozeral vyzera to celkom fajn, len teraz sa mi nedari rozbehat ani zobrazovanie rekurziou, ten strom bude len malicky takze tu nebude problem s objemom dat. Viete mi s tym poradit?
Toto je prestava ktora samozrejme nefunfuje:

// na vstupe mam selection
{block #menu}
<ul>
    {foreach $categories as $category}
    <li>
    {if $children = $category->related(category, parent)}
        {include #menu, categories => $children}
    {else}
        {$category->name}
    {/if}</li>
    {/foreach}
</ul>
{/block}
vvoody
Člen | 910
+
0
-

Vyzera to celkom dobre, uz to len dotiahni. Pozri sem a sem.