2016-10-23 6 views
0

Я пробовал этот кусок кода, который используется во многих примерах разработчиками drupal в моем шаблоне.php, но когда я распечатываю массив $ variables, он не содержит никакого ключа с именем «tree». Мне просто нужно добавить уль Li тегов к блоку меню, ноКак настроить theme_menu_tree в drupal 7?

function atsubtheme_menu_tree(&$variables) { 
return '<ul class="nav">' . $variables['tree'] . '</ul>'; 
} 

Это, как я оказал на page.tpl, используя следующий код, который имеет список ссылок под главным меню в меню Друпало

меню
<nav id="menu"> 
    <h2>Menu</h2> 
    <?php print render($page['menu_bar']); ?> 
    </nav> 

Мне просто нужно меню с тендерами в тегах ul li.

ответ

1

Да, я также fedup с меню Друпала визуализатора, поэтому я предпочитаю писать свои собственные визуализации (в page.tpl.php):

<ul class="nav"> 
<?php 
    $mymenu = menu_tree('main-menu'); 
    foreach($mymenu as $item){ 
     if(!empty($item['#title'])){ 
      $attributes = array('class'=>array('all', 'my', 'classes'), 'id'=>'an-eventual-id'); 
      print '<li>'.l($item['#title'],$item['#href'],array('attributes'=>$attributes)).'</li>'; 
     } 
    } 
?> 
</ul> 
0

Простой способ, который я наткнулся

function YOURTHEMENAME_menu_tree($variables) { 
return '<ul class="mycustmenu">' . $variables['tree'] . '</ul>'; 
//wrapping the menu in ul tags 
} 

function YOURTHEMENAME_menu_link($variables) { 

$element = $variables['element']; 
$sub_menu = ''; 

if ($element['#below']) { 
$sub_menu = drupal_render($element['#below']); 
//if your menu has a sub menu 
} 

$output = l($element['#title'], $element['#href'],$element['#localized_options']);    
return '<li>' . $output . $sub_menu . "</li>\n"; 
//wrapping each list item in li tags 
}