Прошу помочь разобраться с темизацией меню.
Суть в следующем. UL "submenu" наследует класс основного меню "ul_menu", а мне нужно вложенным UL назначать другие классы.
Делаю так:
<?php
function vkuslada_menu_tree__menu_production($variables)
{
return '<nav class="menu"><div> <ul class="ul_menu">' . $variables['tree'] . '</ul></div></nav>';
}
function
vkuslada_menu_link__menu_production(array $variables)
{
$element = $variables['element'];
$sub_menu = '';
if ($element['#below']) {
$sub_menu = drupal_render($element['#below']);
$sub_menu = '<div class="submenu">' . $sub_menu . '</div>';
}
$output = l($element['#title'], $element['#href']);
return '<li>' . $output . $sub_menu . "</li>\n";
}
?>
Результат:
а должно быть так
У самого реализовать это не получается,поэтому прошу помочь
Комментарии
в template.php (само собой это пример, не решение)
return $variables['tree'];
}
function тема_menu_link__menu_menu_768(array $variables) {
$element = $variables['element'];
$sub_menu = '';
$sub='';
if ($element['#below']) {
foreach($element['#below'] as $key=>$el){
if(is_numeric($key)){
$element['#below'][$key]['#theme'] = 'menu_link__menu_menu_768_inner';
}
}
$sub_menu = drupal_render($element['#below']);
$sub='<ul class="submenu"><div class="me">'.$sub_menu .'<div class="ind"></div></div></ul>';
}
$output = l($element['#title'], $element['#href']);
return '<li>' . $output .$sub."</li>\n";
}
function тема_menu_link__menu_menu_768_inner($variables) {
$element = $variables['element'];
$sub_menu = '';
if ($element['#below']) {
$sub_menu = drupal_render($element['#below']);
}
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
return '<li><span><img src="/sites/all/themes/tvi/images/icon/'.$element['#title'].'.png"></span>' . $output . $sub_menu . "</li>\n";
}
Спасибо за ответ. Я попробовал. Разметку выводит, а вот само подменю нет.
Проверьте пожалуйста, может где не точность
Спасибо, все заработало, я допустил ошибку в названии функции