Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Неактивная кнопка в меню на текущей странице

Сообщения:  [1-2] 

 
 автор: cheops   (28.10.2005 в 13:02)   письмо автору
 
   для: Clocker   (27.10.2005 в 22:05)
 

1) Хм... а почему URL такой странный '?page=news', может стоит перед ним $_SERVER['PHP_SELF'] добавить?
2) Упростить код можно, если преобразовать класс в функцию.

   
 
 автор: Clocker   (27.10.2005 в 22:05)   письмо автору
 
 

Отыскал интересный класс для вывода навигационной строки, все работает при одном но: если ссылка имеет вид напр. 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>

                      '

                } 
        } 
}

?>


Собственно еще вопрос: а как можно упростить?

   

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования