nik_neman
@nik_neman
php-junior

Задать класс для li и a в меню?

Здравствуйте.
Вывожу меню вот в шаблоне вот так:
print theme('links', array('links' => menu_navigation_links('menu-company'), 'attributes' => array('class'=> array('links', 'footer-nav footer__nav')) ));

Меню выводится. Теперь нужно добавить класс для тегов 'li' and 'a'.
Пробовал вот так в template.php
function mytheme_menu_link(array $variables) {
    $element = $variables['element'];
    $sub_menu = '';

    if ($element['#below']) {
        $sub_menu = drupal_render($element['#below']);
    }
    $element['#attributes']['class'][] = 'footer-nav__item';
    $output = l($element['#title'], $element['#href'], $element['#localized_options']);
    return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}

Но не вышло. Пробовал сделать debug в этой функции, но безрезультатно. Такое чувство что функция не срабатывает.
Подскажите пожалуйста в чем может быть дело.
Drupal v7. Дочерних элементов в меню нет.
Заранее спасибо!
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
menu_attributes не вариант?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
в шаблон
<?php
$menu = menu_tree('mymenu');
echo render($menu);
?>

в template.php
function mytheme_menu_link(array $variables) {
    $element = $variables['element'];
    $sub_menu = '';

    if ($element['#below']) {
        $sub_menu = drupal_render($element['#below']);
    }
    $element['#attributes']['class'][] = 'footer-nav__item';
    $output = l($element['#title'], $element['#href'], $element['#localized_options']);
    return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}


не забываем менять mymenu и mytheme
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы