首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从另一个菜单中的一个菜单加载菜单项

从另一个菜单中的一个菜单加载菜单项
EN

Drupal用户
提问于 2018-06-13 07:31:21
回答 1查看 257关注 0票数 2

我想从其他菜单的主菜单中加载菜单项。我读过十几个例子,但我根本无法把它渲染出来。

这是我来自my_theme.theme的代码

代码语言:javascript
运行
复制
function my_theme_menu__secondary(&$menu, &$menu_name, &$suggestions) {
  $menu_name = 'main';
  $menu_tree = \Drupal::menuTree();
  $parameters = new \Drupal\Core\Menu\MenuTreeParameters();
  $parameters->onlyEnabledLinks();
//  $parameters->setMinDepth(2)();
//  $parameters->setMaxDepth(2)();

  $tree = $menu_tree->load($menu_name, $parameters);
  $manipulators = array(
    array('callable' => 'menu.default_tree_manipulators:checkAccess'),
    array('callable' => 'menu.default_tree_manipulators:generateIndexAndSort'),
  );

  $tree = $menu_tree->transform($tree, $manipulators);

  $list = [];

  foreach ($tree as $item) {
    $title = $item->link->getTitle();
    $url = $item->link->getUrlObject();
    $list[] = Drupal\Core\Link::fromTextAndUrl($title, $url);
  }

  return $list;
}

这是我的menu--secondary.html.twig

代码语言:javascript
运行
复制
{% import _self as menus %}

{{ menus.menu_links(items, attributes, 0) }}

{% macro menu_links(items, attributes, menu_level) %}
  {% import _self as menus %}
  {% if list %}
    {% for item in list %}
      {%
        set item_classes = [
          'expanded',
          'dropdown',
          item.in_active_trail ? 'active',
        ]
      %}
      {% if menu_level == 0  %}
        
        {{ item.title }}
        
      {% endif %}
    {% endfor %}
  {% endif %}
{% endmacro %}

如有任何帮助,我们将不胜感激:)

EN

回答 1

Drupal用户

发布于 2018-08-22 06:18:54

您可以添加新的模块细枝调整,在呈现模块菜单后,在模板上进行Twig调整。

票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/263159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档