Alexander
Новичок
Дата регистрации:
05.04.2013 12:15:30
Сообщений: 13
Извиняюсь заранее, не знаю как иначе назвать тему...
Как можно сделать аналог меню, как на этом сайте? Т.е. когда мы переходим на форум - подсвечивается пункт "Форум", переходим на главную - подсвечивается пункт "Главная", и т.д.
Как это сделано? На чем это сделано?
Обычный HTML и CSS тут явно отпадают, они такого не умеют... Значит JS? Или даже PHP?
Люди, поделитесь знаниями, пожалуйста! Или я так и умру, не сделав такой же менюшки у себя на сайте...
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Это сделано на PHP. Если просто, то анализируется $_SERVER["REQUEST_URI"] и сравнивается с адресами, на которые ведут эти пункты. Если совпадают, значит, ставится class="active".
Дмитрий184
Мастер
Дата регистрации:
29.06.2012 08:48:56
Сообщений: 225
Поправьте, если ошибаюсь. Думаю, что подобное меню также можно сделать и на одном CSS - используя псевдоселекторы, каждому состоянию меню задаем своей вид.
Alexander
Новичок
Дата регистрации:
05.04.2013 12:15:30
Сообщений: 13
Дописал парсер, все отлично
Михаил, спасибо большое
CALIJKA
Новичок
Дата регистрации:
04.07.2012 22:35:32
Сообщений: 1
Мой случай
сама ссылка ?view=section&id=1
Ответ от $_SERVER["REQUEST_URI"] может быть таким:
/?view=section&id=1
а может быть и вот таким:
/?view=section&id=1&page=2
1 вопрос:как сравнить если в ссылке на самом деле & а в ответе от $_SERVER["REQUEST_URI"] уже &?
2 вопрос: во втором случае у ответа от $_SERVER["REQUEST_URI"] еще добавился атрибут страницы. как теперь сравнивать?
и последний вопрос: если всё-таки равны, то для этого элемента нужно отдельно сформировать строку вывода с "<li class='active'>".$menu[$i]["link"]."</li>"?
sanda
Новичок
Дата регистрации:
29.11.2013 21:26:49
Сообщений: 12
Ответ №1:
$uri = str_replace("&", "&", $_SERVER["REQUEST_URI"]);...
двойные кавычки блокируют ";"
Ответ №2:
if(preg_match("/\?view=section&id=1/", $uri))...