Как я могу создать представление, которое показывает другие узлы, ссылающиеся на тот же узел, на который ссылается текущий узел?
Допустим, у меня есть дома и районы (дома ссылаются на район, в котором они находятся, через поле ссылки на узел). На странице сведений о доме я хочу показать другие дома в том же районе.
Кажется достаточно простым, и я нашел следующее: Создайте представление в поле ссылки на узел, но это не совсем то, что мне нужно сделать, так как мне нужно найти другие дома, которые ссылаются на тот же район, что и текущий дом (не те, которые ссылаются на текущий дом дом).
Я также нашел это: Ссылки на узлы просмотр: получите другие узлы, которые также ссылаются на тот же узел, но я использую только 2 типа контента (дома и районы). Есть какие-нибудь идеи? Мой мозг устал после попыток продумать отношения и аргументы этой вещи:)
4 answers
Вы должны быть в состоянии сделать это с помощью отношений. Добавьте поле ссылки на узел окрестности в качестве отношения. Добавьте NID в качестве аргумента и примените только что созданное отношение соседства в качестве отношения к этому аргументу NID. Это подскажет представлениям использовать NID поля ссылки на узел в качестве аргумента.
Самый простой способ - использовать модуль Viewfield.
- Сначала установите Токен и Поле просмотра
- Добавить новое представление для домашнего типа контента с двумя аргументами (контекстные фильтры):
- Ваше поле ссылки на окрестности
- Содержимое: Nid с идентификатором содержимого по умолчанию из URL и установите флажок "Исключить". Необязательно, чтобы исключить узел, который просматривается.
- Перейдите к своему домашнему типу контента и добавьте новое поле типа Просмотры.
- Настройка поля с помощью токенов.
- ПРИМЕЧАНИЕ: Я не знаю, как это будет работать с несколькими ссылками, но с одним значением ссылки это отлично работает. В любом случае вы сможете решить эту проблему с помощью PHP-кода проверки в представлениях.
Обновление: Отношения - лучший выбор в этой задаче, но я обнаружил странную ошибку в своем Drupal, поэтому я предложил способ с полем просмотра.
То, что вы делаете, обычно называется обратной ссылкой на узел. Вы запрашиваете, чтобы найти все узлы, у которых есть поле ссылки на узел, относящееся к текущему узлу. Вот как это сделать:
- Добавьте поле ссылки на узел в качестве аргумента в представление.
- Добавьте
$args[0] = arg(1);
в качестве кода обработки аргументов.
Важно отметить, что вы создадите отображение блока для представления, чтобы аргументы были правильно оценены.
Надеюсь, это кому-нибудь поможет...
Взято из https://drupal.org/node/131547 Исключите текущий узел из представления списка.
Просмотров 3
- Перейдите на вкладку "Дополнительно".
- Нажмите добавить в разделе "контекстные фильтры".
- Выберите Содержимое: nid.
- В разделе "если переменная фильтра недоступна, выберите "указать значение по умолчанию".
- В раскрывающемся меню выберите "идентификатор содержимого из URL".
- Прокрутка полностью спуститесь в нижнюю часть окна и нажмите на ссылку "Еще".
- Нажмите "Исключить"