Используя представления Drupal 7, объединяйте поля данных из двух типов контента в одну строку.

Я искал несколько дней для решения безуспешно.

Вот настройка:

TV Shows (vocabulary): show-1, show-2, show-3, ...

Episodes (content type)            Schedule (content type)
  - title                            - date/time episode airs
  - episode code <.................> - episode code
  - reference to TV Show term

1) Сначала я пытаюсь создать «представление», которое принимает и аргументирует термин (или идентификатор) «телешоу» и на его основе перечисляет все эпизоды, связанные с этим шоу, И когда эти эпизоды будут транслироваться в будущее.

Одна большая проблема заключается в том, что узлы типа контента «расписание» не связаны с телешоу, поэтому все они сразу же исключаются. Есть ли способ показать все «расписания», связанные с эпизодом, на основе ввода?

2) Вторая часть этой головоломки состоит в том, чтобы пойти другим путем, то есть представлениям дается день, а затем перечисляются все узлы расписания, которые попадают в этот день. И поскольку каждый узел расписания содержит «код эпизода», который ссылается на «эпизод», получите соответствующую информацию из узла «эпизод» с соответствующим «кодом эпизода».

Звучит почти так, как будто оба этих сценария требуют объединения двух отдельных представлений, но возможно ли это вообще?

Примечание. Когда я говорю, что "код эпизода" связывает два типа контента, это неправильная связь. Я попытался использовать только текстовое поле в обоих типах контента с пометкой «код эпизода». Я также попытался создать словарь «эпизод», в котором были коды эпизодов для терминов, а затем оба типа контента содержали поле для словаря «эпизода».


person Mogul    schedule 28.04.2012    source источник


Ответы (1)


Когда вы создаете одно из этих представлений (либо то, которое отображает все эпизоды с заданной таксономией, либо то, которое показывает все эпизоды за заданное время) — и да, это звучит как два отдельных представления — просто убедитесь, что вы развернете раздел «Дополнительно» в представлении. Продолжайте и добавьте «Relationship», чтобы вы могли получить доступ к полям указанного типа контента.

Например, допустим, вы создаете свое первое представление. В этом случае это будет просмотр эпизодов, и вы будете использовать наличие термина таксономии в качестве фильтра. Чтобы иметь возможность отображать как 1) поля, которые существуют в типе контента эпизода, так и 2) поля, которые существуют в указанном типе контента расписания, вы должны добавить в представление соответствующую Relationship.

  1. В разделе «Дополнительно» представления добавьте соответствующую связь. Это может быть что-то вроде «Ссылка на объект: объект, на который ссылаются: мост к объекту контента, на который ссылается через field_schedule». Выберите тот, который соответствует имени вашего эталонного поля, так как я просто предполагаю, что здесь это field_schedule.
  2. На экране настройки для этой связи введите то, что вам будет легко понять, в поле «Идентификатор», например «Ссылочный узел расписания».
  3. Теперь начните добавлять поля, которые вы хотите, чтобы ваше представление возвращало, в разделе «Поля».
  4. Когда вы дойдете до поля, которое является частью указанного типа контента (а не типа контента эпизода, с которым вы начали работать), выберите, что это поле использует связь, созданную на шаге 2 в разделе "Связь' раскрывающийся список. Это будет доступно на втором экране настройки после добавления этого поля.
  5. Наконец, используйте «табличное» отображение, если вы хотите, чтобы все поля выглядели так, как будто все поля расположены в одной строке.

Теперь Drupal будет знать, что вы пытаетесь отобразить поле узла, на который указывает ссылка, а не текущего узла эпизода, на который он смотрит.

Это немного запутанно, но я надеюсь, что это имеет смысл. Это способ связать ссылочные узлы в представлении — используя отношения.

person Boriana Ditcheva    schedule 30.04.2012