Отношения Drupal Views - PullRequest
       1

Отношения Drupal Views

1 голос
/ 05 октября 2010

В Drupal у меня есть 3 типа контента (A, B, C), см. ссылка .A и C содержат ссылку на узел B. B. 1003 *

Теперь у меня есть представление, которое запрашивает поля из A из аргумента.Я также хочу показать поля из C через связку с B, поэтому:

  • A имеет ссылку на узел с идентификатором: 1
  • B имеет идентификатор узла: 1

    Я хочу показать поля из C, где ссылка на узел также равна 1. Как это возможно?Я не могу понять карту.

Может кто-нибудь помочь мне, пожалуйста?

1 Ответ

2 голосов
/ 06 октября 2010

В настоящее время вы можете легко перейти от A к B через ссылку на узел, но поскольку ссылка с C на B, вы не можете получить ссылку на C - это текущая проблема.

Короче говоря, вы можете решить проблему, используя модуль Node Referrer (см. http://drupal.org/node/431308 о том, что он делает). По сути, он создает поле только для чтения , которое сообщает вам все узлы, указывающие от C до B (т. Е. Для каждой ссылки на узел создается своего рода обратная ссылка на узел).

Допустим, у нас есть следующие поля ссылок на узлы

  1. В типе контента A у нас есть узел поле ссылки называется a_to_b_link
  2. В типе контента C у нас есть поле ссылки на узел, называемое c_to_b_link
  3. В типе контента B у нас есть поле Node Referrer, которое отслеживает все ссылки в Node Reference c_to_b_link

Создание соответствующего представления немного сложнее.

  1. Сначала добавьте фильтр для Node: Type = A
  2. Добавить отношение a_to_b_link. Убедитесь, что вы отметили флажок Require this relationship
  3. Добавьте еще одно отношение из группы узлов под названием Node: Referrers. Также убедитесь, что в настройках отношений вы должны выберите a_to_b_link в раскрывающемся списке Relationship. Другими словами, вы создаете отношение, которое использует уже существующее отношение (сходное по концепции с указателем на указатель в C ++). Убедитесь, что вы отметили флажок Require this relationship. Это отношение по умолчанию названо Referencing Nodes Drupal.
  4. Теперь добавьте все поля, которые вы хотите, из типа контента A, как вы бы обычно на виду.
  5. Если вы хотите добавить поля из типа контента C, убедитесь, что вы выбрали отношения Referencing Nodes
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...