[Не актуально] Сделать активным только последний термин в меню

Главные вкладки

Аватар пользователя Apelsinova Apelsinova 1 июля 2012 в 22:06

Меню формируется модулем Taxonomy Menu. Активные пункты в нём назначаются модулем Taxonomy Menu Trails.
Если открыть материал, который помечен термином, имеющим родительский термин, то активными станут оба термина (и родительский, и дочерний). Нужно помечать активным только дочерний термин (если есть родитель), то есть активным должен считаться только самый "глубокий" в меню термин.
Как можно добиться такого эффекта?

UPD:
Решение не найдено. Поскольку от указанных моделей отказались, вопрос потерял актуальность.

Комментарии

Аватар пользователя Apelsinova Apelsinova 1 июля 2012 в 22:25

Shok211 wrote:
Вам нужен hack модуля ?
Или строчка java script ?

Я подозреваю, что такие моменты должны быть где-то в настройках. Я их найти не смогла, но это ни о чём ещё не говорит.
Поэтому мне нужен совет: как решить задачу. Если настройка или готовые решения - замечательно. Если их нет, буду править код сама.

Аватар пользователя Apelsinova Apelsinova 2 июля 2012 в 1:41

validoll wrote:
Другой вопрос.
Это нужно для чего? CSS или важны именно селекторы?

Для CSS. Чтобы визуально выделять только один пункт, а не всю ветку.

Аватар пользователя validoll validoll 3 июля 2012 в 9:01

Тогда не вижу смысла лезть в код. Все делается средствами CSS.

.active-trail {font-weight: normal;}
.active-trail .active-trail {font-weight: bold;}
Аватар пользователя Apelsinova Apelsinova 3 июля 2012 в 13:17

validoll wrote:
Тогда не вижу смысла лезть в код. Все делается средствами CSS.

.active-trail {font-weight: normal;}
.active-trail .active-trail {font-weight: bold;}


А если там больше двух уровней вложенности? Или меньше? Или открыли не самый верхний/нижний раздел?

Аватар пользователя validoll validoll 3 июля 2012 в 22:54

Вам даже наверное больше подойдет [api=theme_menu_link]. Мысль проста - все ссылки, которые имеют URL отличный от текущего лишаются класса active-trail

Аватар пользователя Apelsinova Apelsinova 3 июля 2012 в 23:13

validoll wrote:
Мысль проста - все ссылки, которые имеют URL отличный от текущего лишаются класса active-trail

Из первого сообщения очевидно, что я использую модуль для создания меню из терминов таксономии. При открытии конкретного материала URL всегда будет отличаться от URL всех ссылок в меню.

Аватар пользователя Apelsinova Apelsinova 4 июля 2012 в 0:20

Shok211 wrote:
ul.menu li.item a.link {
font-weight: normal;
}
ul.menu li.item a.link:last-child {
font-weight: bold;
}

В IE такое будет работать только с версии 9. Пока на крайний случай оставила вариант с js, который будет отслеживать вложенность, это надёжнее, чем некроссбраузерный css.

Аватар пользователя validoll validoll 3 июля 2012 в 23:50

"Apelsinova" wrote:
Из первого сообщения очевидно, что я использую модуль для создания меню из терминов таксономии. При открытии конкретного материала URL всегда будет отличаться от URL всех ссылок в меню.

А что мешает получить путь до термина, к которому прикреплена нода?

Аватар пользователя Apelsinova Apelsinova 4 июля 2012 в 0:19

validoll wrote:
А что мешает получить путь до термина, к которому прикреплена нода?

Мешает то, что я не совсем понимаю вашу мысль. Как эту функцию применить в конкретном случае?

Аватар пользователя validoll validoll 4 июля 2012 в 0:45

Берем термин таксономии от текущей ноды, получаем из него URL.
Далее через theme_menu_link() проверяем, совпадает ли ссылка в создаваемом элементе меню ссылкой на термин из ноды. Если не совпадает, то убираем из атрибута класса значение active_trail.
Завтра я может буду в силах написать это в коде, сейчас спать охота. Если не разберетесь, пишите.

Аватар пользователя Apelsinova Apelsinova 6 июля 2012 в 16:16

validoll wrote:
Берем термин таксономии от текущей ноды, получаем из него URL.
Далее через theme_menu_link() проверяем, совпадает ли ссылка в создаваемом элементе меню ссылкой на термин из ноды. Если не совпадает, то убираем из атрибута класса значение active_trail.
Завтра я может буду в силах написать это в коде, сейчас спать охота. Если не разберетесь, пишите.

Принцип поняла. Спасибо.
Осталось только выяснить, как его применить к текущей ситуации.