Víceúrovňová navigace z databáze

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

Ahoj,
na webu webu potřebuji udělat menu, které půjde do hloubky.
tedy bude 5 stránek jako hlavních, a každá bude mít 0–10 podstránek. Ideálně, aby podstránky mohli být ještě do další úrovně. Chtěl jsem použít komponentu navigation , což se mi nepodařilo. Zkoušel jsem šílené cykly i dymamické názvy proměných ( :D ). Byl bych rád, pokud by mi někdo nastínil, jakým způsobem tento problém elegantně vyřešit.

V DB data mohou mýt takto:

struktura tabulky stranky:
id | nadrazena | nazev | obsah

Díky za odpovědi

Editoval Rypi (18. 10. 2011 20:44)

spidy
Člen | 55
+
0
-

Při takovéto struktuře to moc rozumně řešit nejde. Doporučuji přečíst si něco o traverzování kolem stromu

Filip Procházka
Moderator | 4668
+
0
-

Já zase doporučuji nastudovat si Closure Tree, který je lepší než traverzy i nestedset.

Patrik Votoček
Člen | 2221
+
0
-

Můžeš pls shrnout v čem je Closure Tree lepší?

Filip Procházka
Moderator | 4668
+
0
-

Přejdi pár slajdů v té prezentaci zpět. Máš tam všechny tři vzory rozebrané a popsané v čem je který lepší.

Aurielle
Člen | 1281
+
0
-

Menší OT: Kdyby někdo měl funkční příklad použití closure tree s Gedmo\Tree a byl by ochoten se podělit, byl bych rád. Ještě jsem to moc nezkoumal, ale z issues jsem pochopil, že to už umí, akorát jsem nikde nenašel příklad entity. Díky.

Filip Procházka
Moderator | 4668
+
0
-

To je úplně stejné, jenom přepneš driver. Gedmo je dělané tak, aby to šlo vyměnit, bez zásahu do entity (možná jenom změníš ten driver v nějakém parametru, ale spíš je to v listeneru, nepamatuju se).

Hafran
Člen | 121
+
0
-

Zdar,
nemáte někdo funkční příklad použítí toho Closure Tree když ho převádím na objekt z kterého by se pak dala udělat navigace? Closure tree mi příjde dobrý na všechny operace v databází, ale nemůžu přijít na kloudné řešení jak ho použitelně převést do PHP, potažmo pak do šablony.