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

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #11
RE: Выделение текущего пункта меню на php
По поводу error 404 - лечится просто. Для этого измените <a href="'.$url.'"> на <a href="'.$myrow['url'].'">. Как говорил, писал на глаз и мог ошибиться.

По поводу подсветки главной надо подумать. Ссылка на главную в базе я так понимаю выглядит как "/"? Я бы ссылку на главную сделал index.html, а в .htaccess прописал бы редирект с site.ru/ на site.ru/index.html. Тогда проблема бы исчезла, но могут быть и подводные камни.

Либо надо добавлять еще одну проверку на главную страничку. Например, такую:
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 class="active"><a href="">'.$myrow['title'].'</a></li>';
            }
     }

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

Сообщений: 55
У нас с: Jan 2013
Сообщение: #12
RE: Выделение текущего пункта меню на php
Спасибо буду пробовать, по поводу главной, я сам не понимаю, как оно работает. Пустое поле для главной в базе и если смотреть исходный код то выглядит так <a href="/">Главная</a> надо, наверное, так <a href="/index.html">Главная</a>?

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

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #13
RE: Выделение текущего пункта меню на php
Если у Вас в базе ссылка пустая, то измените if ($myrow['url']!="/") на if ($myrow['url']!="").
18.05.2013 12:45:40
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #14
RE: Выделение текущего пункта меню на php
И теперь, когда я нахожусь на статье /stroitelstvo/treshhiny-v-fundamente.html то ссылка в меню ведет на /stroitelstvo/krovlya.html

Так, по поводу главной разобрался, внутри категории подсветка есть, а как теперь вот это решить stroitelstvo/krovlya.html?

И у главной теперь нет подсветки.
(Последний раз сообщение было отредактировано 18.05.2013 в 12:59:29, отредактировал пользователь Winston.)
18.05.2013 12:50:17
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #15
RE: Выделение текущего пункта меню на php
Понял. Мы ссылки ставим относительные, а надо абсолютные.
Т.е. правильно делать так <a href=site.ru/"'.$myrow['url'].'">
18.05.2013 13:02:01
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #16
RE: Выделение текущего пункта меню на php
Хм... если без index.html, то главная всегда подсвечена, если с index.html, то главная не подсвечивается когда я на главной нахожусь.

Вот так заработало <a href="/'.$myrow['url'].'">
(Последний раз сообщение было отредактировано 18.05.2013 в 13:12:35, отредактировал пользователь Winston.)
18.05.2013 13:03:12
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #17
RE: Выделение текущего пункта меню на php
Только для подсвеченной категории неправильная ссылка получается.
Может тоже стоит заменить echo '<li class="active"><a href="">'.$myrow['title'].'</a></li>';
на
echo '<li class="active"><a href=site.ru/"'.$myrow['url'].'">'.$myrow['title'].'</a></li>';

P.S. А главная у Вас не подсвечивается из-за того, что у Вас стоит редирект с site.ru/index.html на site.ru/, а надо наоборот.
18.05.2013 13:15:53
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #18
RE: Выделение текущего пункта меню на php
А чтоб главная не выделялась, когда нахожусь на странице с категорией, поставил как вы сказали index.html, но теперь все-таки главная не выделяется когда нахожусь на главной.

echo '<li class="active"><a href=site.ru/"'.$myrow['url'].'">'.$myrow['title'].'</a></li>';

Я уже заменил, только на echo '<li><a href=site.ru/"'.$myrow['url'].'" class="active">'.$myrow['title'].'</a></li>';
(Последний раз сообщение было отредактировано 18.05.2013 в 13:21:30, отредактировал пользователь Winston.)
18.05.2013 13:20:15
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #19
RE: Выделение текущего пункта меню на php
Осталось только в .htaccess сделать редирект с site.ru/ на site.ru/index.html. Тогда и главная будет подсвечиваться.
18.05.2013 13:26:01
Найти все сообщения Цитировать это сообщение
Winston Не на форуме
Старшина
*

Сообщений: 55
У нас с: Jan 2013
Сообщение: #20
RE: Выделение текущего пункта меню на php
А почему нельзя оставить как было? Чтоб просто site.ru/ ,а то как то не хочется делать site.ru/index.html
18.05.2013 13:34:03
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


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


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru