doumaikuang4202
2016-10-23 12:22
浏览 66
已采纳

如何在drupal 7中自定义theme_menu_tree?

I have tried this piece of code which is used in a lot of examples by drupal developers, in my template.php , but when I print out the $variables array , it doesnot contain any key named 'tree'. I just need to add ul li tags to my menu block but

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

This is how I have rendered the menu on page.tpl using the following code, which has a list of links under main menu in drupal menus

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

I just need therendered menu in ul li tags.

图片转代码服务由CSDN问答提供 功能建议

我已经尝试过这段代码,drupal开发人员在我的template.php中使用了很多例子。 ,但是当我打印出$ variables数组时,它不包含任何名为'tree'的键。 我只需要在我的菜单块中添加ul li标签,但

  function atsubtheme_menu_tree(&amp; $ variables){
return'&lt; ul class =“nav”&gt;'  。  $ variables ['tree']。  '&lt; / ul&gt;'; 
} 
   
 
 

这是我使用以下代码在page.tpl上呈现菜单的方式,该代码包含 drupal菜单中主菜单下的链接

 &lt; nav id =“menu”&gt; 
&lt; h2&gt;菜单&lt; / h2&gt; 
&lt;?php print render  ($页[ 'MENU_BAR']);  ?&gt; 
&lt; / nav&gt;  
   
 
 

我只需要在ul li标签中找到收到的菜单。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • douzheng0702 2016-10-24 15:07
    最佳回答

    Yeah, i'm also fedup with the menu drupal renderer, that's why i prefer to write my own render (in 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>
    
    评论
    解决 无用
    打赏 举报
查看更多回答(1条)