You are here

public function MenuLinkContentId::getArgument in Menu Item Extras 8.2

Return the default argument.

This needs to be overridden by every default argument handler to properly do what is needed.

Overrides ArgumentDefaultPluginBase::getArgument

File

src/Plugin/views/argument_default/MenuLinkContentId.php, line 131

Class

MenuLinkContentId
Active menu item id default argument.

Namespace

Drupal\menu_item_extras\Plugin\views\argument_default

Code

public function getArgument() {
  if ($this->options['menu']) {
    $current_path = $this->currentRequest
      ->getRequestUri();

    /** @var \Drupal\Core\Menu\MenuTreeParameters $parameters */
    $parameters = $this->menuTree
      ->getCurrentRouteMenuTreeParameters($this->options['menu']);
    $parameters
      ->onlyEnabledLinks();

    /** @var \Drupal\Core\Menu\MenuLinkTreeElement[] $menu_level */
    $menu_level = $this->menuTree
      ->load($this->options['menu'], $parameters);

    /** @var \Drupal\Core\Menu\MenuLinkTreeElement $active_item */
    $active_item = $this
      ->getActiveMenuItem($menu_level, $current_path);
    if ($active_item) {

      /** @var \Drupal\Core\Menu\MenuLinkInterface $link */
      $link = $active_item->link;
      $metadata = $link
        ->getMetaData();
      return $metadata['entity_id'];
    }
  }
}