![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Do tej pory pisałem strukturalnie. Tworze swój CMS/Framework i zastanawiam się nad jedną sprawą.
Jak rozwiązać sprawę wyświetlania nawigacji na stronie czyli "Jesteś tutaj : home > kategoria 1 > kategoria 2 > kategoria 3 > produkt" Poziomów kategorii może być dowolnie wiele. URL mają postać: domena.pl/kategoria-1/kategoria-2/kategoria-3/produkt-1.html ale do tego samego produktu można wejść też używając adresu domena.pl/kategoria-1/kategoria-2/produkt-1.html moja aplikacja wygląda mniej-więcej tak:
A tutaj kontroler produktu, kategorii i innych stron ma taką postać.
To jedyny pomysł na jaki wpadłem niestety. Aby nie tworzyć nowych plików. Czyli wszystki informacje potrzebne do wyświetlenia danej podstrony i stworzenia traila są w plikach, w każdym pliku jest zaznaczone co jest rodzicem danego pliku, wiec dla produktu np jet to kategoria a dla kategori strona głowna (w prostej wersji - przy jedno poziomowej kategorii) Może ktoś podać jakiś inny pomysł rozwiązywania tego problemu? Może jakieś przykłady, CMS gdzie mogę podejrzeć inne rozwiązania? Ten post edytował propage 22.03.2009, 20:42:36 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 23 Dołączył: 2.10.2007 Skąd: Słupsk Ostrzeżenie: (0%) ![]() ![]() |
pobierać nazwy kategorii z url'a, albo zapisywać w sesji i wyświetlać
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 330 Pomógł: 0 Dołączył: 25.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dodawanie do sesji to pójście na łatwiznę, tylko co jeśli ktoś wejdzie do sklepu bezpośrednio przez link domena.pl/a/b/c/produkt.html wtedy żadnej kategorii nie będę mieć w sesji i będzie to wyglądać tak "home -> produkt";
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Bierz nazwy prosto z adresu, przecież jak ktoś wchodzi przez kategoria1/kategoria2/produkt to dla niego ten produkt należy do kategorii 2, a nie 3.
|
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Ja może tylko na boku powiem ze tutaj jest błąd składniowy
2 razy { Ten post edytował wookieb 23.03.2009, 10:06:42 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Skoro możesz zagnieżdżać kategorie, to znaczy, że masz to jakoś zaimplementowane. Wystarczy mieć dobry algorytm obsługi drzewa, aby takie listy generować jednym, prostym zapytaniem. Własność taką ma np. nested set znany także jako modified preorder tree traversal. Jest na jego temat trochę artykułów, również po polsku, było to poruszane kilkakrotnie na tym forum i tam też odsyłam.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 22:18 |