public MenuLinkTree::transform(array $tree, array $manipulators)
Applies menu link tree manipulators to transform the given tree.
Parameters
\Drupal\Core\Menu\MenuLinkTreeElement[] $tree: The menu tree to manipulate.
array $manipulators: The menu link tree manipulators to apply. Each is an array with keys:
- callable: a callable or a string that can be resolved to a callable by \Drupal\Core\Controller\ControllerResolverInterface::getControllerFromDefinition()
- args: optional array of arguments to pass to the callable after $tree.
Return value
\Drupal\Core\Menu\MenuLinkTreeElement[] The manipulated menu link tree.
Overrides MenuLinkTreeInterface::transform
File
- core/lib/Drupal/Core/Menu/MenuLinkTree.php, line 130
Class
- MenuLinkTree
- Implements the loading, transforming and rendering of menu link trees.
Namespace
Drupal\Core\Menu
Code
public function transform(array $tree, array $manipulators) { foreach ($manipulators as $manipulator) { $callable = $manipulator['callable']; $callable = $this->controllerResolver->getControllerFromDefinition($callable); // Prepare the arguments for the menu tree manipulator callable; the first // argument is always the menu link tree. if (isset($manipulator['args'])) { array_unshift($manipulator['args'], $tree); $tree = call_user_func_array($callable, $manipulator['args']); } else { $tree = call_user_func($callable, $tree); } } return $tree; }
Please login to continue.