Как показать названия словарей в ноде

Мы создали материал (ноду). Нода размещена в определенном словаре (у которого есть свои категории). И по умолчанию в Друпал, при публикации материала название словаря не отражается. Например, у нас есть словарь "Бренды", в нем категории "Yamaha", "Honda", "Suzuki". При размещении статьи категории отобразятся без указания словаря "Бренды", одной строчкой. Если у вас несколько словарей относится к ноде, то всё это будет смешано в одну строку.

Пример:
Сайт автомобильной тематики, где каждая страница (нода) - это описание конкретной марки автомобиля.
Чтобы по смыслу связать между собой страницы сайта, мы используем термины в нескольких словарях.
Словари (термины):
- Марка автомобиля (мерседес, опель, запорожец и т.д.)
- Объем двигателя [л] (менее 0,5; 0,5-1; 1-1,5 ... 6 и более)
- Тип двигателя (бензин, дизель)
- Потребление топлива [л/100км] (до 6, 6-10, 10-14, более 14)
...автолюбитель, чтобы подробно систематизировать каждую марку автомобиля, таких словарей может понапридумывать огромное количество.

В итоге мы получаем страницу следующего вида:
Заголовок - Мерседес 320SL
Текст - Описание модели
Термины: мерседес, 4-6, бензин, более 14, и т.д. и т.п.

Уже в этих терминах можно немного запутаться, а если словарей будет еще больше и они будут содержать специфическую информацию?..

Чтобы все стало красиво и понятно, нам нужно отобразить названия словарей, из которых берутся соотв. категории.
Заголовок - Мерседес 320SL
Текст - Описание модели
Марка автомобиля: мерседес, Объем двигателя: 4-6, Тип двигателя: бензин, Потребление топлива: более 14, ...

Как показать названия словарей в ноде:
Вставьте в template.php вашей темы следующий код:
ВНИМАНИЕ! Замените yourthemename на имя вашей темы, например, есть тема "garland".

<?php
// split out taxonomy terms by vocabulary
function yourthemename_print_terms($nid) {
$vocabularies = taxonomy_get_vocabularies();
$output = '

    ';
    foreach($vocabularies as $vocabulary) {
    if ($vocabularies) {
    $terms = taxonomy_node_get_terms_by_vocabulary($nid, $vocabulary->vid);
    if ($terms) {
    $links = array();
    $output .= '
  • ' . $vocabulary->name . ': ';
    foreach ($terms as $term) {
    $links[] = l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description)));
    }
    $output .= implode(', ', $links);
    $output .= '
  • ';
    }
    }
    }
    $output .= '

';
return $output;
}
?>

Теперь добавьте код в ваш node.tpl.php файл:

<?php
print yourthemename_print_terms($node->nid)
?>