Темизация страниц в зависимости от термина таксономии

Главные вкладки

Аватар пользователя venji venji 28 сентября 2016 в 11:58

Доброго времени суток
Как переопределить шаблон для самой ноды, в зависимости от того какой термин она имеет?
то есть есть у страницы термин "насос" - 1 шаблон, если термин "труба" - 2 шаблон ну и тд.. есть варианты?

Комментарии

Аватар пользователя bumble bumble 28 сентября 2016 в 12:08

В node--[type].tpl.php использовать условия:

<?php $tid = 'получить ID термина'; ?>
<?php if ($tid == 1): ?>
<!-- Шаблон для ноды с термином 1 -->
<?php elseif ($tid == 2): ?>
<!-- Шаблон для ноды с термином 2 -->
<?php elseif ($tid == 3): ?>
<!-- Шаблон для ноды с термином 3 -->
...
<?php else; ?>
<!-- Шаблон для других нод -->
Аватар пользователя gun_dose gun_dose 29 сентября 2016 в 10:43
<?php
function trololo_preprocess_page(&$variables$hook) {
  
$node $variables['node'];
  
$terms $node->field_ololo['und'];
  foreach (
$terms as $key => $term) {
    
$variables['theme_hook_suggestions'][] = 'page__term' $term;
  }
}
?>
Аватар пользователя venji venji 29 сентября 2016 в 11:46

Что то не получается

<?php
function theme12_preprocess_page(&$variables$hook) {
  
$node $variables['node'];
  
$terms $node->field_catalogbrands['und'];
  foreach (
$terms as $key => $term) {
    
$variables['theme_hook_suggestions'][] = 'page__term__' $term;
  }
}
?>

создал page--term--982.tpl.php и ничего..

Аватар пользователя gun_dose gun_dose 29 сентября 2016 в 14:05

А так?

<?php
function theme12_preprocess_page(&$variables$hook) {
  
$node $variables['node'];
  
$terms $node->field_catalogbrands['und'];
  foreach (
$terms as $key => $term) {
    
$variables['theme_hook_suggestions'][] = 'page__term__' $term['tid'];
  }
}
?>
Аватар пользователя venji venji 29 сентября 2016 в 14:27

Так работает, спасибо! А есть ли вариант чтобы в место id словаря было его название? пример site.ru/brands/abion page--term--abion.tpl.php

Аватар пользователя gun_dose gun_dose 29 сентября 2016 в 14:36

Будут проблемы с кириллическими названиями и с пробелами. Но в принципе же можно по tid подгрузить термин и придумать вообще всё, что угодно.