Добавляем уникальный класс для ссылок в пользовательском меню Drupal 7
18:27, 20/03/2018
Автор https://api.drupal.org/comment/13834#comment-13834 предложил решение на мой взгляд несколько мудреное, т.к. не всегда целесообразно производить столько манипуляций для простого добавления уникальных классов к ссылкам пользовательских меню в Drupal 7.
Работаем с template.php
Полезная информация
theme_menu_tree($variables)
theme_menu_link(array $variables)
// Show variables for the menu_link array function YOURTHEMENAME_menu_link(array $variables) { // return print_r($variables['element']); return print '' . print_r($variables['element']) . print ''; }
Условимся на том, что нам необходимо добавить в обертку меню свой класс и присвоить к каждому пункту уникальный класс.
Далее пишем функцию для препроцесса обертки меню если необходимо убрать\добавить свои стили:
function YOURTHEMENAME_menu_tree__menu_NAME(&$variables) { return ''; }
Что бы не мудрить с уникальностью имен воспользуемся теми, что уже есть в базе — mlid
function YOURTHEMENAME_menu_link__menu_NAME(array $variables) { $element = $variables['element']; $sub_menu = ''; // Here we put our uniq class for menu links $element['#attributes']['class'][] = 'my-uniq-class-' . $element['#original_link']['mlid'] . ''; if ($element['#below']) { $sub_menu = drupal_render($element['#below']); } $output = l($element['#title'], $element['#href'], $element['#localized_options']); return '
Комментарии