Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ścieżka
Skobi
post 21.09.2006, 10:15:24
Post #1





Grupa: Zarejestrowani
Postów: 174
Pomógł: 1
Dołączył: 19.02.2004

Ostrzeżenie: (10%)
X----


Mam pytanko, właśnie robie, a dokładniej mam zrobić "ścieżkę" czyli:

  1. home > telewizory -> nowości -> Sony


i teraz mam pytanie macie jakieś pomysły jak to zrobić, bo łopatologicznie
to można zrobić, ale chciałbym aby to był automat??


Mam nadzieje, ze sie jasno wyrazilem
Go to the top of the page
+Quote Post
batman
post 21.09.2006, 10:55:48
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Sposobów na to jest kilka. Jednak opiszę Ci tylko ten co ja stosuję, ponieważ w nim czyje się najlepiej winksmiley.jpg

Mam utworzoną tablicę z mapą serwisu. Otwierając jakąś stronę mam jej kod (wartośc liczbowa, tworzona na podstawie informacji o pliku). Następnie sprawdzam w jakiej części tablicy znajduje się dana strona i wyświetlam scieżkę od "góry" do danej strony. Zamiast kodu strony możesz użyć nazw plików lub innego identyfikatora. Musisz tylko pamiętać, że identyfikator ten powinien być unikatowy.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Skobi
post 21.09.2006, 11:14:33
Post #3





Grupa: Zarejestrowani
Postów: 174
Pomógł: 1
Dołączył: 19.02.2004

Ostrzeżenie: (10%)
X----


dzieki bardzo, myslalem o tym, jednak jezeli mozesz mi po krotce przedstawic taka tablice w praktyce
bede wdzieczny. no i cos co wyswietla to na ekranie.
Go to the top of the page
+Quote Post
batman
post 22.09.2006, 07:27:14
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Tabela wygląda mniej więcej tak:

  1. <?php
  2. $aPages['kod_strony1'] = 1;
  3. $aPages['kod_strony2'] = array('kod_podstrony1'=>1,'kod_podstrony2'=>1);
  4. $aPages['kod_strony3'] = 1;
  5. // itd
  6. ?>


Resztę pokaże później, ponieważ nie mam tego kodu ze sobą, a pisać od nowa nie mam teraz czasu. Chodzi w nim o to, że mają dany kod strony, na której się aktualnie znajdujemy, przeszukujemy w pętli talicę $aPages. Jeśli znajdziemy interesujący nas kod, wówczas "cofamy" się w tablicy (lub inaczej mówiąc - wracamy do góry tablicy). I w ten oto sposób mamy ścieżkę.

Sorki za opóźnienie. Urwanie głowy w pracy miałem.

Oto przykład ładnej ścieżki. Niestety nie mogę pokazać całej klasy, która jest odpowiedzialna za pliki z zawartością stron. Zamiast tego przerobiłem jedną z metod, która wyświetla ścieżkę.

  1. <?php
  2. // to jest tablica zawierajaca drzewo aplikacji
  3. $apage = array();
  4.  
  5. $apage[100]['name'] = 'start';
  6. $apage[100]['child'] = array();
  7. $apage[100]['child'][101]['name'] = 'powitanie';
  8. $apage[100]['child'][101]['child'] = array();
  9. $apage[100]['child'][101]['child'][111]['name'] = 'duzo daleko ;)';
  10. $apage[100]['child'][102]['name'] = 'jakas strona';
  11.  
  12. $apage[200]['name'] = 'pomoc';
  13. $apage[200]['child'][201]['name'] = 'jakas strona 2';
  14.  
  15. // jesli chcesz mozesz zrobic cos takiego, by zobaczyc jak wyglada 
  16. /*
  17. echo '<pre>';
  18. print_r($apage);
  19. echo '</pre>';
  20. */
  21.  
  22.  
  23. // to jest funkcja, ktora uklada sciezke - nie jes to idealna funkcja, ale dziala ;)
  24.  
  25. function getPath($arr=array(),$currentpage,$backpage='') {
  26. if(!is_array($arr) || count($arr) == 0) return ''; // tu mozna zwrocic dowolna rzecz. u mnie - wyjatek
  27.  
  28. foreach($arr as $k => $v) {
  29. if($k == $currentpage) {
  30. $sout = $backpage.' ť '.$v['name'];
  31. }
  32.  
  33. if(is_array($v['child'])) 
  34. $sout .= getPath($v['child'],$currentpage, $backpage.' ť '.$v['name']);
  35. }
  36.  
  37. return $sout;
  38. }
  39.  
  40. // a tak sie tego uzywa
  41. echo getPath($apage,111);
  42. ?>


Nie miałem okazji sprawdzić poprawności działania na większej ilości przykładów, ale wydaje mi się, że powinno działać.

Nie sugeruj się numerami stron (100, 101, 200, itd.). Jest to tylko i wyłącznie na potrzeby prezentacji winksmiley.jpg. Oprócz podanych wartości, możesz dposać kolejne, jak na przykład link, obrazek, dodatkowe style, itd.

Miłej zabawy.

Ten post edytował batman 21.09.2006, 11:34:47


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
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: 21.06.2025 - 00:06