Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
In version 1.4 the taxonomy breadcrumb only shows up when a node is displayed. But not if the node is edited or if a comment is written (on a sepaerate Page, dependant to the settings of the comment module).
Here is the code to make the breadcrumb also show up on node forms and on comment forms. Put this code into the function 'taxonomy_breadcrumb_form_alter' after line 325 (Version 1.4):
// If we are on a form of a node
elseif (substr($form_id, -9, 9) == 'node_form') {
if (!drupal_is_front_page() && arg(1) == $form['nid']['#value']) {
// See if the node type of the current node is part of the node types listed on the advanced settings page.
$array_of_types = explode(' ', variable_get('taxonomy_breadcrumb_node_types', TAXONOMY_BREADCRUMB_NODE_TYPES_DEFAULT));
$in_list = in_array($form['type']['#value'], $array_of_types);
// if the node type IS IN the node types list and the list IS inclusive OR
// if the node type IS NOT IN the node types list and the list IS NOT inclusive (e.g. exclusive)
// THEN modify the breadcrumb trail.
if ($in_list == variable_get('taxonomy_breadcrumb_include_nodes', FALSE) ) {
// Extract lightest term from lightest vocabulary assosciated with node.
$term = taxonomy_breadcrumb_node_get_lightest_term($form['nid']['#value']);
$breadcrumb = taxonomy_breadcrumb_generate_breadcrumb($term->tid);
drupal_set_breadcrumb($breadcrumb);
}
}
}
// If we are on a form of a comment
elseif ($form_id == 'comment_form') {
if (!drupal_is_front_page()) {
// See if the node type of the current node is part of the node types listed on the advanced settings page.
$node = node_load($form['nid']['#value']);
$node_type = $node->type;
$array_of_types = explode(' ', variable_get('taxonomy_breadcrumb_node_types', TAXONOMY_BREADCRUMB_NODE_TYPES_DEFAULT));
$in_list = in_array($node_type, $array_of_types);
// if the node type IS IN the node types list and the list IS inclusive OR
// if the node type IS NOT IN the node types list and the list IS NOT inclusive (e.g. exclusive)
// THEN modify the breadcrumb trail.
if ($in_list == variable_get('taxonomy_breadcrumb_include_nodes', FALSE) ) {
// Extract lightest term from lightest vocabulary assosciated with node.
$term = taxonomy_breadcrumb_node_get_lightest_term($form['nid']['#value']);
$breadcrumb = taxonomy_breadcrumb_generate_breadcrumb($term->tid);
drupal_set_breadcrumb($breadcrumb);
}
}
}
Comments
Comment #1
jantoine CreditAttribution: jantoine commentedClosing as the 5.x branch is no longer supported.