2011-08-04 2 views
1

Для простоты предположим, что я просто хочу добавить «активный» класс ко всем ссылкам в главном меню.theme_links для псевдонимов

Приведенный ниже код работает с неаудированными страницами. Однако, когда я запускаю узел с псевдонимом, активный класс не применяется.

Я действительно проверял, что код запускается.

Любые мысли о том, как добавить класс в ссылки главного меню при просмотре узла с псевдонимом url?

function mytheme_links__system_main_menu(array $variables) { 

    foreach ($variables['links'] as $key => $link) { 
    $variables[$key]['attributes']['class'][] = 'active'; 
    } 

    return theme_links($variables); 
} 
+0

является то, что код в ваш 'template.php' файл? или зарегистрировано через 'hook_theme' в модуле? – nmc

+0

Да, этот код находится в моем файле template.php. – Coder1

+1

hmmn, не удалось воспроизвести вашу проблему. Хотя мне пришлось изменить код в цикле for на '$ variables ['links'] [$ key] ['attributes'] ['class'] [] = 'pizza';', чтобы заставить его применить класс к каждая ссылка в главном меню. – nmc

ответ

0

Если вы используете ссылки в главном меню, вам лучше будет использовать контекстный модуль вместо написания кода самостоятельно. Это сэкономит время и головную боль тестирования и позволит вам и вашему клиенту редактировать активные ссылки через пользовательский интерфейс вместо жесткого кодирования классов.

Проверьте это: http://drupal.org/project/context

+1

Спасибо за предложение. Я действительно хотел понять, что нужно сделать, чтобы мой код работал. – Coder1

Смежные вопросы