? token_profile.inc Index: token_node.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/token/Attic/token_node.inc,v retrieving revision 1.5.4.26 diff -u -p -r1.5.4.26 token_node.inc --- token_node.inc 21 Jun 2010 23:24:27 -0000 1.5.4.26 +++ token_node.inc 5 Jul 2010 16:14:49 -0000 @@ -66,30 +66,8 @@ function node_token_values($type, $objec } // Try to get the menu data. - $mlid = db_result(db_query("SELECT mlid FROM {menu_links} WHERE link_path = '%s'", 'node/'. $node->nid)); - - // Now get the menu related information. - if (!empty($mlid) || !empty($node->menu['mlid']) || !empty($node->menu['plid'])) { - $menu_link = menu_link_load($mlid); - $menus = menu_get_menus(); - $menu = isset($menus[$menu_link['menu_name']]) ? $menus[$menu_link['menu_name']] : ''; - $trail_raw = _menu_titles($menu_link, $node->nid); - - $trail = array(); - foreach ($trail_raw as $title) { - $trail[] = check_plain($title); - } - - $values['menupath'] = implode('/', $trail); - $values['menupath-raw'] = implode('/', $trail_raw); - $values['menu'] = check_plain($menu); - $values['menu-raw'] = $menu; - $values['menu-link-title'] = check_plain($menu_link['title']); - $values['menu-link-title-raw'] = $menu_link['link_title']; - $values['menu-link-mlid'] = $menu_link['mlid']; - $values['menu-link-plid'] = $menu_link['plid']; - } - else { + if (module_exists('menu')) { + // Put in blank token values in-case the below code fails. $values['menu'] = ''; $values['menu-raw'] = ''; $values['menupath'] = ''; @@ -98,6 +76,31 @@ function node_token_values($type, $objec $values['menu-link-title-raw'] = ''; $values['menu-link-mlid'] = ''; $values['menu-link-plid'] = ''; + + if (!isset($node->menu)) { + // Load the menu item if not already available. + menu_nodeapi($node, 'prepare'); + } + + if (!empty($node->menu['mlid'])) { + $menus = menu_get_menus(); + $menu = isset($menus[$node->menu['menu_name']]) ? $menus[$node->menu['menu_name']] : ''; + + $trail_raw = _menu_titles($node->menu, $node->nid); + $trail = array(); + foreach ($trail_raw as $title) { + $trail[] = check_plain($title); + } + + $values['menupath'] = implode('/', $trail); + $values['menupath-raw'] = implode('/', $trail_raw); + $values['menu'] = check_plain($menu); + $values['menu-raw'] = $menu; + $values['menu-link-title'] = check_plain($node->menu['title']); + $values['menu-link-title-raw'] = $node->menu['link_title']; + $values['menu-link-mlid'] = $node->menu['mlid']; + $values['menu-link-plid'] = $node->menu['plid']; + } } // And now taxonomy, which is a bit more work. This code is adapted from