Представления Drupal: Разделение полей по типу контента - PullRequest
1 голос
/ 21 июня 2010

У меня есть несколько представлений на моем сайте Drupal, которые чрезвычайно выходят из-под контроля ... Представления показывают узлы из разных типов контента в одном и том же листинге и форматируются по-разному в зависимости от типа контента ... Это такДля этого требуется много пользовательских PHP-полей, перезапись вывода и немного черной магии.Абсолютно неприемлемый код.:)

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

Вот псевдо-пример:

Узел видео: заголовок узла Встроенное видео поле Количество комментариев

Узел новостной статьи: пользовательское поле заголовка CCK Тело узла Количество комментариев, но с перезаписанным выводом для вставки класса div иличто-то

Для этого примера в моем текущем макете я бы добавил заголовок узла в поля, но исключил его из вывода, а затем вывел его в настраиваемое поле php с оператором if, то же самое с телом узла (так как оба типа узлаиметь названия и тела, но только один из двух типов должен отображать его).Количество комментариев будет добавлено дважды, тогда я исключу оба и выведу их снова через пользовательское php-поле с оператором switch для типов контента ... Ужасно, а?

Приветствуются любые советы по модулям, хаки или лучший выбор дизайна.:)

1 Ответ

2 голосов
/ 22 июня 2010

Звучит так, будто вы пытаетесь сделать то, что делает слой темы, но в представлении admin.

Вернитесь немного назад, переключитесь на представление узла и затем создайте шаблон в формате node-view-VIEWNAME.tpl.php (как объяснено здесь ), который обрабатывает логику отображения для всех узлов, которые могут быть задействованы вашим представлением.

Это будет инкапсулировать всю логику отображения для представления в одном шаблоне и избавит вас от необходимости выполнять взломы в других шаблонах отображения или в самом представлении.

Если вам нужнопомогите подобрать шаблон, а затем сообщите нам, но похоже, что вы знаете, что делаете.

...