Темизация списка нодов (тизеров) по типу материала и по словарю таксономии

Аватар пользователя Photoshopper Photoshopper 12 июля 2012 в 18:13

Знаю только как сделать темизацию для отдельных нодов http://www.drupal.ru/node/58386

Но мне нужно сделать разные отображения для тизеров (которые выводятся по 10шт)

Никак не могу найти решение. Подскажите пожалуйста

Комментарии

Аватар пользователя kalabro kalabro 12 июля 2012 в 18:24

готового способа нет. либо написать чутьчуть кода, либо учиться Page Manager + Panels.

Аватар пользователя Photoshopper Photoshopper 12 июля 2012 в 18:31

К сожалению к изучению Drupal перешел только несколько дней назад. Думал где-то есть наработки. Ведь часто приходиться делать разное отображение тизеров (превью материалов) в зависимости от типа материала

Аватар пользователя kalabro kalabro 12 июля 2012 в 18:38

так вам что нужно то? в зависимости от типа материала или в зависимости от тима материала и термина таксономии?)
опишите яснее!

Аватар пользователя Photoshopper Photoshopper 12 июля 2012 в 18:54

Да хотелось бы менять тизеры в зависимости от словаря таксономии или в зависимости от типа материала (не одновременно конечно, а в зависимости от будущей структуры шаблонов).

например есть типы материалов: новости, видео

Для новостей нужно вывести одно отображение тизеров, а для видео другое.

Аватар пользователя kalabro kalabro 12 июля 2012 в 19:05

если хотите прям отдельно для тизера определенного типа то както так:
<?php

function YOURTHEME_preprocess_node(&$vars) {
if ($vars['teaser']) {
// Для типа материала article шаблон будет называться node--article--teaser.tpl.php
$vars['theme_hook_suggestions'][] = 'node__' . $vars['type'] . '__teaser';
}
}
?>

Аватар пользователя Photoshopper Photoshopper 12 июля 2012 в 19:23

Спасибо, получилось. А как сделать аналогично только по словарю таксономии нет идей?

Аватар пользователя kalabro kalabro 12 июля 2012 в 19:50

<?php

if ($vars['teaser']) {
// ...
$node = $vars['node'];
// Если у материала есть ваше поле таксономии
if (!empty($node->field_term_category)) {
// Получить код языка поля
$lang = field_language('node', $node, 'field_term_category');
$tid = $node->field_term_category[$lang][0]['tid'];
// Шаблон будет называться node--category--4--teaser.tpl.php
$vars['theme_hook_suggestions'][] = 'node__' . 'category__' . $tid . '__teaser';
}
}
?>
не увлекайтесь. производительность.

Аватар пользователя Photoshopper Photoshopper 12 июля 2012 в 19:59

Спс. Позже попробую. Ну это я же не для своего сайта делаю. Просто на будущее делаю заготовки. Шаблоны разные приносят и требования бывают у каждого свои. И многие не слушаются как лучше. Им главное, чтобы было так как они уже хотят.