2015-04-29 1 views
1

У меня есть следующий случай: я создаю сайт, на котором есть информация о кинематографистах и ​​их фильмах. У меня есть тип узла для режиссера, с биографическим контентом и т. Д., А другой - для фильмов, с полевым автором, который ссылается на одного или нескольких режиссеров (так как один фильм, возможно, был сделан несколькими из них).Drupal views: список ссылочных узлов, кроме тех, которые используются в качестве контекстного фильтра

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

Но теперь я хочу представить в этом блоке вместе с названием фильма все кинорежиссеры, которые, возможно, сделали фильм (поле «автор» в узле фильма) и отличаются от рассматриваемого режиссера. Отображение всех кинематографических узлов, на которые ссылается поле автора, является немедленным, но я хочу удалить создателя фильма, который я использую в контекстном фильтре. Цель состоит в том, чтобы получить что-то вроде этого:

КИНОРЕЖИССЕРОМ 1

  • Фильм 1
  • Movie 2Кинорежиссер 2)
  • Movie 3

У меня есть мнение, что это может быть сделано с помощью представлений PHP и фильтрации ссылки узла вернулась, но мне интересно, если есть простое решение для этого ...

Благодаря

Обновление: Я удался получить результат с помощью модуля View Field View, передав список ссылочных узлов (кинематографистов) в качестве контекстного фильтра (идентификатор узла), а затем добавив еще один контекстный фильтр (идентификатор узла) в качестве исключения и получив значение по умолчанию для письмо от «идентификатора узла от параметра URL» (т. е. на странице кинематографиста встроена фильмография). Сохраняя вопрос открытым какое-то время, чтобы получить другие, возможно более эффективные альтернативы.

ответ

0

Когда я прочитал ваш вопрос, модуль Views Views View появился в моем сознании как очевидное решение (тогда я увидел ваше редактирование). Я думаю, это все равно будет вашим лучшим выбором. Определенно избегайте использования php-полей, поскольку это не является хорошей практикой в ​​целом с точки зрения безопасности. Если вас беспокоит эффективность/производительность, вам нужно просто использовать настройки кэширования представлений в расширенных параметрах. Кажется, что этот вариант всегда просматривается.

Если вы ищете альтернативные варианты, можно использовать визуализированные узлы в качестве стиля View вместо полей, а затем использовать Display Suite для создания дополнительных режимов отображения за пределами «По умолчанию» и «Тизер», создать представление с помощью фильтров, а затем используйте модуль Entity Views Attachment (EVA), чтобы вставить представление в качестве поля режима отображения. Хотя это, безусловно, надежный подход, он добавляет много накладных расходов на обработку обработанных объектов, поэтому вы определенно хотите также кэшировать результаты этого.

p.s. Вы можете получить более быстрый/более ответов на https://drupal.stackexchange.com/