public function MenuLinkTree::transform in Drupal 9
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Menu/MenuLinkTree.php \Drupal\Core\Menu\MenuLinkTree::transform()
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 138
Class
- MenuLinkTree
- Implements the loading, transforming and rendering of menu link trees.
Namespace
Drupal\Core\MenuCode
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;
}