Как я могу создать представление, которое показывает другие узлы, ссылающиеся на тот же узел, на который ссылается текущий узел?


Допустим, у меня есть дома и районы (дома ссылаются на район, в котором они находятся, через поле ссылки на узел). На странице сведений о доме я хочу показать другие дома в том же районе.

Кажется достаточно простым, и я нашел следующее: Создайте представление в поле ссылки на узел, но это не совсем то, что мне нужно сделать, так как мне нужно найти другие дома, которые ссылаются на тот же район, что и текущий дом (не те, которые ссылаются на текущий дом дом).

Я также нашел это: Ссылки на узлы просмотр: получите другие узлы, которые также ссылаются на тот же узел, но я использую только 2 типа контента (дома и районы). Есть какие-нибудь идеи? Мой мозг устал после попыток продумать отношения и аргументы этой вещи:)

Author: kiamlaluno, 2011-09-26

4 answers

Вы должны быть в состоянии сделать это с помощью отношений. Добавьте поле ссылки на узел окрестности в качестве отношения. Добавьте NID в качестве аргумента и примените только что созданное отношение соседства в качестве отношения к этому аргументу NID. Это подскажет представлениям использовать NID поля ссылки на узел в качестве аргумента.

 2
Author: , 2011-09-27 14:05:19

Самый простой способ - использовать модуль Viewfield.

  1. Сначала установите Токен и Поле просмотра
  2. Добавить новое представление для домашнего типа контента с двумя аргументами (контекстные фильтры):
    • Ваше поле ссылки на окрестности
    • Содержимое: Nid с идентификатором содержимого по умолчанию из URL и установите флажок "Исключить". Необязательно, чтобы исключить узел, который просматривается.
      enter image description here
  3. Перейдите к своему домашнему типу контента и добавьте новое поле типа Просмотры.
  4. Настройка поля с помощью токенов. enter image description here
    • ПРИМЕЧАНИЕ: Я не знаю, как это будет работать с несколькими ссылками, но с одним значением ссылки это отлично работает. В любом случае вы сможете решить эту проблему с помощью PHP-кода проверки в представлениях.

Обновление: Отношения - лучший выбор в этой задаче, но я обнаружил странную ошибку в своем Drupal, поэтому я предложил способ с полем просмотра.

 2
Author: kalabro, 2011-09-27 09:28:42

То, что вы делаете, обычно называется обратной ссылкой на узел. Вы запрашиваете, чтобы найти все узлы, у которых есть поле ссылки на узел, относящееся к текущему узлу. Вот как это сделать:

  1. Добавьте поле ссылки на узел в качестве аргумента в представление.
  2. Добавьте $args[0] = arg(1); в качестве кода обработки аргументов.

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

 1
Author: user2311, 2011-09-26 23:12:53

Надеюсь, это кому-нибудь поможет...

Взято из https://drupal.org/node/131547 Исключите текущий узел из представления списка.

Просмотров 3

  1. Перейдите на вкладку "Дополнительно".
  2. Нажмите добавить в разделе "контекстные фильтры".
  3. Выберите Содержимое: nid.
  4. В разделе "если переменная фильтра недоступна, выберите "указать значение по умолчанию".
  5. В раскрывающемся меню выберите "идентификатор содержимого из URL".
  6. Прокрутка полностью спуститесь в нижнюю часть окна и нажмите на ссылку "Еще".
  7. Нажмите "Исключить"
 0
Author: Debbie Delargy, 2013-09-15 14:25:27