|
|
|
|
|
для: Clocker
(27.10.2005 в 22:05)
| | 1) Хм... а почему URL такой странный '?page=news', может стоит перед ним $_SERVER['PHP_SELF'] добавить?
2) Упростить код можно, если преобразовать класс в функцию. | |
|
|
|
|
|
|
| Отыскал интересный класс для вывода навигационной строки, все работает при одном но: если ссылка имеет вид напр. link.php; при ссылке вида ?page=link это не работает.
В качестве описания: Если ссылка в меню указывает на текущую страницу, то ссылка на эту страницу не выводится, т.е.выводится только текст ссылки.
Как сделать чтоб работало?
Вот собственно сам класс
<?php
class MainNav
{
var $buttons = array(
'News' => '?page=news',
'About' => '?page=about',
'Guestbook' => '?page=guestbook',
'Contacts' => '?page=contact',
'Links' => '?page=links'
);
function SetButtons($newbuttons)
{
$this->buttons = $newbuttons;
}
function Display()
{
$this -> DisplayMenu($this->buttons);
}
function DisplayMenu($buttons)
{
echo '
<table border="0" cellpadding="2" cellspacing="1" width="100%" >
<tr>';
$width = 100/count($buttons);
while (list($name, $url) = each($buttons))
{
$this -> DisplayButton($width, $name, $url, !$this->IsURLCurrentPage($url));
}
echo '
</tr>
</table>
';
}
function IsURLCurrentPage($url)
{
if(strpos( $GLOBALS['SCRIPT_NAME'], $url )==false)
{
return false;
}
else
{
return true;
}
}
function DisplayButton($width, $name, $url, $active = true)
{
if ($active)
{
echo '
<td class="mainmenu" width = "'.$width.'%"><a class="menulink" href = "'.$url.'">'.$name.'</a></td>
';
}
else
{
echo '
<td class="mainmenu" width = "'.$width.'%"><span class="menulink">'.$name.'</span></td>
';
}
}
}
?>
|
Собственно еще вопрос: а как можно упростить? | |
|
|
|
|