You are here

public function MenuLinkContentId::getActiveMenuItem in Menu Item Extras 8.2

Get active menu item.

Parameters

array $menu_level: Menu tree.

string $current_path: Current path.

Return value

\Drupal\Core\Menu\MenuLinkTreeElement|null Active menu item.

1 call to MenuLinkContentId::getActiveMenuItem()
MenuLinkContentId::getArgument in src/Plugin/views/argument_default/MenuLinkContentId.php
Return the default argument.

File

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

Class

MenuLinkContentId
Active menu item id default argument.

Namespace

Drupal\menu_item_extras\Plugin\views\argument_default

Code

public function getActiveMenuItem(array $menu_level, $current_path) {
  $active_item = NULL;

  /** @var \Drupal\Core\Menu\MenuLinkTreeElement[] $menu_level */
  foreach ($menu_level as $menu_item) {
    if ($menu_item->inActiveTrail) {

      /** @var \Drupal\menu_link_content\Plugin\Menu\MenuLinkContent $link */
      $link = $menu_item->link;

      /** @var \Drupal\Core\Url $url_object */
      $url_object = $link
        ->getUrlObject();
      $item_path = $url_object
        ->toString();
      if ($item_path === $current_path) {
        $active_item = $menu_item;
      }
      if ($menu_item->subtree && !$active_item) {
        $active_item = $this
          ->getActiveMenuItem($menu_item->subtree, $current_path);
      }
    }
  }
  return $active_item;
}