Как известно, в настоящий момент 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"; }
Добавить комментарий