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

Форум PHP

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

 

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

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

тема: Выделить пункт меню, где находится юзер.

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

 
 автор: Крост   (16.01.2007 в 01:21)   письмо автору
 
   для: Sergey89   (16.01.2007 в 01:07)
 

Я пробовал. Получается пустая страница. Принцип частично понятен, но в силу своего слабого знания РНР исправить не могу. Не мог бы ты покзать как это делается практически, на каком-нибуть простом примере. Заранее благо-дарен! Крост

   
 
 автор: Sergey89   (16.01.2007 в 01:07)   письмо автору
 
   для: Крост   (16.01.2007 в 00:43)
 

посмотри код, который я дал. Его только чуть-чуть подправить и все.

   
 
 автор: Крост   (16.01.2007 в 00:43)   письмо автору
 
   для: NIK   (15.01.2007 в 15:07)
 

Это поятно. Но у нас на сайте более 150 страничек, меню едино для всех.
Есть, например, раздел портфолио (/portfolio/), в которм 10 страниц. Когда находишься на странице /portfolio/index.php, то она выделяется в меню, а когда заходешь на /portfolio/promo.php, то не выделяется (её, кстати, нет в главном меню).
Так вот, нужно чтобы при находдении в /portfolio/promo.php выделялся пункт в главном меню "портфолио".

   
 
 автор: NIK   (15.01.2007 в 15:07)   письмо автору
 
   для: Крост   (15.01.2007 в 02:04)
 

тут уже зависит от структуры сайта и нужно пробовать несколько вариантов, например:


$this_page = $_SERVER['PHP_SELF'];
if ($this_page == "/home/index.php") {
  echo "<b>Главная</b>";
} else {
  echo "Главная";
}

if ($this_page == "/news/index.php") {
  echo "<b>Новости</b>";
} else {
  echo "Новости";



Если страниц в каталоге может быть много, то добавляете ещё один блок:


if ($this_page == "/news/news_archive.php") {
  echo "<b>Новости - Архив</b>";
} else {
  echo "Новости - Архив";

   
 
 автор: Крост   (15.01.2007 в 02:04)   письмо автору
 
   для: NIK   (13.01.2007 в 14:21)
 

Спасибо! Я применил этот код. А можно сделать чтобы определялась не страничка (например index.php), а каталог, в котором находятся и другие страницы.

   
 
 автор: AlexSol   (13.01.2007 в 19:36)   письмо автору
 
   для: Burn-89   (13.01.2007 в 17:52)
 

надо быть более внимательным. a:active работает если это якорь в текущей странице. если ссылка идет на новую, то только a:visited будет выделять.

   
 
 автор: Burn-89   (13.01.2007 в 17:52)   письмо автору
 
   для: Sergey89   (13.01.2007 в 14:55)
 

А можно сделать средствами CSS (Моё мнение, что самый простой способ):

Прописываем в файле CSS кнопки меню совершенно одинаковыми, а потом
в HTML коде страницы, на которой находится юзер добавляем код:

<style ............. описываем ссылку (кнопку меню) при наведениии курсора, изменяем на
 желаемую</style>

Так сделать на каждой странице...
К примеру:

#menu ul {
     list-style: none;
     padding: 0;
     margin: 0;
     border: 0;
}
     #menu li {
       text-align: center;
       border: 0;
       width: 180px;
       height: 40px;
       margin: 10px;
       padding: 5px;
       font: 15px/20px Verdana, Lucida, Arial, sans-serif;
       color: #fff;
       background: url(knopka.gif) no-repeat;
}
      #menu li a { 
        display: block;
        font-weight: normal;
        padding: 0;
        background: url(knopka.gif) no-repeat;
        color: #000;
        text-decoration: none;
        width: 180px;
        height: 40px;
}
      #menu li a:link {
       font-weight: normal;
       backgrond: url(knopka2.gif) no-repeat;
       text-decoration: none;
}
        #menu li a:hover  {
        font-weight: bold;
        background: url(knopka1.gif) no-repeat;
        text-decoration: none;
        font-style: italic;
        color: #fff;
}
        #menu li a:active  {
        font-weight: bold;
        background: url(knopka2.gif) no-repeat;
        text-decoration: none;
        font-style: italic;
    /*Описание навигации закончено*/
} /////////////////// Подклучаемый файл CSS

На странице:

<style type="text/css" media="all">
  #gosti a:link, #gosti a:visited {
  background: url(knopka3.gif) no-repeat;
}
</style> 

   
 
 автор: Sergey89   (13.01.2007 в 14:55)   письмо автору
 
   для: Крост   (13.01.2007 в 05:10)
 

Я использую ЧПУ, поэтому делаю так:
<?php
    $links 
= array();
    
$links['articles'] = 'Статьи';
    
$links['faq'] = 'FAQ';
    
$links['useful'] = 'Полезное';
    
$links['files'] = 'Файлы';
    
$links['forum'] = 'Форум';

    
$tpl['menu'] .= '<ul>';

    foreach (
$links as $url => $value) {
        if (
$_path[0] == $url$tpl['menu'] .= '<li style="padding-left: 10px;">'.$value.'</li>';
        else 
$tpl['menu'] .= '<li><a href="'.MAIN_URL.'/'.$url.'/">'.$value.'</a></li>';
    }

    
$tpl['menu'] .= '</ul>';
?>

   
 
 автор: NIK   (13.01.2007 в 14:21)   письмо автору
 
   для: AlexSol   (13.01.2007 в 09:04)
 

зависит от структуры сайта. Я делал так вот:


$this_page = $_SERVER['PHP_SELF'];
 if ($this_page == "/index.php") {
   echo "<b>Главная</b>";
 } else {
   echo "Главная";
 }

 if ($this_page == "/news.php") {
   echo "<b>Новости</b>";
 } else {
   echo "Новости";
 }

   
 
 автор: AlexSol   (13.01.2007 в 09:04)   письмо автору
 
   для: Крост   (13.01.2007 в 05:10)
 

передаете в url параметр (типа ?menu=2)
а на странице проверяете его значение и в зависимости от него выделяете тот или иной пункт.

   

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

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

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