function PageActions::build

Same name and namespace in other branches
  1. 11.x core/modules/navigation/src/Plugin/TopBarItem/PageActions.php \Drupal\navigation\Plugin\TopBarItem\PageActions::build()

Overrides TopBarItemBase::build

File

core/modules/navigation/src/Plugin/TopBarItem/PageActions.php, line 69

Class

PageActions
Provides the Page Actions basic top bar item.

Namespace

Drupal\navigation\Plugin\TopBarItem

Code

public function build() : array {
  $build = [
    '#cache' => [
      'contexts' => [
        'route',
      ],
    ],
  ];
  // Local tasks for content entities.
  if (!$this->navigationRenderer
    ->hasLocalTasks()) {
    return $build;
  }
  $page_actions = $this->navigationRenderer
    ->getLocalTasks();
  $featured_page_actions = $this->getFeaturedPageActions($page_actions);
  // Filter actions to exclude featured ones from the main array.
  $page_actions['page_actions'] = array_filter($page_actions['page_actions'], static fn($action_route) => !array_key_exists($action_route, $featured_page_actions), ARRAY_FILTER_USE_KEY);
  $build += [
    '#theme' => 'top_bar_page_actions',
    '#page_actions' => $page_actions['page_actions'],
    '#featured_page_actions' => $featured_page_actions,
  ];
  assert($page_actions['cacheability'] instanceof CacheableMetadata);
  $page_actions['cacheability']->applyTo($build);
  return $build;
}

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