Пример получения подпунктов пункта меню с uuid cc9519f7-66d5-4031-acd9-c6a4a0b00a39
:
/** @var \Drupal\Core\Menu\MenuLinkTreeInterface $menu_tree_builder */
$menu_tree_builder = \Drupal::menuTree();
$menu_tree_parameters = (new \Drupal\Core\Menu\MenuTreeParameters())
->setRoot('menu_link_content:cc9519f7-66d5-4031-acd9-c6a4a0b00a39')
->excludeRoot()
->setMaxDepth(1)
->onlyEnabledLinks();
/** @var \Drupal\Core\Menu\MenuLinkTreeElement[] $menu_tree_elements */
$menu_tree_elements = $menu_tree_builder->load('main', $menu_tree_parameters);
Будет работать как с пользовательскими пунктами меню, так и добавленными через yml файлы.
Написанное актуально для
Drupal 8
Комментарии
Ещё можно сразу передать параметры меню c помощью метода getCurrentRouteMenuTreeParameters. Тогда, если находишься на каком-то пункте меню будет работать корректно отображаться переменная пункта меню inActiveTrail .
Добавить комментарий