Случайное фото Commerce + Views

Тип материала: 
Версия Drupal: 
Модули и темы: 
Форумы: 
Втр, 27/12/2016 - 19:30

Вывожу display product через views. В одном display несколько товаров разных по цвету (одно фото на товар).
Views группирует и отображает только уникальные позиции. Как при агрегации заставить брать рандомную фотку из одного display, а не только первого добавленного товара?

0 Спасибо

Комментарии

Аватар пользователя sas@drupal.org
2 months 10 часов назад sas@drupal.org #

Есть рандомная вортировка во views, если другие условия группировки не позволяют получить рандомные фото, используйте views display-attachment к данному.

0 Спасибо
Аватар пользователя nasferatu
2 months 9 часов назад nasferatu #

Рандомные сортировки не помогают, все равно получается вот такая картина door
Пытаюсь добиться отображения рандомной фотки, а не фоток дверей только одного цвета.

0 Спасибо
Аватар пользователя ХулиGUN
2 months 7 часов назад ХулиGUN #

Рандом - зло

0 Спасибо
Аватар пользователя nasferatu
2 months 6 часов назад nasferatu #

хорошо. Не рандом.
Товар к дисплею добавляем через inline entity form. Там можно выставлять какой угодно порядок, но это не влияет на отображение во views. Все равно отображается картинка по наименьшему id товара. Как это можно изменить?

0 Спасибо
Аватар пользователя ХулиGUN
2 months 5 часов назад ХулиGUN #

Как всегда есть 2 путя: через жопу и нормальный. Через жопу Вы используете какой нить views_embed_views, и делаете 2 вьюхи. Нагрузка колосальная, но кеширование спасает.
Либо пишите кастом со всей логикой. Генерацию рандома используйте на стороне пхп, а не запроса к бд. Т.е. получили сущность, взяли из неё айдишники связанных (товаров), рандомно выбрали айдишник и загрузили сущность по этому айди.
В этом случае количество запросов как минимум будет = (количество сущностей на страницу *2 + 1). В случае с вьюхой - на порядок больше. Для уменьшения количества запросов используем маппинг - сначала собираем айдишники связанных (товаров), которые нужно вывести, затем одним запросом загружаем их все, а уже потом распихиваем по своим ячейкам.
Таким образом можно снизить количество обращений к бд до 2х

0 Спасибо
Аватар пользователя nasferatu
2 months 5 часов назад nasferatu #

понял. Спасибо. Я еще раз посмотрел на картинку и на написанное и понял, что картинка очень даже красиво смотрится))

0 Спасибо