| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 | <?php/** * @file * API for the Drupal menu system. *//** * @addtogroup menu * @{ */use Drupal\Component\Utility\SafeMarkup;use Drupal\Core\Render\Element;/** * Prepares variables for single local task link templates. * * Default template: menu-local-task.html.twig. * * @param array $variables *   An associative array containing: *   - element: A render element containing: *     - #link: A menu link array with 'title', 'url', and (optionally) *       'localized_options' keys. *     - #active: A boolean indicating whether the local task is active. */function template_preprocess_menu_local_task(&$variables) {  $link = $variables['element']['#link'];  $link += [    'localized_options' => [],  ];  $link_text = $link['title'];  if (!empty($variables['element']['#active'])) {    $variables['is_active'] = TRUE;    // Add text to indicate active tab for non-visual users.    $active = SafeMarkup::format('<span class="visually-hidden">@label</span>', ['@label' => t('(active tab)')]);    $link_text = t('@local-task-title@active', ['@local-task-title' => $link_text, '@active' => $active]);  }  $link['localized_options']['set_active_class'] = TRUE;  $variables['link'] = [    '#type' => 'link',    '#title' => $link_text,    '#url' => $link['url'],    '#options' => $link['localized_options'],  ];}/** * Prepares variables for single local action link templates. * * Default template: menu-local-action.html.twig. * * @param array $variables *   An associative array containing: *   - element: A render element containing: *     - #link: A menu link array with 'title', 'url', and (optionally) *       'localized_options' keys. */function template_preprocess_menu_local_action(&$variables) {  $link = $variables['element']['#link'];  $link += [    'localized_options' => [],  ];  $link['localized_options']['attributes']['class'][] = 'button';  $link['localized_options']['attributes']['class'][] = 'button-action';  $link['localized_options']['set_active_class'] = TRUE;  $variables['link'] = [    '#type' => 'link',    '#title' => $link['title'],    '#options' => $link['localized_options'],    '#url' => $link['url'],  ];}/** * Returns an array containing the names of system-defined (default) menus. */function menu_list_system_menus() {  return [    'tools' => 'Tools',    'admin' => 'Administration',    'account' => 'User account menu',    'main' => 'Main navigation',    'footer' => 'Footer menu',  ];}/** * Collects the local tasks (tabs) for the current route. * * @param int $level *   The level of tasks you ask for. Primary tasks are 0, secondary are 1. * * @return array *   An array containing *   - tabs: Local tasks for the requested level. *   - route_name: The route name for the current page used to collect the local *     tasks. * * @see hook_menu_local_tasks_alter() * @see https://www.drupal.org/node/2544940 * * @deprecated in Drupal 8.0.0, will be removed before Drupal 9.0.0. */function menu_local_tasks($level = 0) {  /** @var \Drupal\Core\Menu\LocalTaskManagerInterface $manager */  $manager = \Drupal::service('plugin.manager.menu.local_task');  return $manager->getLocalTasks(\Drupal::routeMatch()->getRouteName(), $level);}/** * Returns the rendered local tasks at the top level. * * @see https://www.drupal.org/node/2874695 * * @deprecated in Drupal 8.0.0, will be removed before Drupal 9.0.0. */function menu_primary_local_tasks() {  /** @var \Drupal\Core\Menu\LocalTaskManagerInterface $manager */  $manager = \Drupal::service('plugin.manager.menu.local_task');  $links = $manager->getLocalTasks(\Drupal::routeMatch()->getRouteName(), 0);  // Do not display single tabs.  return count(Element::getVisibleChildren($links['tabs'])) > 1 ? $links['tabs'] : '';}/** * Returns the rendered local tasks at the second level. * * @see https://www.drupal.org/node/2874695 * * @deprecated in Drupal 8.0.0, will be removed before Drupal 9.0.0. */function menu_secondary_local_tasks() {  /** @var \Drupal\Core\Menu\LocalTaskManagerInterface $manager */  $manager = \Drupal::service('plugin.manager.menu.local_task');  $links = $manager->getLocalTasks(\Drupal::routeMatch()->getRouteName(), 1);  // Do not display single tabs.  return count(Element::getVisibleChildren($links['tabs'])) > 1 ? $links['tabs'] : '';}/** * Returns a renderable element for the primary and secondary tabs. */function menu_local_tabs() {  $build = [    '#theme' => 'menu_local_tasks',    '#primary' => menu_primary_local_tasks(),    '#secondary' => menu_secondary_local_tasks(),  ];  return !empty($build['#primary']) || !empty($build['#secondary']) ? $build : [];}/** * Clears all cached menu data. * * This should be called any time broad changes * might have been made to the router items or menu links. */function menu_cache_clear_all() {  \Drupal::cache('menu')->invalidateAll();}/** * @} End of "addtogroup menu". */
 |