You are here

protected function MenutrailbypathBreadcrumb::setActiveTrail in Menu Trail By Path 7.3

Sets the active_trail by path

1 call to MenutrailbypathBreadcrumb::setActiveTrail()
MenutrailbypathBreadcrumb::setBreadcrumb in src/MenutrailbypathBreadcrumb.inc
Sets the breadcrumb by path

File

src/MenutrailbypathBreadcrumb.inc, line 88

Class

MenutrailbypathBreadcrumb

Code

protected function setActiveTrail() {
  $active_trail = array();
  $trail_paths = $this->pathHelper
    ->getPaths();
  $trail_menu_links = $this->menuHelper
    ->getMenuLinksByPaths($trail_paths);
  $breadcrumb_menu_links = $this
    ->groupMenuLinksByPath($trail_menu_links);

  // First breadcrumb is always Home.
  $active_trail[] = array(
    'title' => t('Home'),
    'href' => '<front>',
    'localized_options' => array(),
    'type' => 0,
  );

  // Add links for the trail-paths
  foreach ($trail_paths as $trail_path) {
    $menu_link = NULL;
    $router_item = menu_get_item($trail_path);
    if (!empty($breadcrumb_menu_links[$trail_path]->link_title)) {
      $menu_link = (array) $breadcrumb_menu_links[$trail_path];
      $menu_link['external'] = 1;
      $menu_link['type'] = $router_item['type'];
      _menu_link_translate($menu_link);
    }
    else {
      $menu_link = array(
        'title' => isset($router_item['title']) ? $router_item['title'] : '',
        'href' => $trail_path,
        'localized_options' => array(),
        'type' => MENU_NORMAL_ITEM,
      );
    }
    if (!empty($menu_link)) {
      $active_trail[] = $menu_link;
    }
  }
  menu_set_active_trail($active_trail);
}