Страницы в "активном" разделе меню без ссылок
Здравствуйте уважаемые!
имеем: пункт меню ведет на страницу со вьюхой(ну много там обьектов, много) у каждого из объектов есть своя страница с подробным описанием и галереей. В Структура-Типы материалов создан нужный тип. В настройках меню этого типа материалов ставлю галочку на нужное меню, выибраю нужный родительский элемент по умолчанию, после этого появляется возможность создать ссылку в выбранном меню, тогда родительский\(нужный) пункт подсвечивается, если ссылку не создаю - пункт не подсвечивается, зачем же его тогда вообще выбирать в настройках типов материалов. Если не ситавить галочку в выборе меню, аналогично, родительский элемент остается неподсвеченным. в стили ЛИ-шки ничего нового не дописывается, остаетс clas=leaf
Нужно:
чтобы находясь на одной из страниц "объектов", я имел подсвеченный родительский пункт меню + в хлебных крошках тоже хочется иметь название родительсого раздела. раскрываться этот пункт меню, в отличии от соседних не должен!
Как правильно решить подобную задачу или что я делаю неправильно?
буду крайне признателен за совет.
Посмотрите, возможно у вас в теге body настроен вывод классов нод.
Можно решить проблему еще двумя способами, через javascript и через php, через php правильнее.
Можете попробовать nice menus поставить он позволяет выводить классы пунктам меню и правильно обрабатывать active и active-trail.
В случае если будете писать свой модуль для этого, то лучше всего настроить пути, например для объектов, через модуль Pathauto одинаковым образом, чтобы они например начанались с /object/... , так вы сможете проверить на какой вы странице находитесь. Проверить можно в php с помощью переменной глобальной $_SERVER, у которой есть поле REQUEST_URI, проверяем так:
<?php if(substr($_SERVER['REQUEST_URI'], 0, 7) == '/object'){ //совершаем действие на этой странице } ?>
Можно например такую проверку вставить в template.php и добавить классы в тег body и уже основываясь на этом классе написать нужный нам css. Например если в body выводится класс node-object, то выделяем через css .node-object .menu-1233 нужным цветом.
Если через javascript (jquery) нужно проверить, то там тоже можно обратиться к пути.
var sBody = document.URL;
Проверить урл можно также как и в php:
if(sBody.substr(0,7) == '/object'){ //совершаем действие }
Можно например с помощью нужного класса добавить еще один, например active:
$('.menu-1324').addClass('active');
Спасибо з аподробный ответ.
1. на данном этапе меня совсем не интересуют красивые урлы, почти даже наоборот:)
2. Все же, если не ошибаюсь, то выбор родительского пункат по умолчанию давал нужный эффект когда-то:)
3. почему-то в класс меню не пишется его ИДшник.. тот самый .menu-1324
буду экспериментировать.
Удалось решить задачу - отключил в соотв. меню появившиеся пунты - все :)