Добавление класса к меню обычно делается с помощью следующей функции:
function hook_menu_tree__main_menu($variables) { $list = ''; if(variable_get('main_menu_list') && variable_get('main_menu_list') == 1) { $list = ' listmenu'; } else { $list = ''; } return '<ul class="menu' . $list . '">' . $variables['tree'] . '</ul>'; }
Однако если меню многоуровневое, то в таком случае указанный класс добавляется ко всем уровням меню, что не совсем красиво. Чтобы этого избежать (удалить класс во внутренних пунктах меню, или заменить его на какой-либо другой), необходимо выполнить следующий код:
/** * Implements theme_menu_link(). */ function hook_menu_link(array $variables) { $element = $variables['element']; $sub_menu = ''; if ($element['#below']) { // Wrap in dropdown-menu. unset($element['#below']['#theme_wrappers']); $sub_menu = '<ul class="menu">' . drupal_render($element['#below']) . '</ul>'; } $output = l($element['#title'], $element['#href'], $element['#localized_options']); return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n"; }
Заменив во второй функции класс у списка, мы поменяем его для всех дочерних элементов меню.
Разделы
- Войдите, чтобы оставлять комментарии