summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/taxonomy.module10
-rw-r--r--modules/taxonomy/taxonomy.module10
2 files changed, 18 insertions, 2 deletions
diff --git a/modules/taxonomy.module b/modules/taxonomy.module
index c2920a7c0..ebcf4dd9c 100644
--- a/modules/taxonomy.module
+++ b/modules/taxonomy.module
@@ -31,7 +31,7 @@ function taxonomy_link($type, $node = NULL) {
foreach ($node->taxonomy as $term) {
$links['taxonomy_term_'. $term->tid] = array(
'#title' => $term->name,
- '#href' => 'taxonomy/term/'. $term->tid,
+ '#href' => taxonomy_term_path($term),
'#attributes' => array('rel' => 'tag', 'title' => strip_tags($term->description))
);
}
@@ -47,6 +47,14 @@ function taxonomy_link($type, $node = NULL) {
}
}
+function taxonomy_term_path($term) {
+ $vocabulary = taxonomy_get_vocabulary($term->vid);
+ if ($vocabulary->module != 'taxonomy' && $path = module_invoke($vocabulary->module, 'term_path', $term)) {
+ return $path;
+ }
+ return 'taxonomy/term/'. $term->tid;
+}
+
/**
* Implementation of hook_menu().
*/
diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index c2920a7c0..ebcf4dd9c 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -31,7 +31,7 @@ function taxonomy_link($type, $node = NULL) {
foreach ($node->taxonomy as $term) {
$links['taxonomy_term_'. $term->tid] = array(
'#title' => $term->name,
- '#href' => 'taxonomy/term/'. $term->tid,
+ '#href' => taxonomy_term_path($term),
'#attributes' => array('rel' => 'tag', 'title' => strip_tags($term->description))
);
}
@@ -47,6 +47,14 @@ function taxonomy_link($type, $node = NULL) {
}
}
+function taxonomy_term_path($term) {
+ $vocabulary = taxonomy_get_vocabulary($term->vid);
+ if ($vocabulary->module != 'taxonomy' && $path = module_invoke($vocabulary->module, 'term_path', $term)) {
+ return $path;
+ }
+ return 'taxonomy/term/'. $term->tid;
+}
+
/**
* Implementation of hook_menu().
*/