taxonomy_link
modules/taxonomy/taxonomy.module, строка 47
- Версии
- 5 – 6
taxonomy_link($type, $node = NULL)
Реализация hook_link()
.
Этот хук дополняется $type = 'taxonomy terms'
, чтобы можно было темизировать вывод списков терминов, которые ассоциированны с нодой. Темы могут выводить ссылки таксономии так:
if (module_exists('taxonomy')) { $terms = taxonomy_link('taxonomy terms', $node); print theme('links', $terms); }
Код
<?php
function taxonomy_link($type, $node = NULL) {
if ($type == 'taxonomy terms' && $node != NULL) {
$links = array();
// If previewing, the terms must be converted to objects first.
if (isset($node->build_mode) && $node->build_mode == NODE_BUILD_PREVIEW) {
$node->taxonomy = taxonomy_preview_terms($node);
}
if (!empty($node->taxonomy)) {
foreach ($node->taxonomy as $term) {
// During preview the free tagging terms are in an array unlike the
// other terms which are objects. So we have to check if a $term
// is an object or not.
if (is_object($term)) {
$links['taxonomy_term_'. $term->tid] = array(
'title' => $term->name,
'href' => taxonomy_term_path($term),
'attributes' => array('rel' => 'tag', 'title' => strip_tags($term->description))
);
}
// Previewing free tagging terms; we don't link them because the
// term-page might not exist yet.
else {
foreach ($term as $free_typed) {
$typed_terms = drupal_explode_tags($free_typed);
foreach ($typed_terms as $typed_term) {
$links['taxonomy_preview_term_'. $typed_term] = array(
'title' => $typed_term,
);
}
}
}
}
}
// We call this hook again because some modules and themes
// call taxonomy_link('taxonomy terms') directly.
drupal_alter('link', $links, $node);
return $links;
}
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии