Контекстный фильтр по аргументу, которого нет в URL

Раздел форума: 

Добрый день. Такой вопрос: как вывести на странице ноды в блоке список всех схожих с ней по некому полю других нод? Например, на странице фильма все фильмы того же режиссера? Понятно, что надо использовать контекстный фильтр во views. Вопрос: откуда брать аргумент в таком случае? Если только через PHP-код, то какой шаблон этого кода? Понимаю, что там всего пару строк, но я в программировании не разбираюсь, а все нагугленные решения не работают.

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
Прикрепить
Максимальный размер файла: 128 МБ.
Разрешённые типы файлов: txt doc docx rar zip xls xlsx pdf odf odt jpg jpeg gif png psd rtf.

Если вы хотите связать два

Если вы хотите связать два типа материала, то лучше всего использовать references (связи):

http://drupal.org/project/references

Вы добавляете поля связи в тип материала Фильм, где будет связь с Режиссером. Потом эти связи можно будет использовать в связях Views:

Views contextual filters, relationships - аргументы и отношения (связи)

 

Спасибо за ответ, Иван, но вы

Спасибо за ответ, Иван, но вы меня не поняли. Типы фильмы и режиссеры у меня уже связаны, через Entity Reference. И, например, у меня получилось вывести на странице режиссера все его фильмы в блоке, потому что аргумент для контекстного фильтра берется из URL. А что делать, если нужно вывести то же самое на странице конкретного фильма? В URL нужного аргумента нет, но он есть в поле "режиссер" ноды, которая выведена. 

Аналогичный вопрос задавался и решение ему предлагалось здесь http://www.drupal.ru/node/67914 , но у меня это решение не сработало. Я понимаю, что через php нужную функцию легко можно состряпать, но сам не разбираюсь в программировании совершенно.

Ну и конечно (это же Друпал) есть модуль вроде как раз для этого, но он плохо развивается и поэтому не работает с entity reference. Это модуль views_arguments_extras. Судя по всему, он будет работать с node reference, но хотелось бы найти решение именно для  entity reference. 

 

 

 

 

Добрый день. Такой вопрос:

Добрый день. Такой вопрос: как вывести на странице ноды в блоке список всех схожих с ней по некому полю других нод? Например, на странице фильма все фильмы того же режиссера?

Вот у вас есть нода фильма, вы создаете view с аргументом по nid, дальше вы добавляете связь с режиссером, потом вам нужно добавить еще вторую связь reverse referencing (или что-то около того, чтобы вывести все материалы в которых есть связь на нужного режиссера) причем вторая связь зависить должна от первой (зависимость выбирается в самом верху в редактирование связи) и уже вторую связь вы выставляете в аргумент nid (контекстный фильтр). Ну как-то так, нужно просто через две связи делать, решение будет простое, но будет кушать ресурсы сервера.

Да, у меня первая мысль была

Да, у меня первая мысль была в том же ключе - контекстный фильтр по nid из url'a, но с установкой связи и подключением это связи в настройках фильтра. Но у меня это не сработало. Насчет двойной связи я если честно не очень понял, тоже думал в этом направлении, но решение и в правду будет нелогичным и нагруженным. На самом деле странно, что во views нет нормального решения из коробки, чтобы аргумент брался из заданного поля ноды. Т.е. оно есть, но для тех, кто знает php и друпаловский api. Ладно, не буду мучиться и вас мучить - буду использовать что-то из готовых модулей (http://drupal.org/node/323329).