![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 23.10.2003 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Mam następujący problem:
Chcę użyc w serwisie wielopoziomowe menu - mam już odpowiedni skrypt java script / DHTML, ale największym problemem jest przechowywanie zawartości menu w bazie danych. Jaką stworzyć strukturę menu by byz problemu moż dodawać i zarządzać 3 lub 4 poziomami menu? Probowalem już różnych własnych rozwiązań, ale nie mam pomysłu na coś naprawdę uniwersalnego. Jeśli znacie jakieś gotowe struktury (mogą być z jakiegoś CMSa, obojętnie) lub macie choć dobry pomysł jak coś takiego zrealizować, to bardzo proszę o posty w tym temacie. Z góry dziękuję! Pozdrawiam! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 23.10.2003 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cytat(dr_bonzo @ 2006-02-17 13:33:53) szukaj: "drzewka sql", jest topic na forum (chyba przez rzseattle) Dzieki - pomoglo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jak sie okazuje temat bardzo ciekawy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jako, że może się to komuś przydać to przedstawie rozwiązanie jakie zastosowalem... Ponieważ generuję tylko menu (a więc relatywnie małą ilość danych) postanowiłem wykorzystać rekurencję. Na początek baza danych:
Jak widać wykorzystałem pole parent_id do określenia rodzica dla danej pozycji. Oto funkcja rekurencyjna generująca menu:
Kod jest specyficzny, bo muszę wygenerować specyficzny układ tagów <ul> i <li>, który to jest potem interpretowany przez skrypt JS wyświetlający menu. Oto wywołanie generujące menu:
Jak widać można wygenerować jedno lub kilka menu - w zależności który parent_id podamy jako argument funkcji... Poziom root dla danego menu tworzy element z parent_id = 0. Oto wygenerowany kod: Kod <ul id="udm" class="udm"> <li><a href="#">O firmie</a> <ul> <li><a href="#">Nasza historia</a> <ul> <li><a href="#">podmenu :)</a></li> </ul> </li> <li><a href="#">Nasze plany</a> <ul> <li><a href="#">Pozniejsze plany</a> <ul> <li><a href="#">A w odleglej przyszlosci...</a> <ul> <li><a href="#">W odleglej galaktyce...</a></li> </ul> </li> </ul> </li> </ul> </li> </ul> </li> <li><a href="#">Produkty</a></li> <li><a href="#">Download</a></li> </ul> Wiem, moze to wyglądać dziwnie ale jest dobrze - tak ma właśnie być (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jeśli ktoś potrzebuje podobne rozwiązanie to moje łatwo przerobić do własnych potrzeb... Bardzo też proszę zainteresowanych o wskazówki i uwagi co można w tym rozwiązaniu ulepszyć... Ten post edytował Birkoff 18.02.2006, 09:22:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 13:41 |