Víceúrovňová navigace z databáze
- Rypi
- Člen | 38
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
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
Já zase doporučuji nastudovat si Closure Tree, který je lepší než traverzy i nestedset.
- Filip Procházka
- Moderator | 4668
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ší.
- Filip Procházka
- Moderator | 4668
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
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.