1

我在https://drupal.org/node/1178784搜索并找到了一个确切的问题,但那里的答案不起作用。

我正在使用 Drupal 7 建立一个网站。在里面,我有一个可能/可能没有另一个菜单的主菜单。我希望父主菜单与子菜单具有不同的类。

基本上,这是我现在拥有的 HTML:

<ul class='menu'>
 <li>
  <a>first</a>
  <ul class='menu'>
   <li>
    <a>sub-item</a>
   </li>
  </ul>
 </li>
</ul>

我想让它像这样:

<ul class='menu'>
 <li>
  <a>first</a>
  <ul class='sub'>
   <li>
    <a>sub-item</a>
   </li>
  </ul>
 </li>
</ul>

在 drupal 中有一个函数 theme_menu_tree 来更改里面的类<ul>,但是该函数将更改 ALL <ul>(根父级<ul>和所有子级<ul>)。还有一个函数 theme_menu_link 可以向<li>元素添加类,但在我的情况下这不是一个选项。

如果你想知道为什么我需要改变 children<ul>类,那是因为我想实现这个:http ://tympanus.net/codrops/2013/04/19/responsive-multi-level-menu/ 。该响应式多级菜单要求子<ul>级与其根父级具有不同的类。

我到处寻找,仍然没有找到任何解决方案。任何帮助将非常感激。

4

1 回答 1

2

you have to do something like this. I hope this will be helpfull and dont forget to change the path :

 function mbportal_menu_tree($variables) {

      if (preg_match("/\bchildren\b/i", $variables['tree'])){
       return '<ul class="menu nav nav-pills nav-stacked nav-bracket">' . $variables['tree']    . '</ul>';
      } else {
        return '<ul class="children">' . $variables['tree'] . '</ul>';
      }
  }
于 2014-06-10T09:48:01.000 回答