Почему не работает theme_preprocess_menu_link?

434
01 января 2017, 20:26

Требуется сделать так, чтобы в теме Drupal 7 подсвечивался активный пункт меню, для этого нужно задать класс active тегу <li> вместо <a>. По определёным причинам CSS я менять не могу. Пытаюсь это сделать с помощью theme_preprocess_menu_link():

function mytheme_preprocess_menu_link (&$variables) {
$element = $variables['element'];
$attributes = $element['#attributes'];
$attributes['class'] = array_unique($attributes['class']);
$classes = $attributes['class'];
if (in_array('active-trail', $classes) || ($element['#href'] == '<front>' && drupal_is_front_page())) {
  $element['#attributes']['class'][] = 'active';
  }
}
function mytheme_menu_link__main_menu ($variables) {
$element = $variables['element'];
$sub_menu = '';
if ($element['#below']) {
  $sub_menu = drupal_render($element['#below']);
  }
$output = l($element['#title'], $element['#href']);
return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}

Результата нет - по прежнему данный класс устанавливается только тегу a. Подскажите, пожалуйста, как добавить класс правильно.

READ ALSO
Запись значения из textarea в txt файлы

Запись значения из textarea в txt файлы

ЗдравствуйтеУ меня есть на странице 3 поля textarea

454
Доступ к static protected свойству в php

Доступ к static protected свойству в php

Есть базовый класс View, в котором лежит protected static свойство:

542
AES Python &lt;-&gt; PHP (Chris Veness) [требует правки]

AES Python <-> PHP (Chris Veness) [требует правки]

Здравствуйте, существует класс для шифрования/дешифрования по алгоритму AES от Chris VenessНа всякий случай привиду конкретные файлы php: AES

531