Темизация конечных ссылок меню в Drupal 7
Как известно, в настоящий момент theme_link() в друпал name suggestions не имеет, меняется только в пределах темы сразу на все меню, и “изнутри” этой функции понять кто её вызвал нет никакой возможности, так что даже шанса воспользоваться цепочкой элегантных if…then нас лишили. Но, в недрах drupal.org было найдено вполне логичное и работающее решение вынести эту функцию в предыдущую, отлично поддающуюся темизации - theme_menu_link(), и я его довёл до чуть более логичного финала :
//уже заточенная под мой блок функция theme_menu_link():
function themename_menu_link__menu_block__2($variables){
$element = $variables['element'];
$sub_menu = '';
if ($element['#below']) {
$sub_menu = drupal_render($element['#below']);
}
$titre= $element['#title'];
//то что мне нужно было добавить к ссылке - <span><i>
$element['#title']='<span><i>'.$titre. '</i></span>';
//Автор творит магию с локализацией l() , у меня не было настолько многоязычных сайтов, но может вам это понадобится, т.ч. оставляю:
$element['#localized_options'] += array(
'attributes' => array(),
'html' => TRUE,
);
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}