function DefaultMenuLinkTreeManipulators::collectNodeLinks
Same name in other branches
- 9 core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php \Drupal\Core\Menu\DefaultMenuLinkTreeManipulators::collectNodeLinks()
- 10 core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php \Drupal\Core\Menu\DefaultMenuLinkTreeManipulators::collectNodeLinks()
- 11.x core/lib/Drupal/Core/Menu/DefaultMenuLinkTreeManipulators.php \Drupal\Core\Menu\DefaultMenuLinkTreeManipulators::collectNodeLinks()
Collects the node links in the menu tree.
Parameters
\Drupal\Core\Menu\MenuLinkTreeElement[] $tree: The menu link tree to manipulate.
array $node_links: Stores references to menu link elements to effectively set access.
Return value
\Drupal\Core\Menu\MenuLinkTreeElement[] The manipulated menu link tree.
1 call to DefaultMenuLinkTreeManipulators::collectNodeLinks()
- DefaultMenuLinkTreeManipulators::checkNodeAccess in core/
lib/ Drupal/ Core/ Menu/ DefaultMenuLinkTreeManipulators.php - Performs access checking for nodes in an optimized way.
File
-
core/
lib/ Drupal/ Core/ Menu/ DefaultMenuLinkTreeManipulators.php, line 176
Class
- DefaultMenuLinkTreeManipulators
- Provides a couple of menu link tree manipulators.
Namespace
Drupal\Core\MenuCode
protected function collectNodeLinks(array &$tree, array &$node_links) {
foreach ($tree as $key => &$element) {
if ($element->link
->getRouteName() == 'entity.node.canonical') {
$nid = $element->link
->getRouteParameters()['node'];
$node_links[$nid][$key] = $element;
// Deny access by default. checkNodeAccess() will re-add it.
$element->access = AccessResult::neutral();
}
if ($element->hasChildren) {
$this->collectNodeLinks($element->subtree, $node_links);
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.