function _taxonomy_menu_node_view in Taxonomy menu 6
Same name and namespace in other branches
- 5 taxonomy_menu.inc \_taxonomy_menu_node_view()
Generates the breadcumb for nodes that have a category listed as a menu
Parameters
Object. The node object:
Array. The list of all taxonomy vocabs and: terms that this node have and are also menus
1 call to _taxonomy_menu_node_view()
- taxonomy_menu_nodeapi in ./taxonomy_menu.module 
- Implementation of hook_nodeapi().
File
- ./taxonomy_menu.inc, line 206 
- @author Jonathan Chaffer <jchaffer@structureinteractive.com> @author Bruno Massa <http://drupal.org/user/67164> taxonomy_menu.inc It Generates menu links for all taxonomy terms
Code
function _taxonomy_menu_node_view(&$node, &$vocabs) {
  foreach ($vocabs as $vid => $vocab) {
    $path = variable_get('taxonomy_menu_display_page', 'category') . '/' . $vid;
    $tree = taxonomy_get_tree($vid);
    $old_depth = -1;
    $old_path = $path;
    // Generate the entire breadcumb
    foreach ($tree as $term) {
      if ($term->depth <= $old_depth) {
        $slashes_to_remove = $old_depth - $term->depth + 1;
        for ($i = 0; $i < $slashes_to_remove; $i++) {
          $old_path = substr($old_path, 0, strrpos($old_path, "/"));
        }
      }
      $path = $old_path . '/' . $term->tid;
      $old_depth = $term->depth;
      $old_path = $path;
      if ($term->tid == $vocab[0]) {
        //create all the breadcrumb items
        $breadcrumb = array();
        $tmpterm = $term;
        $patharray = explode('/', $path);
        while ($tmpterm) {
          //create items for all the ancestors
          $breadcrumb[] = l($tmpterm->name, implode('/', $patharray));
          array_pop($patharray);
          if (isset($tmpterm->parents[0])) {
            $tmpterm = taxonomy_get_term($tmpterm->parents[0]);
          }
          else {
            unset($tmpterm);
          }
          //we're done with ancestors
        }
        $vocabulary = taxonomy_vocabulary_load($term->vid);
        $breadcrumb[] = l($vocabulary->name, implode('/', $patharray));
        //add the vocabulary item
        $breadcrumb[] = l(t('Home'), '<front>');
        drupal_set_breadcrumb(array_reverse($breadcrumb));
        // Quit after the first match.
        return;
      }
    }
  }
}