Определение термина(ов) таксономии узла из файла шаблона
У меня есть сайт Drupal 7 с типом контента события.
У меня есть таксономия под названием "типы событий", Которая имеет 5 вариантов (Вечеринка, конференция, собрание и т. Д.)
У меня есть один шаблон с именем node--event.tpl.php для стилизации отдельных узлов событий.
Как я могу определить, какие термины таксономии применяются к данному узлу событий из файла шаблона? Мне нужно изменить некоторую логику представления, основанную на термине таксономии, связанном с событие.
Я не использую таксономию в URL-адресе, поэтому мне нужно найти другой метод определения типа события. Девел, похоже, не показывает мне никаких значений терминов таксономии для работы.
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.