修改主菜单Drupal 7上的HTML输出

时间:2012-11-02 03:40:35

标签: drupal-7

我正在开发自己的主题,我遇到了与我自己的课程生成菜单链接的问题,这里的菜单应该是:

  <ul class="dropdown">
    <li class="first current-menu-item menu-item-home menu-gray">
            <a href="index-2.html"><span>HOME</span></a>
    </li>
    <li class="menu-red">
            <a href="2cols-sidebar-right.html"><span>Fashion</span></a>
    </li>
    <li class="menu-orange">
            <a href="2cols-sidebar-right.html"><span>Design</span></a>
    </li>
  </ul>

在css上有类“menu-red”或“menu-orange”将是不同的颜色。这就是我在模板上打印主菜单的方式:

<?php
if ($main_menu):
       print theme('links__system_main_menu', 
                     array(
                          'links'          => $main_menu, 
                          'attributes'     => array(
                                                 'id' => 'main-menu', 
                                                 'class' => 'dropdown'
                                              )
                      )
                   ); 
endif;
?>

我试图在template.php上用我自己的方法覆盖links__system_main_menu函数,但仍然没有运气。

感谢您的帮助。

此致

@andriansandi

2 个答案:

答案 0 :(得分:1)

我从http://drupal.org/node/1033442#comment-5076932

得到了答案

下面:

function mytheme_links__system_main_menu($variables) {
  $html = "<div>\n";
  $html .= "  <ul>\n";  
  foreach ($variables['links'] as $link) {
    $html .= "<li>".l($link['title'], $link['path'], $link)."</li>";
  }
  $html .= "  </ul>\n";
  $html .= "</div>\n";

  return $html;
}

答案 1 :(得分:0)

我就是这样做的。

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