Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jesteś na..., Pozycja na stronie
markonix
post 13.09.2011, 22:39:26
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Zastanawiam się jak rozgryźć pokazywanie miejsca internauty na stronie tj.
Strona główna -> Kategoria -> Konkret (podlinkowane oprócz ostatniego).

Jako że, na stronie mam przyjazne linki myślę nad rozwiązaniem następującym:
http://strona.pl/kategoria/podkategoria/konkret
Cały url ucinamy od prawej do slasha generując kolejno:
http://strona.pl/kategoria/podkategoria/
http://strona.pl/kategoria/
http://strona.pl/
<- mamy linki.
Strona wielojęzyczna oparta o tablice tak więc nazwa strony była by generowana np. w ten sposób:
$_LANG['category_name_'.$fileName.'']
Gdzie $fileName to ostatni z prawej fragment linku (np. podkategoria).

Jest to elastyczne jeśli chodzi o głębokość, ale może da się to lepiej?

Druga sprawa gdzie w modelu MVC należało by umieścić generowanie tego fragmentu strony?




--------------------
Go to the top of the page
+Quote Post
lukaskolista
post 14.09.2011, 07:24:54
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


A moze po prostu na kazdej podstronie recznie ustawiaj pozycje? Kiedys widzialem takie rozwiazanie i sie sprawdzilo, wygladalo to mniej wiecej tak
  1. $nav = array('Artykuły', 'Motoryzacja', $article->title);

pozniej bylo laczenie do stringa
  1. $nav = implode(' / ', $nav);

i wyswietlanie. W ten sposob mozesz zrobic nawigacje jak Ci sie podoba na danej podstronie i nie musi to byc w zaden sposob zwiazane z adresem. Oczywiscie to jest schemat bo trzeba zaimplementowac wielojezycznosc. Ja bym to zrobic w kontrolerze szablonu, tzn. mialby on wlasciwosc
  1. protected $_nav = array();

, nastepnie w kazdym kontrolerze dziedziczacym po kontrolerze szablonu nadpisywal bym ta wlasciwosc a na koncu w szablonie generowal bym stringa i przekazywal prosto do widoku lub w widoku wywolywal metode ktora go wygeneruje. Zalezy tez jak masz zbudowana aplikacje.

Ten post edytował lukaskolista 14.09.2011, 07:29:47
Go to the top of the page
+Quote Post
markonix
post 14.09.2011, 12:06:13
Post #3





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Głównie mi chodziło o to aby to było prawie, że automatyczne - jestem leniwy, a lubię elastyczne rozwiązania.

Moje rozwiązanie samo tworzy linki oraz samo pobiera nazwy (nazwy są w plikach językowych).
W Twoim przypadku musiałbym po prostu to robić 2 razy.


--------------------
Go to the top of the page
+Quote Post
!*!
post 14.09.2011, 12:22:02
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Skoro masz link

Kod
http://strona.pl/kategoria/podkategoria/konkret


To zakładam że go jakoś odczytujesz. Wrzuć jego wartości w tablice i zmieniaj odpowiednio na wersję językową.

Kod
array('kategoria', 'podkategoria', 'konkret');


czy tam od razu

Kod
array('kategoria' => $lang['cos'], 'podkategoria'=> $lang['cos'], 'konkret'=> $lang['cos']);


Ten post edytował !*! 14.09.2011, 12:24:50


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
john_doe
post 14.09.2011, 12:25:49
Post #5





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


robiłem coś takiego ostatnio w Codeigniter.
To co tworzy mi bread crumps umieściłem w helperze.

menu mam wielopoziomowe generowane rekurencyjnie z bazy ( lepszym rozwiązaniem jest drzewko ip, materialized path i wtedy bread crumps masz automatycznie). Jak stworzysz to w takiej postaci możesz odtworzyć wstecz kolejnych rodziców, wpakować to np. w tablicę i wyświetlić rozdzielone strzałeczkami smile.gif

Go to the top of the page
+Quote Post
markonix
post 14.09.2011, 12:59:43
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


U mnie to strona na plikach (statyczna) więc bazą się nie wspomogę.


--------------------
Go to the top of the page
+Quote Post
!*!
post 14.09.2011, 13:57:17
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


To nie ma znaczenia czy plik/baza skoro możesz to odczytać z linku.

Ten post edytował !*! 14.09.2011, 13:57:34


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
JoShiMa
post 14.09.2011, 14:00:44
Post #8





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


To się fachowo nazywa ścieżka okruszków. Warto poczytać jak się to robi, żeby było użyteczne i eleganckie.


--------------------
Go to the top of the page
+Quote Post
markonix
post 14.09.2011, 19:49:05
Post #9





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


  1.  
  2. function makeTrail() {
  3.  
  4. $pathDescription = __SITE_URL . $_SERVER['REQUEST_URI'];
  5. if ($pathDescription[strlen($pathDescription)-1] == '/')
  6. $pathDescription = substr($pathDescription, 0, strlen($pathDescription)-1);
  7.  
  8.  
  9. $parts = explode("/", str_replace("http://", "", $pathDescription));
  10. /*
  11. 0 => '__SITE_URL',
  12. 1 => 'part1',
  13. 2 => 'part2',
  14. ...
  15. */
  16.  
  17. $pathDescription = array();
  18.  
  19. foreach ($parts as $key => $part) {
  20.  
  21. if ($key == 0) {
  22. $url = 'http://'. $part .'/';
  23. $pathDescription[$url] = $this->_LANG['header_trail_'];
  24. } else {
  25. $url .= $part .'/';
  26. $pathDescription[$url] = $this->_LANG['header_trail_'. $part];
  27. }
  28.  
  29. }
  30.  
  31. return $pathDescription;
  32.  
  33. }


Potem w widoku pętla foreach gdzie klucz to url, a wartość to nazwa działu.
Funkcje wywołuje w widoku w metodzie show (nie mam innego pomysłu - moje pierwsze MVC).

Ten post edytował markonix 14.09.2011, 19:49:46


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 30.06.2025 - 08:19