4.5.3. Views Аргументы (контекстные фильтры).

Главные вкладки

levmyshkin 8 июля 2019 в 11:19

Очень часто нам нужно вывести блок относящийся к определенному пользователю (например его статьи или объявления), вывести автора ноды в блоке, на странице этой ноды.

Видео:
https://www.youtube.com/watch?v=3yu4hbmqph0

Но при этом у каждого пользователя свой список объявлений, у каждой ноды свой автор и эти блоки будут соответсвенно разные для каждой ноды и пользователя. Для подобных блоков у нас есть контекстные фильтры во вьюс.

drupal 8 contextual filters

Теперь давайте добавим фильтр для объявления, чтобы фильтровались данные только для нашего объявления на странице объявления. Фильтровать нужно по полю nid. Давайте сначала рассмотрим как в целом работает этот фильтр. У нас есть урл ноды

/node/7

Где 7 - это nid нашей ноды. Мы говорим Views'у через контекстный фильтр, отфильтруй нам ноды по nid и для каждой ноды на разных страницах нод, у нас будут выводиться соотвествующие данные нод. Добавим фильтр nid:

drupal 8 contextual filters

Дальше нужно выбрать Default actions для контекстного фильтра, в данном случае нужно выбрать ID Материала из URL:

drupal 8 contextual links

Теперь можно проверить работу нашего фильтра, через форму предпросмотра. У меня есть объявление с nid 7, поэтому я ввожу 7 и нажимаю кнопку предпросмотра:

друпал 8 контекстные фильтры