В блоке views показать только те ноды, определенное поле которых совпадает с полем Ноды, на странице которой сейчас мы находимся

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

Аватар пользователя Mitriy-Bug Mitriy-Bug 15 ноября 2017 в 11:09

Заголовок запутанный, надеюсь поняли.
Есть ноды с полями улица, на странице конкретной ноды надо показать другие ноды с этой же улицы.

Создал Views:
http://joxi.ru/VrwMLYqSOEdaK2

Отображение настроил. Теперь не могу разобраться с контекстными фильтрами. Уже настроено:

  1. Отображать только ноды этого же региона (берется из URL)
  2. Не показывать в блоке ту ноду, которая открыта

А вот отфильтровать по улице не могу, в URL ее не хочу вставлять, слишком некрасиво будет

Лучший ответ

Аватар пользователя Mitriy-Bug Mitriy-Bug 16 ноября 2017 в 8:15

Пока сделал на основе скриптов js:

  1. Поле в самой ноде должно быть выведено на странице
  2. Создаем критерий фильтрации по нашему полю, с опреатором "равно" и оставляем его пустым, делаем его открытым для посетителей - http://joxi.ru/GrqyEYLFQ9d6gr
  3. Темизируем наш блок - block--views-block--avtosalons-street-block-1.html.twig. Можно и как то по другому, например вставить скрипт в подвал представления
  4. Вставляем наш скрипт:
    <script>
     jQuery(document).ready(function($) {
    var text = $(".field--name-field-ulica").text();
           $("#edit-field-ulica-value").val(text);
             $('#edit-submit-avtosalons-street').trigger('click');
       });
    </script>
  5. Скрыл стилями поле ноды и фильтр блока, чтобы не мозолили глаза

Топором рублено, но работает

Комментарии

Аватар пользователя Mitriy-Bug Mitriy-Bug 16 ноября 2017 в 8:15

Пока сделал на основе скриптов js:

  1. Поле в самой ноде должно быть выведено на странице
  2. Создаем критерий фильтрации по нашему полю, с опреатором "равно" и оставляем его пустым, делаем его открытым для посетителей - http://joxi.ru/GrqyEYLFQ9d6gr
  3. Темизируем наш блок - block--views-block--avtosalons-street-block-1.html.twig. Можно и как то по другому, например вставить скрипт в подвал представления
  4. Вставляем наш скрипт:
    <script>
     jQuery(document).ready(function($) {
    var text = $(".field--name-field-ulica").text();
           $("#edit-field-ulica-value").val(text);
             $('#edit-submit-avtosalons-street').trigger('click');
       });
    </script>
  5. Скрыл стилями поле ноды и фильтр блока, чтобы не мозолили глаза

Топором рублено, но работает