Можно ли использовать при фильтьрации и сортировке views значения полученые в другой вьюхе?

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

Аватар пользователя VasyOK VasyOK 26 августа 2021 в 4:16

Приветствую специалистов по views.

Допустим у ноды есть значение, сформированное вьюхой.
Типа:

  • Самый похожий товар
  • Самый частый покупатель
  • Минимальная цена в этой категории

Вопрос: как эти значение использовать в качестве критериев фильтрации и сортировки во вьюхе выводящей ноды?

Комментарии

Аватар пользователя VasyOK VasyOK 26 августа 2021 в 23:43

Неужели мы действительно думаем об одном?

Ок, другой пример.
Вьюха выводит вариации товара с сортировкой по цене. Количество элементов 1. Т. обр. по контекстному фильтру ID товара получаем его самую дешевую вариацию - численное значение.

Можно использовать это значение для фильтрации и сортировки товаров в их вьюхе?

С other_view_filter в параметрах фильтрации вьюха минимума появляется только после того, как добавлена связь Вариации. Но там нигде нельзя указать численное значение.

Аватар пользователя gun_dose gun_dose 27 августа 2021 в 8:31

Ну да, видимо, всё же разные задачи немного. Тот модуль берёт результаты вьюхи, как набор сущностей. И их можно исключить из другой вьюхи, лиьо наоборот, сделать, чтобы другая вьюха показывала такие же результаты.

С другой стороны, в твоей задаче тоже много непонятного. Например, зачем использовать значение наименьшей цены, чтобы сортировать? Или как можно использовать наименьшую цену в фильтрах? Вот именно в этом кейсе я не вижу практичского смысла. Меньше минимальной цены будет пустой результат. Больше минимальной цены выведет все результаты. Это типа как "дайте мне список всех людей, кто выше одного сантиметра")))

Аватар пользователя gun_dose gun_dose 27 августа 2021 в 11:01
1

Сделать связь с вариацией. И отсортировать по полю вариации. Если бывает по много вариаций у товара, то повесить агрегацию по минимуму или максимуму в зависимости от того, под кого сайт заточен - под бичей или мажоров)))))

Аватар пользователя VasyOK VasyOK 27 августа 2021 в 19:13

Спасибо! В сортировка по цене поставил Тип агрегации - Минимум - заработало.

Во вьюхе 2 проблемных поля оказалось:
1. Изображение товара (именно товара, а не вариации) - сыпет ошибками
2. body товара - выводит HTML теги при выводе.

Во вьюху, которая выводит товары поставил:
Связь - Product variation
Использовать агрегацию: Да

После этого посыпало ошибками:
 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'commerce_product__field_produkt_images.field_produkt_images_' in 'field list': SELECT commerce_product_field_data.title AS commerce_product_field_data_title, commerce_product_field_data.langcode AS commerce_product_field_data_langcode, commerce_product__field_produkt_images.field_produkt_images_ AS commerce_product__field_produkt_images_field_produkt_images_, commerce_product__body.body_value AS commerce_product__body_body_value, MIN(commerce_product_field_data.product_id) AS product_id FROM {commerce_product_field_data} commerce_product_field_data LEFT JOIN {commerce_product__field_produkt_images} commerce_product__field_produkt_images ON commerce_product_field_data.product_id = commerce_product__field_produkt_images.entity_id AND commerce_product__field_produkt_images.deleted = :views_join_condition_0 LEFT JOIN {commerce_product__body} commerce_product__body ON commerce_product_field_data.product_id = commerce_product__body.entity_id AND (commerce_product__body.deleted = :views_join_condition_1 AND commerce_product__body.langcode = commerce_product_field_data.langcode) WHERE commerce_product_field_data.status = :db_condition_placeholder_3 GROUP BY commerce_product_field_data_title, commerce_product_field_data_langcode, commerce_product__field_produkt_images_field_produkt_images_, commerce_product__body_body_value LIMIT 11 OFFSET 0; Array ( [:db_condition_placeholder_3] => 1 [:views_join_condition_0] => 0 [:views_join_condition_1] => 0 )

Решил так.
1. в настройках агрегации поля Изображения изменил Столбец группировки, а потом опять вернул на "Идентификатор сущности" - ошибки ушли.

2. в настройках агрегации поля body товара Столбец группировки - тоже "Идентификатор сущности" - стало показывать текст, как надо.

Не понимаю почему так...

Аватар пользователя gun_dose gun_dose 27 августа 2021 в 22:58
1

Агрегация часто глючит именно подобным образом. Иногда даже достаточно открыть настройки и нажать ОК, ничего не меняя. В семёрке, кстати, то же самое бывало частенько.