Определение термина(ов) таксономии узла из файла шаблона


У меня есть сайт Drupal 7 с типом контента события.

У меня есть таксономия под названием "типы событий", Которая имеет 5 вариантов (Вечеринка, конференция, собрание и т. Д.)

У меня есть один шаблон с именем node--event.tpl.php для стилизации отдельных узлов событий.

Как я могу определить, какие термины таксономии применяются к данному узлу событий из файла шаблона? Мне нужно изменить некоторую логику представления, основанную на термине таксономии, связанном с событие.

Я не использую таксономию в URL-адресе, поэтому мне нужно найти другой метод определения типа события. Девел, похоже, не показывает мне никаких значений терминов таксономии для работы.

Author: Randy Burgess, 2011-03-24

1 answers

Как упоминалось в первом ответе, вы должны использовать функцию предварительной обработки, но, вероятно, для шаблона узла.

Для шаблона node.tpl.php (и всех производных) функция определяется как

MYTHEME_preprocess_node(&$vars) {
}

И должен появиться файл вашей темы template.php.

Вы должны очистить кэш Drupal, чтобы сбросить реестр тем таким образом, чтобы Drupal распознал и выполнил эту функцию.

Аргумент $vars функции представляет собой массив, содержащий все переменные шаблона, которые впоследствии появятся в файле tpl ($vars['foo'] будут использоваться как <?php print $foo; ?> в файле tpl).

Сюда также входит собственный объект $node, который позволит вам проверять $node->taxonomy и соответственно создавать любые последующие переменные. Вы можете использовать их в файле tpl.

Лучший способ проверить и обнаружить компоненты $vars - использовать функцию модуля Devel dpm(), которая красиво выводит любую переменную в поле сообщений темы.

Итак, включите devel, создайте следующее в template.php, очистите кэш, обновите просмотр узла и работайте оттуда.

MYTHEME_preprocess_node(&$vars) {
  dpm($vars);
}

Вас также может заинтересовать моя сессия по функциям предварительной обработки Drupal из Drupalcon Copenhagen или страница Руководства по Drupal.

 2
Author: c4rl, 2011-03-25 04:45:24