function hook_menu_local_tasks_alter

Same name in other branches
  1. 9 core/lib/Drupal/Core/Menu/menu.api.php \hook_menu_local_tasks_alter()
  2. 8.9.x core/lib/Drupal/Core/Menu/menu.api.php \hook_menu_local_tasks_alter()
  3. 10 core/lib/Drupal/Core/Menu/menu.api.php \hook_menu_local_tasks_alter()
  4. 11.x core/lib/Drupal/Core/Menu/menu.api.php \hook_menu_local_tasks_alter()

Alter tabs and actions displayed on the page before they are rendered.

This hook is invoked by menu_local_tasks(). The system-determined tabs and actions are passed in by reference. Additional tabs or actions may be added, or existing items altered.

Each tab or action is an associative array containing:

  • #theme: The theme function to use to render.
  • #link: An associative array containing:
    • title: The localized title of the link.
    • href: The system path to link to.
    • localized_options: An array of options to pass to l().
  • #active: Whether the link should be marked as 'active'.

Parameters

$data: An associative array containing:

  • actions: An associative array containing:

    • count: The amount of actions determined by the menu system, which can be ignored.
    • output: A list of of actions, each one being an associative array as described above.
  • tabs: An indexed array (list) of tab levels (up to 2 levels), each containing an associative array:

    • count: The amount of tabs determined by the menu system. This value does not need to be altered if there is more than one tab.
    • output: A list of of tabs, each one being an associative array as described above.

$router_item: The menu system router item of the page.

$root_path: The path to the root item for this set of tabs.

Related topics

3 functions implement hook_menu_local_tasks_alter()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

blog_menu_local_tasks_alter in modules/blog/blog.module
Implements hook_menu_local_tasks_alter().
forum_menu_local_tasks_alter in modules/forum/forum.module
Implements hook_menu_local_tasks_alter().
node_menu_local_tasks_alter in modules/node/node.module
Implements hook_menu_local_tasks_alter().
1 invocation of hook_menu_local_tasks_alter()
menu_local_tasks in includes/menu.inc
Collects the local tasks (tabs), action links, and the root path.

File

modules/system/system.api.php, line 1451

Code

function hook_menu_local_tasks_alter(&$data, $router_item, $root_path) {
    // Add an action linking to node/add to all pages.
    $data['actions']['output'][] = array(
        '#theme' => 'menu_local_task',
        '#link' => array(
            'title' => t('Add new content'),
            'href' => 'node/add',
            'localized_options' => array(
                'attributes' => array(
                    'title' => t('Add new content'),
                ),
            ),
        ),
    );
    // Add a tab linking to node/add to all pages.
    $data['tabs'][0]['output'][] = array(
        '#theme' => 'menu_local_task',
        '#link' => array(
            'title' => t('Example tab'),
            'href' => 'node/add',
            'localized_options' => array(
                'attributes' => array(
                    'title' => t('Add new content'),
                ),
            ),
        ),
        // Define whether this link is active. This can be omitted for
        // implementations that add links to pages outside of the current page
        // context.
'#active' => $router_item['path'] == $root_path,
    );
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.