Изображение пользователя snetcher.

Задача : отобразить описание термина таксономии на страницах таксономии например. site.com/taxonomy/term/n (где n - ID термина).

Будем использовать функцию taxonomy_get_term (n), где n представляет ID термина.

В page.tpl.php добавляем следующий код перед print $content:

  <?php /* Добавить описание таксономии если это страница таксономии */ ?>
  <?php $page_term = taxonomy_get_term(arg(2)); // путь: site.com/taxonomy/term/n ?>
 
  <?php if (arg(0) == 'taxonomy' && $page_term) { ?>
 
    <div class="taxonomy-term-info">
 
      <?php print $page_term->description; ?>
 
    </div>
 
  <?php } ?>

Аргументы пронумерованы от 0 (0 - taxonomy, 1 - term, 2 - n), таким образом для URL site.com/taxonomy/term/n arg (2) даст нам значение n для ID термина таксономии. Тогда функция taxonomy_get_term (arg (2)) возвратит данные термина, содержащиеся в $page_term в вышеупомянутом примере.

Мы можем просто вывести описание в page.tpl.php с <? php print $page_term->description; ?>, но мы смотрим в будущее и стараемся предусмотреть исключительные ситуации и поэтому добавили проверку переменной arg(0) на предмет ее содержимого. Если этого не сделать, могут возникнуть проблемы для таких страниц как site.com/aggregator/categories/n.

Еще к заголовку страницы, мы можем добавить класс:

  <h2 <?php if (arg(0) == 'taxonomy') print ' style="taxonomy-title"'; ?>>
 
    <?php print $title; ?>
 
  </h2>

Заголовок обычной страницы тогда будет обернут в .. тэги, а если мы находимся на странице таксономии .... Вы можете определить стиль отображения заголовка с помощью CSS. Например так:
h2.taxonomy-title {
 
  /* стили по вкусу */
 
}
 
.taxonomy-term-info {
  /* стили по вкусу */ 
 
}

Для arg() не имеет значения, используете ли Вы алиасы или нет — параметры для таксономии и страницы агрегатора для Drupal остаются тем же самым.

Затем добавим некоторые тесты, чтобы видеть, получили мы хоть один ID. В этом случае, я должен переместить код в функцию в template.php и вызвать его вpage.tpl.php.

Есть возможность подменить стандартный вывод описания термина. Для этого в template.php вы должны добавить следующий код:

 <?php
 
   function MYTHEME_taxonomy_term_page($tids, $result) { // MYTHEME - название вашей темы
     // Добавить CSS если это страница таксономии
 
          drupal_add_css(drupal_get_path('module', 'taxonomy') .'/taxonomy.css');
 
 
     // Отобразить описание только для одиночного термина
 
          if (count($tids) == 1) { 
 
            $term = taxonomy_get_term($tids[0]); 
 
            $description = $term-    >description;
 
     // Проверка на наличие описания
 
            if (!empty($description)) { 
 
              $output = '    <div class="custom-taxonomy-description">';
 
              $output .= filter_xss_admin($description); 
 
              $output .= '    </div>';
 
            } 
 
          } 
          $output .= taxonomy_render_nodes($result); 
          return $output; 
 
   }
  ?>

Для подмены класса заголовка, в page.tpl.php для формирования заголовка используем следующий код.
  <h2<?php print (arg(0) == 'taxonomy') ? ' class="taxonomy-title"' : '';?>>
    <?php print $title; ?>
 
  </h2>

Источник : planken.org