You are here

function menutrails_token_values in Menu TrailsMenu Trails 6

File

./menutrails.module, line 339
Menutrails allows the assignment of "trails" which will keep menu items active for individual node views.

Code

function menutrails_token_values($type, $object = NULL, $options = array()) {
  if ($type == 'node') {
    $node = $object;
    $mlid = db_result(db_query("SELECT mlid FROM {menu_links} WHERE link_path = '%s'", 'node/' . $node->nid));
    if (!empty($mlid) || !empty($node->menu['mlid']) || !empty($node->menu['plid'])) {
      $menu_link = menu_link_load($mlid);
      $trail_raw = _menu_titles($menu_link, $node->nid);

      // Remove the node itself.
      array_pop($trail_raw);
    }
    elseif ($item = menutrails_node_location($node)) {
      $trail_raw = drupal_map_assoc(explode('/', $item['href']));
    }
    $trail = array();
    if (!empty($trail_raw)) {
      foreach ($trail_raw as $title) {
        $trail[] = check_plain($title);
      }
      $tokens['menu-trail-parents-path-raw'] = !empty($options['pathauto']) ? $trail_raw : implode('/', $trail_raw);
      $tokens['menu-trail-parents-path'] = !empty($options['pathauto']) ? $trail : implode('/', $trail);
    }
    else {
      $tokens['menu-trail-parents-path-raw'] = NULL;
      $tokens['menu-trail-parents-path'] = NULL;
    }
    return $tokens;
  }
}