如何添加下拉CSS类的菜单与孩子在Drupal 7?(没有模块)


How to add dropdown CSS class to menus with children in Drupal 7? (without modules)

我如何创建一个函数来扫描Drupal 7系统中的所有菜单项,如果有一个嵌套的ul,向嵌套的ul添加下拉CSS类,并向父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>

您可以自己抓取菜单树,并根据自己的喜好编写菜单HTML。使用and应该像这样:

  $tree = menu_tree_all_data('menu_machine_name');

另外,如果我没记错的话,如果你只做你的活动(当前)菜单项不会以任何方式被标记,并且为了标记它,你还必须调用(在获得$tree变量之后):

  menu_tree_add_active_path($tree);

但是,如果我没记错的话,这个功能只有在你安装"菜单块"模块时才可用…

在此之后打印出$tree变量并组织你的代码来递归地抓取你收集的菜单树