function nodesymlinks_token_values in NodeSymlinks 6
Implementation of hook_token_values().
See also
node_token_values() in token_node.inc
File
- ./
nodesymlinks.module, line 290 - Node Symlinks allows creating duplicate menu links with unique id to all nodes. As a result all these duplicates have unique menu trails and breadcrumbs.
Code
function nodesymlinks_token_values($type, $object = NULL, $options = array()) {
$values = array();
if ($type == 'nodesymlinks') {
$values = array(
'nodesymlinks-menupath' => '',
'nodesymlinks-menupath-raw' => '',
'nodesymlinks-menu' => '',
'nodesymlinks-menu-raw' => '',
'nodesymlinks-menu-link-title' => '',
'nodesymlinks-menu-link-title-raw' => '',
'nodesymlinks-menu-link-mlid' => '',
'nodesymlinks-menu-link-plid' => '',
);
// Now get the menu related information.
if (!empty($object['mlid'])) {
// TODO: refactor this
$mlid = $object['mlid'];
$node = $object['node'];
$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['nodesymlinks-nodepath'] = !empty($node->path) ? $node->path : 'node/' . $node->nid;
$values['nodesymlinks-menupath'] = !empty($options['pathauto']) ? $trail : implode('/', $trail);
$values['nodesymlinks-menupath-raw'] = !empty($options['pathauto']) ? $trail_raw : implode('/', $trail_raw);
$values['nodesymlinks-menu'] = check_plain($menu);
$values['nodesymlinks-menu-raw'] = $menu;
$values['nodesymlinks-menu-link-title'] = check_plain($menu_link['title']);
$values['nodesymlinks-menu-link-title-raw'] = $menu_link['link_title'];
$values['nodesymlinks-menu-link-mlid'] = $menu_link['mlid'];
$values['nodesymlinks-menu-link-plid'] = $menu_link['plid'];
}
}
return $values;
}