hook_contextual_links_alter(array &$links, $group, array $route_parameters)
Alter contextual links before they are rendered.
This hook is invoked by \Drupal\Core\Menu\ContextualLinkManager::getContextualLinkPluginsByGroup(). The system-determined contextual links are passed in by reference. Additional links may be added and existing links can be altered.
Each contextual link contains the following entries:
- title: The localized title of the link.
- route_name: The route name of the link.
- route_parameters: The route parameters of the link.
- localized_options: An array of URL options.
- (optional) weight: The weight of the link, which is used to sort the links.
Parameters
array $links: An associative array containing contextual links for the given $group, as described above. The array keys are used to build CSS class names for contextual links and must therefore be unique for each set of contextual links.
string $group: The group of contextual links being rendered.
array $route_parameters.: The route parameters passed to each route_name of the contextual links. For example:
1 | array ( 'node' => $node ->id()) |
See also
\Drupal\Core\Menu\ContextualLinkManager
Related topics
- Hooks
- Define functions that alter the behavior of Drupal core.
- Menu system
- Define the navigation menus, local actions and tasks, and contextual links.
File
- core/lib/Drupal/Core/Menu/menu.api.php, line 388
- Hooks and documentation related to the menu system and links.
Code
1 2 3 4 5 6 7 8 | function hook_contextual_links_alter( array & $links , $group , array $route_parameters ) { if ( $group == 'menu' ) { // Dynamically use the menu name for the title of the menu_edit contextual // link. $menu = \Drupal::entityManager()->getStorage( 'menu' )->load( $route_parameters [ 'menu' ]); $links [ 'menu_edit' ][ 'title' ] = t( 'Edit menu: @label' , array ( '@label' => $menu ->label())); } } |
Please login to continue.