Mon, 04/02/2013 - 13:34
Сообщение:
Здравствуйте!
Хочется сделать такую вещь - вверху
горизонтальное меню, а сбоку меню
выводящее подразделы верхнего. Как это
сделать я знаю - с помощью модуля menu block. Но
поставили задачу при выборе пункта меню в
верхнем горизонтальном меню сделать так.
чтобы этот пункт менял цвет и становился
первым в верхнем меню, а во втором уже
раскрывались его подразделы. Буду
благодарен за ответы. Через гугл искал,
пусто.
Версия:
Менять цвет текст ссылки активного пункта меню можно просто в style.css темы. Например:
a.active-trail {
color: white;
}
Tue, 26/03/2013 - 13:13
Если горизонтальное меню выводится через модуль Menu Block, тогда в настройках блока есть соответствующая настройка.
- Заходим в настройки блока.
- Кликаем таб "Advanced Options" (Дополнительные настройки)
- Ищем чекбокс "Sort menu tree by the active menu item’s trail." -- "Сортировка меню по активному элементу".
Если нету возможности выводить меню через Menu Block. Тогда можно вывести меню в програмно созданный блок:
- Создаем блок.
- Добавляем:
hook_block_view_alter()(&$data, $block) { ..... $menu = menu_tree('название_меню'); // активный элемент меню $menu_ac_path = menu_link_get_preferred(NULL, 'название_меню'); // Копируем активный элемент из дерева меню $menu_ac_copy = $menu[$menu_ac_path['mlid']]; dpm($menu_ac_path['mlid']); // Убираем элемент со старого места unset($menu[$menu_ac_path['mlid']]); // Записываем в начало активный элемент. $out_tree = array ($menu_ac_path['mlid'] => $menu_ac_copy) + $menu; $block['content'] = drupal_render($out_tree); ..... return $block; }
Здесь - название_меню - это машинное имя меню.
Tue, 26/03/2013 - 13:06