Различные шаблоны для ноды в разных блоках. Как?

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

Аватар пользователя xzenon xzenon 12 ноября 2009 в 23:30

Необходимо по разному отображать ноды одного контент типа, показанные в разных блоках.
Скажем, в основном блоке новость должна выглядеть как заголовок + дата + тизер. В блоке "ТОП 5" же новости должны выводиться в виде только заголовков с датой.
Каким образом заставить ноду отображаться по-разному в разных блоках?
При кастомизации node.tpl.php необходимо как-то узнать для какого блока (или какого view) рендерится данная нода. Вопрос - как это узнать?

Комментарии

Аватар пользователя xzenon xzenon 13 ноября 2009 в 0:48

IrinaStasuk: они и выводятся различными вьюсами. Вопрос в том, как отображать их в разных вьюсах по-разному?

Аватар пользователя antonka@drupal.org antonka@drupal.org 13 ноября 2009 в 0:48

в note.tpl.php

для пятого друпала:


<?php
global $current_view
if (
$current_view && $current_view->name == 'blabla') {
  
// выводим так
} else {
  
// выводим сяк
}
?>

для шестого:

<?php
$current_view 
views_get_current_view(); 
if (
$current_view && $current_view->name == 'blabla') {
  
// выводим так
} else {
  
// выводим сяк
}
?>

---
Мой блог на Drupal : Рубиновый путь

Аватар пользователя marazmus marazmus 13 ноября 2009 в 8:23

"xzenon" wrote:
IrinaStasuk: они и выводятся различными вьюсами. Вопрос в том, как отображать их в разных вьюсах по-разному?

Вы views изучите получше, там есть возможность для одного и того же views делать различные типы вывода.

В вашем случае просто добавляем во вьюху:

а) блок с отображением ноды, количество - 1, стиль - поля, поля - заголовок, тизер, дата

б) блок с отображением списка нод, количество - 10 или сколько надо, стиль - поля, поля - заголовок, дата

После сохранения эти блоки появятся в списке блоков в админке, откуда их можно будет раскидать куда надо.

p.s. Только не забудьте, что свойства типов вывода нужно переопределять (override), включая стили и количество нод.

Аватар пользователя IrinaStasuk IrinaStasuk 13 ноября 2009 в 15:13

Во-первых, вам нужен не один вьюс, а два вьюса. Во вьюсе есть поле - как выводить данные - возьмите список (list). Фильтры в обоих (как я понимаю) одни и те же. А вот поля - разные. Настройте поля так как вам нужно. Вьюсы создадут каждый свой блок - вот и выводите их где хотите.

Аватар пользователя marazmus marazmus 13 ноября 2009 в 15:31

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

А так - используем гибкость друпала, ага Smile Можно использовать результат работы Views, готовые поля, без гемора с темизацией. А можно получать полные ноды и темизировать их по определенным правилам и условиям, эдакий old-scool-way Smile

Аватар пользователя IrinaStasuk IrinaStasuk 13 ноября 2009 в 15:33

"marazmus" wrote:
Я искренне не понимаю, зачем городить кучу вьюх, когда можно обойтись одной, но с несколькими стилями отображения и переопределением свойств... И тем более, если фильтры одни и те же.

Вы о 5 или 6 версии говорите? Я работаю с 5. Там вьюс создает только один блок и одну страницу. Может быть у автора 6-я? И может быть там все иначе?

Аватар пользователя marazmus marazmus 13 ноября 2009 в 15:35

IrinaStasuk, извините, просмотрел, что автор не указал версию Друпала. В пятерке да, очень сильно не хватает стилей отображения. Мои советы касаются только Views 2.х для 6 версии Друпала.

Аватар пользователя IrinaStasuk IrinaStasuk 13 ноября 2009 в 15:39

Собираюсь на новый год переводить свой портал на 6-ку. Надеюсь, что посетителей будет несколько дней мало, текущей работы - тоже и я смогу поиздеваться над порталом