Drupal 7-为嵌套菜单元素分配自定义类

Drupal 7-为嵌套菜单元素分配自定义类,drupal,menu,Drupal,Menu,我正在尝试设置菜单主题,以更改默认的UL类。到目前为止,我正在使用以下函数: function theme_menu_tree($variables){ return '<ul class="my-class">' . $variables['tree'] . '</ul>'; } 函数主题菜单树($variables){ 返回“”。$variables['tree']”。; } 这非常有效,但我需要在父项中对UL应用不同的类。现在我明白了 <ul clas

我正在尝试设置菜单主题,以更改默认的UL类。到目前为止,我正在使用以下函数:

function theme_menu_tree($variables){
  return '<ul class="my-class">' . $variables['tree'] . '</ul>';
}
函数主题菜单树($variables){
返回“
    ”。$variables['tree']”。
; }
这非常有效,但我需要在父项中对UL应用不同的类。现在我明白了

<ul class="my-class">
  <li class="dropdown">Item
    <ul class="my-class">
      <li>Link1</li>
      <li>Link2</li>
    </ul>
  </li>
</ul>
  • 项目
    • 链接1
    • 链接2

如何针对第二个UL使用主题菜单树函数为其提供不同的类?

为什么需要覆盖菜单类?为什么不查看菜单所在的主体、部分或块的CSS id或类,并使用您所在位置的CSS id或类来覆盖它

例如,我使用此选项覆盖块中叶菜单项的默认外观:

#block-menu-menu-top-navigation ul li.leaf
{
  list-style-type: none;
  list-style-image: none;
}

在Drupal中,没有默认的UL类。有主题函数(可通过以theme_u1;开头的函数名识别)和模板(可通过以.tpl.php结尾的文件名识别)。他们都没有对用于呈现数据的HTML元素做出任何假设。特别是,Drupal没有假设模板或主题函数生成的元素应该应用哪些类。

也许您正在寻找模块。它允许您定义CSS类和ID