Создать ответ 
Выделение текущего пункта меню на php
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #21
RE: Выделение текущего пункта меню на php
Потому что в таком случае в базе у Вас для главной страницы поле будет пустым. И при поиске вхождений пустого поля в URL адрес скрипт всегда будет срабатывать и подсвечивать главную страничку.

Либо нужно добавлять дополнительные проверки на главную страничку.
18.05.2013 13:38:28
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #22
RE: Выделение текущего пункта меню на php
Фигня какая-то, мне не надо index.html (((.... И у меня ж меню разные, вот это то что к внутренним страницам, а к главной у меня другое меню подключается. Со старым кодом и все равно не работает. Только какое оно отношение имеет к этому меню, не понятно.
18.05.2013 14:00:49
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #23
RE: Выделение текущего пункта меню на php
Ну не хотите index.html, так ни кто и не заставляет.

Выкладывайте код, на котором остановились и попробуем добавить пару проверок, чтобы подсветка работала и на главной странице.
18.05.2013 14:07:07
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #24
RE: Выделение текущего пункта меню на php
Ок, просто не удобно было спрашивать как и это сделать.

Вот код внутренних страниц

PHP код:
$result mysql_query("SELECT id,url,title FROM category LIMIT 8 ",$db);
while ( 
$myrow mysql_fetch_array$result) ){

if (
$myrow['url']!="/") {
            
$url '/'.substr($myrow['url'], 0, -5);
            if (
strpos($_SERVER['REQUEST_URI'], $url)=== false) {
                echo 
'<li><a href="/'.$myrow['url'].'">'.$myrow['title'].'</a></li>';
            }
            else{
                echo 
'<li><a href="/'.$myrow['url'].'" class="active">'.$myrow['title'].'</a></li>';
            }
}


Для главной я оставлял так
PHP код:
$result mysql_query("SELECT id,url,title FROM category LIMIT 8 ",$db);
while ( 
$myrow mysql_fetch_array$result) ){

$url '/'.$myrow['url'];
            if(
$url != $_SERVER['REQUEST_URI']) {
                echo 
'<li><a href="'.$url.'">'.$myrow['title'].'</a></li>';
            }
            else{
                echo 
'<li><a href="'.$url.'" class="active">'.$myrow['title'].'</a></li>';
            }



Вот при таком коде, подсвечивается текущий пункт меню и главная. При пустом поле в бд.
18.05.2013 14:24:08
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #25
RE: Выделение текущего пункта меню на php
А зачем Вам два кода. Нужно делать один универсальный.
Вот попробуйте такой, когда поле для главной странички в базе пустое:
PHP код:
while ( $myrow mysql_fetch_array$result) ){
if (
$myrow['url']!="") {
            
$url '/'.substr($myrow['url'], 0, -5);
            if (
strpos($_SERVER['REQUEST_URI'], $url)=== false) {
                echo 
'<li><a href="/'.$myrow['url'].'">'.$myrow['title'].'</a></li>';
            }
            else{
                echo 
'<li><a href="/'.$myrow['url'].'" class="active">'.$myrow['title'].'</a></li>';
            }
}
else echo 
'<li><a href="" class="active">'.$myrow['title'].'</a></li>';

18.05.2013 14:32:12
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #26
RE: Выделение текущего пункта меню на php
Нужно делать один универсальный.

Шаблоны разные, для главной и внутренних страниц, а именно меню не выносил, уже и привык к тому что есть.

По коду, с тем что Вы привели, все равно выделяется и главная и внутренние, но теперь если нахожусь на странице /stroitelstvo.html то и главная выделяется и имеет вид site.ru/stroitelstvo.html
18.05.2013 14:40:01
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #27
RE: Выделение текущего пункта меню на php
Еще чуть-чуть поправил:

PHP код:
while ( $myrow mysql_fetch_array$result) ){
$url '/'.substr($myrow['url'], 0, -5);
if (
$url!="/") {
            if (
strpos($_SERVER['REQUEST_URI'], $url)=== false) {
                echo 
'<li><a href="/'.$myrow['url'].'">'.$myrow['title'].'</a></li>';
            }
            else{
                echo 
'<li><a href="/'.$myrow['url'].'" class="active">'.$myrow['title'].'</a></li>';
            }
}
else echo 
'<li><a href="/" class="active">'.$myrow['title'].'</a></li>';


P.S. Была ошибка, скопируйте заново данный код.
18.05.2013 14:43:22
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #28
RE: Выделение текущего пункта меню на php
Теперь, по ссылкам все нормально, главная ведет на главную, но также главная продолжает выделяться на всех страницах.
18.05.2013 14:51:31
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #29
RE: Выделение текущего пункта меню на php
В прошлом сообщении я допустил ошибку, которую сразу же быстро исправил, но Вы похоже успели скопировать неверный код.
Обратите внимание на 3 строчку. Там должно быть: if ($url!="/") {
18.05.2013 14:56:14
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #30
RE: Выделение текущего пункта меню на php
Да, ура! Спасибо вам большое, теперь работает.

Надо было еще здесь убрать класс css.

PHP код:
}
else echo 
'<li><a href="/">'.$myrow_articles['title'].'</a></li>';

18.05.2013 15:02:23
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru