В общем я создал в Drupal 7 два новых меню, назвал их about и news. Проблема в том что в этих меню у li при нажатии на него не добавляется класс активного элемента! Поэтому я не могу применить к нему стили которые должны работать именно в активном li!
Я знаю что нужно в template переопределить вывод, но не знаю как! Именно решение такой задачи я здесь не нашел (копался 4 часа), есть похожие, но не такие.
Он сейчас выдает такой код:
<li class="leaf"><a title="" href="/jobs">Вакансии</a></li>
<li class="leaf"><a title="" href="/order_tickets">Заказать билеты</a></li>
<li class="leaf"><a title="" href="/history">История</a></li>
<li class="leaf"><a title="" href="/partners_and_sponsors">Партнеры и спонсоры</a></li>
<li class="last leaf"><a title="" href="/artistic_director">Художественное руководство</a></li>
</ul>
А нужно чтобы при нажатии например на Вакансии у его li добавлялся класс например active, вот так:
<li class="leaf active"><a title="" href="/jobs">Вакансии</a></li>
<li class="leaf"><a title="" href="/order_tickets">Заказать билеты</a></li>
<li class="leaf"><a title="" href="/history">История</a></li>
<li class="leaf"><a title="" href="/partners_and_sponsors">Партнеры и спонсоры</a></li>
<li class="last leaf"><a title="" href="/artistic_director">Художественное руководство</a></li>
</ul>
Уважаемые Друпальчане помогите пожалуйста, Я новичок плохо разбираюсь еще!!!
Комментарии
по умолчанию должен быть класс уже. Смотрите внимательно
Там нет класса, я привел код в вопросе посмотрите пожалуйста!
Народ помогите пожалуйста!!!!!!!!!!!!!!1
Попробуй поставь какой нибудь модуль меню. Например, nice menu. У меня тоже проблема была такая, но я решил через CSS просто(так как 2 пункта было).
Самое интересное, что с главным меню такая штука как класс active работает, а создал новое-уже нет.
Не хочется модули ставить, может темплетовское решение есть)
Можно сделать так
{loop name="terms"}
<li {if="'taxonomy/term/' . $value.tid == $_GET['q']"}class = "active"{/if} >
{function="l($value.name, 'taxonomy/term/' . $value.tid)"}
</li>
{/loop}
</ul>
Код из ядра
if (($path == $_GET['q'] || ($path == '<front>' && drupal_is_front_page())) &&
(empty($options['language']) || $options['language']->language == $language_url->language)) {
$options['attributes']['class'][] = 'active';
}
Его куда вставлять и как? )))
А куда вы хотите вставлять ? модуль, шаблон, php text. Я бы в вашем случае вставил пару js строк намного проще.
Ну в template наверно только не знаю как! Раньше я вставлял их с помощью jquery, но пора узнать как нормально это делать)
Ну искать место куда вам надо вставлять я не буду. Ищите шаблоны меню в /modules. Экспериментируйте. Почитайте про переопределение шаблонов. Если надо могу js написать.
Да нет смысла здесь что то искать и читать, больше года сижу не разу ответ на свой вопрос я здесь не нашел.
Все слишком мудрено и все отправляют друг друга погуглить!!!!
Помогите народ!!!!!!!!!!!! Может есть готовое решение!!!!!!!!!!!1
Совет такой:
Нет к большому сожалению классов нет. Модули стандартные, еще ничего не устанавливал. Переделываю тему bartik, ее template я не трогал. Хорошо была в шестой версии active был, а здесь нет!!! Модуль как я понимаю Вы говорите о Menu position, но его поставить не получится, так как у меня версия 7.10, а ему нужен 7.11. Сайт на localhost.
ТАК ОБНОВИТЕ. Тем более что на локальном сервере еще все.
Нет ребята и после обновления ничего не поменялось, только сайт испортил!!! Что делать?
Я извиняюсь паника, все хорошо))) Ща попробую модуль подключить
Народ всем огромное спасибо! Все получилось, Вы меня просто спасли, даже не знаю как Вас благодарить!!!!!!
Появился еще один вопрос.
После установки menu position все работает, но как теперь сделать чтобы при нажатии по ссылке на главном меню, в открывшемся меню была активная первая ссылка и соответственно показывалась его страница?
Вопрос решается очень просто!
Вам нужно в подменю добавить ту же ссылку что и на главной меню.
Например, в моем случае есть ссылка в главном меню О театре. У него есть подменю со ссылками История, Администрация и т.д.
Чтобы первая ссылка подменю История (и соответственно показывала его содержимое) была активной при нажатии на О театре.
Нужно:
В подменю добавить (или изменить существующий) пункт меню, и поставить следующие настройки с Menu link title История, и в Path добавить ссылку на О театре (в моем случае был alias about), а также указать родительский элемент Parent link (имя вашего подменю).
Вот и получается что когда Вы нажимаете на О театре, в адресной строке появляется путь схожий с путем элемента подменю и он активируется и открывает свое содержимое.
Надеюсь я понятно написал и ничего сам не перепутал!
Ну если что спрашивайте чем смогу помогу!
С уважением maga!!!))))