Closure Table a generovanie stromu

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

Caute, viete mi poradit? urobil som si model podla Closure Table len mam mensi problem, neviem ako postupovat aby som si vygeneroval klasicky ul-li tree. uvazoval som nad:

vybrat z DB len root item a potom v sablone rekurzivne stale volat deti len do hlbky 1 urovne a takto rekurzivne vypisat. Nevyhoda je v tom ze budem mat vela poziadaviek na DB.

Neviete mi poradit nejake vhodnejsie riesenie?

vvoody
Člen | 910
+
0
-

Ulož si do cache celé menu. Tej rekurzie sa asi aj tak nevyhneš, či už v šablóne alebo modely.

enumag
Člen | 2118
+
0
-

Té rekurzi se dá vyhnout když se správně použije iterátor. Respektive v šabloně rekurze bude furt, ale SQL dotaz jen jeden.

@vvoody: Když dám menu do cache tak jak v něm odliším aktivní položku? :-) To řešíš javascriptem?

nanuqcz
Člen | 822
+
0
-

enumag: Spíš jsem to pochopil tak, že si uloží do cache pole s řádky tabulky menu. Aktivní položky pak zjistí pomocí $presenter->isLinkCurrent($menu[$i]->link).