Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zakres zmiennych
Forum PHP.pl > Forum > PHP
goroteb
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. ?>
darko
return $this->navlinks;

zamień na

return $this->$navilinks;
goroteb
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.