Unique system paths can be created on a per-vocabulary basis using hook_entity_info_alter, and modifying the 'uri callback' on the vocabulary bundles.

This means that the path to a term cannot be assumed to be 'taxonomy/term/tid'. You can get the correct uri for a term by calling entity_uri().

In i18nviews_handler_field_term_node_tid.inc, if the option to "Link this field to its term page" is checked, it sets the path to 'taxonomy/term/'.$term->tid which serves the wrong page for terms that have a different callback defined.

$this->items[$term->node_nid][$term->tid]['path'] = 'taxonomy/term/' . $term->tid;

simply needs to change to:

$path = entity_uri('taxonomy_term', $term);
$this->items[$term->node_nid][$term->tid]['path'] = $path['path'];

I don't have the latest dev version handy at this moment to produce a patch, but I'll come back and attach one later on (assuming someone hasn't taken care of this yet). I just wanted to get this logged before I forgot.

#1 hard_coded_term_path-1857424.patch749 bytesjmking
Members fund testing for the Drupal project. Drupal Association Learn more


jmking’s picture

Status: Active » Needs review
749 bytes

Here we are - a simple patch.

jmking’s picture

Issue summary: View changes

Clarification and formatting