Навешиваю функционал Nice Menu на Menu Block
Изобрёл способ заставить меню, сделанное модулем menu_block вести себя как меню из nice_menus с помощью jQuery.
Для этого в в шаблоне page.tpl.php своей темы пишу следующий код:
$(document).ready(function(){ $(".menu-block-1 ul").removeClass('menu'); $(".menu-block-1").find('a').removeClass('expanded'); $(".menu-block-1").find('a').removeClass('leaf'); $(".menu-block-1").find('li').removeClass('leaf'); $(".menu-block-1").find('li').removeClass('expanded'); $(".menu-block-1 ul").addClass('nice-menu-down'); $(".menu-block-1 ul").addClass('nice-menu'); $(".menu-block-1 ul li:has(ul)").addClass('menuparent'); });
А теперь кратенько, как это работает:
1. Избавляюсь в пределах блока своего меню (с классом menu-block-1) от классов, присущих обычному меню. Это позволит не парится с css дважды и будут использованы стили от nice menus:
$(".menu-block-1 ul").removeClass('menu'); - убрать класс menu с корневого элемента меню
$(".menu-block-1").find('a').removeClass('expanded'); - почистить ссылки от паразитных классов
$(".menu-block-1").find('a').removeClass('leaf'); - почистить ссылки от паразитных классов
$(".menu-block-1").find('li').removeClass('leaf'); - почистить списки от присущих меню классов
$(".menu-block-1").find('li').removeClass('expanded'); - почистить списки от присущих меню классов
2. Следом добавляю на свежепочищенный список menu block классы от nice menus:
$(".menu-block-1 ul").addClass('nice-menu-down'); - говорю что меню выпадающее вниз
$(".menu-block-1 ul").addClass('nice-menu'); - и что оно теперь nice menu
$(".menu-block-1 ul li:has(ul)").addClass('menuparent'); - для списков, которые должны раскрываться (содержат внутри ещё список) назначаю соответствующий класс.
3. Готово.
Естественно это решение работает только для посетителей, у которых включен JavaScript. Но поскольку клиенты без оного явные извращенцы, то их тупо игнорирую. А поисковикам пока глубоко фиолетово какой класс назначен на меню.
Работа над ошибками.
Для красоты решение стоит вынести в отдельный JavaScript-файл и подключить его к теме методом drupal_add_js(drupal_get_path('theme', 'YOUR_THEME_NAME') . '/YOUR_FILE_NAME.js', 'theme');






Обзор AgeStar NSB3AS1T NAS для 3.5" SATA HDD
Комментариев и оценок: 183
Обзор AgeStar NSB3AS1T NAS для 3.5" SATA HDD - сетевого хранилища на базе 3.5" SATA HDD с возможностью подключения по USB. 10/100 Mbit, SATA 3.5"
AgeStar FUBCP USB2.0 to IDE/SATA Adapter
Комментариев и оценок: 93
AgeStar FUBCP - подключение IDE или SATA 2.5",3.5" или 5.25" устройств через USB
Обзор жесткого диска HDD 2ТБ Western Digital WD20EARS
Комментариев и оценок: 73
Краткий обзор жесткого диска HDD 2ТБ Western Digital WD20EARS-00MVWB0 с фотографиями и тестами производительности.Многофункциональное устройство Canon LaserBase MF3228
Комментариев и оценок: 52
Многофункциональное устройство Canon LaserBase MF3228. Описание, впечатления от работы, ссылка на драйвера.
AgeStar SUB2O1 2.5" SATA External Enclosure
Комментариев и оценок: 51
Обзор с картинками и тестами AgeStar SUB201 - внешней USB коробки для 2.5" SATA винчестеров.