Przepisałem o to taki kod z jednej książek poświęconej programowaniu w PHP w ramach nauki PHP, jednak nie rozumiem pewnych bloków kodu:
CODE
<?php
class Strona
{
//atrybuty klasy Strona
public $zawartosc;
public $tytul='TLA Consulting';
public $przyciski=array('Strona glowna'=>'glowna.php',
'Kontakt' =>'kontakt.php',
'Uslugi' =>'uslugi.php',
'Mapa Strony' =>'mapa.php'
);
//operacja klasy Strona
public function __set($nazwa,$wartosc)
{
$this->$nazwa=$wartosc;
}
public function Wyswietl()
{
echo "<html>\n<head>\n";
$this->WyswietlSlowaKluczowe();
$this->WyswietlStyle();
echo"</head>\n<body>\n";
$this->WyswietlNaglowek();
$this->WyswietlMenu($this->przyciski);
echo $this->zawartosc;
$this->WyswietlStopke();
echo "</body>\n</html>\n";
}
public function WyswietlTytul()
{
echo "<title>$this->tytul</title>";
}
public function WyswietlSlowaKluczowe()
{
echo "<meta name=\"keywords\" content=\"".htmlentities($this->slowa_kluczowe),"\" />";
}
public function WyswietlNaglowek()
{
?>
<table width="100%" cellpading="12" cellspacing="0" border="0">
<tr bgcolor="black">
<td align="left"><img src="logo.gif" /></td>
<td>
<h1>TLA Consulting</h1>
</td>
<td align="right"><img src="logo.gif" /></td>
</tr>
</table>
<?
}
public function WyswietlMenu($przyciski)
{
echo "<table width='100%' bgcolor='white' cellpadding='4' cellspacing='4'\n";
echo "<tr>\n";
//obliczenie wielkosci przycisku
$szerokosc=100/count($przyciski);
foreach ($przyciski as $nazwa=>$url)
{
$this->WyswietlPrzycisk ($szerokosc, $nazwa, $url, !$this->CzyToAktualnyURL
($url));
}
echo "</tr>\n";
echo "</table>\n";
}
public function CzyToAktualnyURL($url)
{
if(strpos($_SERVER['PHP_SELF'], $url)==false)
{
return false;
}
else
{
return true;
}
}
public function WyswietlPrzycisk($szerokosc, $nazwa, $url, $active=true)
{
if($active)
{
echo "<td width='".htmlentities($szerokosc)."%'>
<a href='".htmlentities($url)."' />
<img src='m-logo.gif' alt='".htmlentities($nazwa)."' border='1'>
<a href='".htmlentities($url)."'><span
class='menu'>$nazwa</span></a></td>";
}
else
{
echo "<td width='".htmlentities($szerokosc)."%'>
<img src='boczne-logo.gif'>
<span class='menu'>$nazwa</span></td>";
}
}
?>
class Strona
{
//atrybuty klasy Strona
public $zawartosc;
public $tytul='TLA Consulting';
public $przyciski=array('Strona glowna'=>'glowna.php',
'Kontakt' =>'kontakt.php',
'Uslugi' =>'uslugi.php',
'Mapa Strony' =>'mapa.php'
);
//operacja klasy Strona
public function __set($nazwa,$wartosc)
{
$this->$nazwa=$wartosc;
}
public function Wyswietl()
{
echo "<html>\n<head>\n";
$this->WyswietlSlowaKluczowe();
$this->WyswietlStyle();
echo"</head>\n<body>\n";
$this->WyswietlNaglowek();
$this->WyswietlMenu($this->przyciski);
echo $this->zawartosc;
$this->WyswietlStopke();
echo "</body>\n</html>\n";
}
public function WyswietlTytul()
{
echo "<title>$this->tytul</title>";
}
public function WyswietlSlowaKluczowe()
{
echo "<meta name=\"keywords\" content=\"".htmlentities($this->slowa_kluczowe),"\" />";
}
public function WyswietlNaglowek()
{
?>
<table width="100%" cellpading="12" cellspacing="0" border="0">
<tr bgcolor="black">
<td align="left"><img src="logo.gif" /></td>
<td>
<h1>TLA Consulting</h1>
</td>
<td align="right"><img src="logo.gif" /></td>
</tr>
</table>
<?
}
public function WyswietlMenu($przyciski)
{
echo "<table width='100%' bgcolor='white' cellpadding='4' cellspacing='4'\n";
echo "<tr>\n";
//obliczenie wielkosci przycisku
$szerokosc=100/count($przyciski);
foreach ($przyciski as $nazwa=>$url)
{
$this->WyswietlPrzycisk ($szerokosc, $nazwa, $url, !$this->CzyToAktualnyURL
($url));
}
echo "</tr>\n";
echo "</table>\n";
}
public function CzyToAktualnyURL($url)
{
if(strpos($_SERVER['PHP_SELF'], $url)==false)
{
return false;
}
else
{
return true;
}
}
public function WyswietlPrzycisk($szerokosc, $nazwa, $url, $active=true)
{
if($active)
{
echo "<td width='".htmlentities($szerokosc)."%'>
<a href='".htmlentities($url)."' />
<img src='m-logo.gif' alt='".htmlentities($nazwa)."' border='1'>
<a href='".htmlentities($url)."'><span
class='menu'>$nazwa</span></a></td>";
}
else
{
echo "<td width='".htmlentities($szerokosc)."%'>
<img src='boczne-logo.gif'>
<span class='menu'>$nazwa</span></td>";
}
}
?>
1. Nie rozumiem czemu służy to $szerokosc=100/count($przyciski); ?
2a. Dlaczego tutaj jeden wskaźnik this jest zawarty w drugim, jakie to ma znaczenie? $this->WyswietlPrzycisk ($szerokosc, $nazwa, $url, !$this->CzyToAktualnyURL ($url)); ?
2b. Jeszcze nie rozumiem tej funkcji foreach. Tutaj jest zmianna $przyciski zapisana jako zmienna $nazwa i … ? (=>$url) ?
3. Co ten blok kodu tutaj sprawdza if(strpos($_SERVER['PHP_SELF'], $url)==false) ?
Trochę kodu uciąłem, bo się nie mieścił, ale chyba wycięty kod nie ma znaczenia dla pytań.