Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z klasą
Forum PHP.pl > Forum > Przedszkole
bobens_83
Witam. Mam problem z klasą. Problem w tym, że kod nie rozróżnia czy dana strona jest aktywna czy nie i wyświetla wszystkie <a> jako odnośniki, nawet ten do bieżącej strony. Proszę o pomoc w tym temacie.

szablon.inc
  1. <?php
  2. class Szablon
  3. {
  4. public $zawartosc;
  5.  
  6. public $przyciski = array( 'Strona główna' => 'glowna.php',
  7.  'Wyszukaj osobę' => 'wyszukaj.php',
  8.  'Dodaj osobę' => 'dodaj.php'
  9. );
  10.  
  11. public $poczatek = "<html>n<head>n<meta http-equiv="content-type" content="text/html"; charset="iso-8559-2">
  12.  <link rel="stylesheet" href="style.css" type="text/css">n
  13.  n</head>n<body>n<center>n";
  14. public $koniec  = "n</center>n</body>n</html>";
  15.  
  16. public function Wyswietl()
  17. {
  18. echo $this->poczatek;
  19. $this->Wyswietl_naglowek();
  20. $this->Wyswietl_menu();
  21. echo $this->koniec;
  22. }
  23.  
  24. public function Wyswietl_naglowek()
  25. {
  26. ?>
  27. <table id="nag">
  28. <tr><td><h3>Dodawarko-wyszukiwarka osób</h3></td></tr>
  29. </table>
  30. <?php
  31. }
  32.  
  33. public function Wyswietl_menu($przyciski=NULL)
  34. {
  35. if( $przyciski === NULL )
  36. {
  37. $przyciski = $this->przyciski;
  38. }
  39. $szerokosc = 100/count($this->przyciski);
  40. echo "<table id="przyc">n<tr>";
  41. foreach( $przyciski as $nazwa=>$url )
  42. {
  43. $this->Wyswietl_przycisk($szerokosc, $nazwa, $url, $this->CzyAktualny($url));
  44. }
  45. echo "</tr>n</table>n";
  46. }
  47.  
  48. public function Wyswietl_przycisk( $szerokosc, $nazwa, $url, $active=true )
  49. {
  50. if( $active )
  51. {
  52. echo "<td width="".$szerokosc."%">".$nazwa."</td>";
  53. }
  54. else
  55. {
  56. echo "<td width="".$szerokosc."%"><a href="".$url."">".$nazwa."</a></td>";
  57. }
  58. }
  59.  
  60. public function CzyAktualny($url)
  61. {
  62. if( strpos($_SERVER['PHP_SELF'], $url) == false )
  63. {
  64. return false;
  65. }
  66. else
  67. {
  68. return true;
  69. }
  70. }
  71. }
  72. ?>


index.php
  1. <?php
  2.  
  3. require( 'szablon.inc' );
  4. $glowna = new Szablon();
  5.  
  6. $glowna->Wyswietl();
  7.  
  8. ?>
dr_bonzo
A pomyslales o systemach templatow? Bo to to jest paskudne:
  1. public function Wyswietl_naglowek()
  2. {
  3. ?>
  4. <table id="nag">
  5. <tr><td><h3>Dodawarko-wyszukiwarka osób</h3></td></tr>
  6. </table>
  7. <?php
  8. }


  1. <?php
  2. if( strpos($_SERVER['PHP_SELF'], $url) === false ) // wstaw === zamiast == bo moze ci zwrocic 0 a ( 0 == false ) === TRUE., a chyba zawsze go znajdzie na pierwszym znaku
  3.  
  4. ?>
ghostrider
Cytat
A pomyslales o systemach templatow? Bo to to jest paskudne:


a mnie dziwi ze to wogóle hula, PHP_INCOMPLETE_CLASS, nie questionmark.gif
bobens_83
Kurcze no chodzi (tzn na localhost - wamp, bo na serwerze nie testowalem). Przedtem to byla kwestia glupiego bledu. Url nazywal sie glowna.php a plik nazywal sie index.php.
Co do tych templatow. to chetnie przerobie jakis Smarty w swoim czasie smile.gif Dziekuje za odpowiedzi i pozdrawiam.
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.