diff -urbNP taxonomy_menu_trails.orig/taxonomy_menu_trails.inc taxonomy_menu_trails/taxonomy_menu_trails.inc --- taxonomy_menu_trails.orig/taxonomy_menu_trails.inc 2010-10-09 20:39:27.000000000 +0400 +++ taxonomy_menu_trails/taxonomy_menu_trails.inc 2010-11-13 13:11:15.000000000 +0300 @@ -19,7 +19,19 @@ function _taxonomy_menu_trails_process($item) { $href = NULL; - $taxonomy = &$item['page_arguments'][0]->taxonomy; + $node = $item['page_arguments'][0]; + $types = variable_get('taxonomy_menu_trails_node_types', array()); + if (empty($types[$node->type])) { + return; + } + $vids = $types[$node->type]; + $taxonomy_all = &$item['page_arguments'][0]->taxonomy; + $taxonomy = array(); + foreach ($taxonomy_all as $tid => $term) { + if (in_array($term->vid, $vids)) { + $taxonomy[$tid] = $term; + } + } switch (variable_get('taxonomy_menu_trails_selection_method', 'first')) { case 'first': $term = reset($taxonomy); @@ -44,7 +56,6 @@ } break; case 'deepest-in-lineage': - $node = $item['page_arguments'][0]; $term = _taxonomy_menu_trails_get_deepest_term($node); break; default: