我在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>
内的类,但该函数将更改所有<ul>
(根父<ul>
和所有子<ul>
)。
还有一个函数theme_menu_link可以将类添加到<li>
元素,但在我的情况下这不是一个选项。
如果你想知道为什么我需要更改子<ul>
类,那是因为我想实现这个:http://tympanus.net/codrops/2013/04/19/responsive-multi-level-menu/。响应式多级菜单要求子级<ul>
具有与其根级父级不同的类。
我到处寻找,但仍未找到任何解决方案。 任何帮助将不胜感激。
答案 0 :(得分:2)
你必须做这样的事情。 我希望这会有所帮助,不要忘记改变路径:
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>';
}
}