![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 20.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
niedawno postanowilem sie troche podszkolic w programowaniu obiektowym i napisac aplikacje wykorzystujac MVC, troche glowkowalem i wszystko jakos ogarnalem, chodiz fajnie... z tym ze nie chce pozniej sie bawic w tworzenie przyjaznych URL-i gdy juz wszystko bedize gotowe... wiec postanowilem to zrobic teraz, zanim stworze cala strukture podstron... W kazdym razie przejdzmy do wlasciwego problemu, jak mi wiadomo gdy opieramy sie na MVC wywolanie jakiejs akcji tudziez podstrony polega na podaniu kontrollera i pozniej opcjonalnie akcji i ewentualnie dodatkowych parametrow. a wiec np. jezeli na stronie chcialbym wyswietlic jakas kategorie, wyciagana z bazy, URL wygladal by mniej wiecej tak : "?controller=kategorie&action=pokaz&kat=agd" w takim przypadku stworzenie przyjaznych linkow w formie "/kategorie/pokaz/agd/" nie jest problemem... jednak zalezalo by mi, jezeli jest to mozliwe wogole, aby link mial postac duzo prostsza... a mianowicie nie pokazywal kontrollera i akcji, a bezposrednio kategorie: "/agd/" . Wydaje mi sie ze bylo by to dobre rozwiazanie, zwlaszcza gdyby w linku byla kategoria i podkategoria, nie mowiac jzu o przypadku gdyby ich nazwy skladaly sie z kilku slow, gdyby do tego jeszcze dorzucic nazwe kontrolera i akcji, link moglby urosnac do zbyt duzych rozmiarow.... a wiec moje pytanie brzmi, czy jest taka mozliwosc? bo nie moge wymyslic, jak w takim razie router rozpoznal by ktory kontroller i ktora akcje ma odpalic... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Menu generuje normalnie, na podstawie drzewa kategorii podpiętego do tego menu. Linki tworzę tak:
resztę robi system, który generuje linki biorąc pod uwagę zmienne URLowe, zmienne serwerowe, konfigurację, subdomeny, parametry typu czy link ma być nice czy ugly oraz routing - można użyć routingu standardowego lub niestandardowego a w Twoim przypadku trzeba poprawiać wszystkie linki w bazie. A jak będziesz miał link typu stron.pl/artykuly/fajne;zycie;programisty,345-3.html to już nie zadziała bo to link do strony nr 3 tego artykułu? Dodaj do tego parametry i otrzymasz niemal nieskończenie wiele kombinacji różnych linków, chcesz to trzymać w bazie wszystko? I co mnie interesuje jak jest w dżumli czy innych tego typu skryptach zwanych CMSami, statyczne linki to się robiło gdy człowiek się HTML uczył. Dzisiaj robi się tak, że wrzucasz tablicę parametrów do widoku i tą samą tablicę odbierasz w kontrolerze, natomiast wygląd linku jest sprawą wtórną i odpowiada za to właśnie routing, który definiujesz sobie w pliku cfg. Dzięki temu programista kompletnie nie musi przejmować się wyglądem linków, ustawię sobie w cfg linki zwykłe to będę miał: stron.pl/index.php?page=artykuly/fajne;zycie;programisty,345-3.html linki nice, router standard: stron.pl/artykuly/fajne;zycie;programisty,345-3.html albo jakiś routing niestandardowy: stron.pl/fajne-zycie-programisty;artykuly_345,3.html Ale zawsze do linku wrzucam id artykułu 345, numer strony 3 i tak dalej a otrzymuję to samo w kontrolerze. Jak ktoś zna lepszy sposób to flaszkę stawiam. Już się w życiu statycznych linków naprzepisywałem trochę, widziałem też po kilkaset reguł w .htaccess. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 23:04 |