You are here

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;
}