Отношения Drupal Views

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

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

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

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

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

1 ответ

Решение

В настоящее время вы можете легко перейти от 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
Другие вопросы по тегам