Меню формируется модулем Taxonomy Menu. Активные пункты в нём назначаются модулем Taxonomy Menu Trails.
Если открыть материал, который помечен термином, имеющим родительский термин, то активными станут оба термина (и родительский, и дочерний). Нужно помечать активным только дочерний термин (если есть родитель), то есть активным должен считаться только самый "глубокий" в меню термин.
Как можно добиться такого эффекта?
UPD:
Решение не найдено. Поскольку от указанных моделей отказались, вопрос потерял актуальность.
Комментарии
Вам нужен hack модуля ?
Или строчка java script ?
Я подозреваю, что такие моменты должны быть где-то в настройках. Я их найти не смогла, но это ни о чём ещё не говорит.
Поэтому мне нужен совет: как решить задачу. Если настройка или готовые решения - замечательно. Если их нет, буду править код сама.
Другой вопрос.
Это нужно для чего? CSS или важны именно селекторы?
Для CSS. Чтобы визуально выделять только один пункт, а не всю ветку.
Тогда не вижу смысла лезть в код. Все делается средствами CSS.
.active-trail .active-trail {font-weight: bold;}
А если там больше двух уровней вложенности? Или меньше? Или открыли не самый верхний/нижний раздел?
Я думаю, вам стоит смотреть в сторону [api=theme_links].
И как их можно применить в этом случае?
Вам даже наверное больше подойдет [api=theme_menu_link]. Мысль проста - все ссылки, которые имеют URL отличный от текущего лишаются класса active-trail
Из первого сообщения очевидно, что я использую модуль для создания меню из терминов таксономии. При открытии конкретного материала URL всегда будет отличаться от URL всех ссылок в меню.
ul.menu li.item a.link {
font-weight: normal;
}
ul.menu li.item a.link:last-child {
font-weight: bold;
}
В IE такое будет работать только с версии 9. Пока на крайний случай оставила вариант с js, который будет отслеживать вложенность, это надёжнее, чем некроссбраузерный css.
А что мешает получить путь до термина, к которому прикреплена нода?
Мешает то, что я не совсем понимаю вашу мысль. Как эту функцию применить в конкретном случае?
Берем термин таксономии от текущей ноды, получаем из него URL.
Далее через theme_menu_link() проверяем, совпадает ли ссылка в создаваемом элементе меню ссылкой на термин из ноды. Если не совпадает, то убираем из атрибута класса значение active_trail.
Завтра я может буду в силах написать это в коде, сейчас спать охота. Если не разберетесь, пишите.
Принцип поняла. Спасибо.
Осталось только выяснить, как его применить к текущей ситуации.