ďťż
Podstrony
|
telcocafeW jaki sposób odkryć poziom, w którym znajduje się kategoria?Poniższy kod pozwala jedynie na przejście niżej bądź wyżej o 1 poziom przy wyświetlaniu każdej kategorii. Tak więc w sytuacji, gdy po kategorii X (która kończy poziom 5) nastąpi kategoria Y (w poziomie 1), skrypt wyświetli ją w poziomie 4. $depth=0; $last=1; foreach($res as $cat) { #Poziom if($last>$cat['rgt']) { ++$depth; } elseif($depth>0 && $last+2!=$cat['rgt']) { $depth-=ceil(($cat['rgt']-$last)/2); } $last=$cat['rgt']; //Potem już wyświetlenie; $depth = poziom (z funkcją str_repeat) } Edycja: poprawiłem kod. Użytkownik Ferrari edytował ten post 04 sierpień 2007, 12:17 zobacz: http://rzseattle.org/docs/mysqltrees/ Implementacja pięknego, prostego w obsłudze, elastycznego i pełnego systemu drzewek w SQL nie jest łatwa :) Wyście drugie - czy na pewno potrzebny jest system drzew np. do menu? niekonieczne. Może zamiast tego dać użytkownikowi możliwość otwartej edycji zawartości menu i/lub zrobić "nakładkę" na zagnieżdżone listy UL/LI? Powyższy artykuł przedstawia bardzo dobry system drzew, z którym miałem przyjemność pracować we frameworku Arrow do zarządzania katalogiem produktów porównywarki cen :) Użytkownik Riklaunim edytował ten post 03 sierpień 2007, 22:40 Poprawiłem kod. Najlepiej rozpisać drzewko z liczbami na papierze i wyciągnąć odpowiednie wnioski. :) Najpierw próbowałem zaimplementować IP tree (1.5.8) ze względu na pozornie łatwe sortowanie (np. 1.5.9 vs. 1.5.10 - który pierwszy?). Potem stwierdziłem, że to nie jest najlepsza metoda i też trzeba trochę kombinować. Metoda Depesza za to toporna przy edycji kategorii (głównie przesuwaniu) oraz sortowaniu. Przeczytałem więcej o sposobie nested trees i postanowiłem go użyć. :) Najtrudniejsze jeszcze przede mną - przenoszenie kategorii. Mam nadzieję, że się uda utworzyć odpowiedni skrypt. Edycja: Spotkaliście się z gotowymi algorytmami przenoszenia pozycji w "nested trees"? Użytkownik Ferrari edytował ten post 04 sierpień 2007, 21:49 |
|||
Sitedesign by AltusUmbrae. |