Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Zakres zmiennych
goroteb
post 5.01.2010, 14:11:55
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 16.03.2009

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


Mam poniższą klasę, która służy do generowania linków z odpowiednimi klasami css (dla link strony na której jestem przypisywana jest klasa active(np czerwony kolor), dla innych nonactive(np.: szary) . Tworzę obiekt, wywołuję funkcję. W konstruktorze pobieram końcówkę adresy - np.: kontakt.php i zapisuję w zmiennej $current_page. Link do strony na której się właśnie znalazłem jest wyróżnianyc klasą css 'active', pozostałe mają klasę 'non-active' czyli są szare. Problem jest z widocznością $this->navlinks. Nic tam się nie dopisuje. Z tej funkcji nie można się dostać do zmiennej klasy?
Może ktos spróbuje zapisać ten kod do pliku np.: cennik.php i poradzi co w tym przypadku trzeba zrobić.
  1. <?php
  2. class myClass {
  3. public $navilinks='';
  4. public $pages = array ('index' => 'index.php',
  5. 'index2' => 'index2.php',
  6. 'cennik' => 'cennik.php',
  7. 'kontakt' => 'kontakt.php'
  8. );
  9. public $current_page='';
  10.  
  11. public function __construct()
  12. {
  13. //Sprawdź na jakiej jesteś obecnie stronie
  14. $current_page=(htmlspecialchars(utf8_decode($_SERVER['PHP_SELF'])));
  15. $current_page=explode('/', $current_page);
  16. //bierzemy samą końcówkę czyli na przykład kontakt.php i zapisujemy w $current_page
  17. $this->current_page=$current_page[2];
  18. }
  19.  
  20. function fNavLinks()
  21. {
  22.  
  23. //Przechodzę przez wszystkie strony w menu i sprawdzam czy jestem na którejś z nich
  24. foreach ($this->pages as $pagename=>$url)
  25. {
  26. //Jeśli strona na której jestem (current_page) znajduje się w mojej zdefiniowanej tablicy
  27. if($url==$this->current_page)
  28. {
  29. //link aktywny - nadaje mu klase ktora sprawia ze jest wyrozniony (active)
  30. $this->navilinks.='<a href=\"'.$url.'\" class=\"active\" >'. $pagename .'</a>';
  31. }
  32. else
  33. {
  34. //link nieaktywny - class nonactive (wyszarzony)
  35. $this->navilinks.='<a href=\"'.$url.'\" class=\"non-active\" >'. $pagename .'</a>';
  36. }
  37.  
  38. }
  39. return $this->navlinks;
  40. }
  41. }
  42.  
  43. $c = new myClass();
  44. echo $c->fNavLinks();
  45.  
  46. ?>
Go to the top of the page
+Quote Post
darko
post 5.01.2010, 14:59:12
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


return $this->navlinks;

zamień na

return $this->$navilinks;


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
goroteb
post 5.01.2010, 15:33:37
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 16.03.2009

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


Dzięki serdeczne!
Literówka, a taka istotna.
Przy okazji jak ktoś potrzebuje takiego menu z aktywnym linkiem i wyszarzonymi to może znajdzie je tutaj i doda małą poprawkę winksmiley.jpg.

Ten post edytował goroteb 5.01.2010, 15:34:55
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: 12.07.2025 - 11:51