如何在Drupal 7中将dropdown CSS类添加到带子项的菜单中? (没有模块)

时间:2016-09-08 16:02:28

标签: php drupal drop-down-menu drupal-7

如何创建一个函数来扫描Drupal 7系统中的所有菜单项,如果有嵌套的ul,则将下拉CSS类添加到嵌套的ul并将自定义属性添加到父li容器中?我使用UIKIT会自动创建下拉列表。

这是我当前的菜单HTML输出:

<ul class="menu">
  <li class="first last expanded">
    <a title="" href="/node/add">Add content</a>
      <ul class="menu">
        <li class="first leaf">
            <a title="article" href="/node/add/article">Article</a></li>
         <li class="leaf">
            <a title="page" href="/node/add/page">Basic page</a></li>
  <li class="last leaf"><a title="blog" href="/node/add/blog">Blog entry</a></li>
      </ul>
  </li>
</ul>

这就是我需要的:

<ul class="menu">
  <li class="first last expanded" data-uk-dropdown>
    <a title="" href="/node/add">Add content</a>
      <ul class="menu uk-dropdown">
        <li class="first leaf">
            <a title="article" href="/node/add/article">Article</a></li>
         <li class="leaf">
            <a title="page" href="/node/add/page">Basic page</a></li>
  <li class="last leaf"><a title="blog" href="/node/add/blog">Blog entry</a></li>
      </ul>
  </li>
</ul>

我正在寻找最简单的方法。

1 个答案:

答案 0 :(得分:0)

您可以抓取自己的菜单树并根据需要写出菜单HTML。使用它,应该是这样的:

  $tree = menu_tree_all_data('menu_machine_name');

另外,如果我记得很清楚,如果只做你的活动(当前)菜单项不会被标记,并且为了标记它你还必须打电话(在获得$tree变量后):

  menu_tree_add_active_path($tree);

但是,如果我记得很清楚,只有安装“菜单块”模块...

才能使用该功能

在此之后打印$tree变量并组织您的代码以抓取您收集的递归菜单树。