I want to load the menu items from the main menu in a other menu. I've read a dozen examples but I can't get it to render the items at all.
Here's my code from my_theme.theme
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;
}
Heres my menu--secondary.html.twig
{% 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 %}
<li{{ item.attributes.addClass(item_classes) }}>
<a href="{{ item.url }}">{{ item.title }}</a>
</li>
{% endif %}
{% endfor %}
{% endif %}
{% endmacro %}
Any help is appreciated :)