Темизация конечных ссылок меню в 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";
}

Добавить комментарий

Plain text

  • No HTML tags allowed.
  • Строки и параграфы переносятся автоматически.

Последние комментарии

Вход в систему

Powered by Drupal