получить количество продуктов в строке из события
-
19-12-2019 - |
Вопрос
я слушаю Catalog_product_collection_load_after событие для добавления кода при загрузке сетки/списка продуктов категории, и из кода наблюдателя я хочу получить следующие данные:
- это Посмотреть список или вид сетки?
- если просмотр в виде сетки, сколько товаров в строке?
Похоже, мне нужен доступ к блоку панели инструментов продуктов, но я не знаю, как это сделать.или, может быть, есть лучший способ?
Редактировать:забыл упомянуть, что при изменении размера экрана меняется количество продуктов за строку (например, уменьшается на экранах меньшего размера).могу ли я узнать это заранее внутри php?
Спасибо!
Решение
Вы правы, полагая, что для доступа к этой информации вам нужен блок панели инструментов.Но событие, которое вы сейчас слушаете, catalog_product_collection_load_after
будет содержать только информацию, полученную о данных продукта, а не его репрезентативную логику.
Альтернативный подход может заключаться в прослушивании события. core_block_abstract_prepare_layout_after
и применить фильтр только для блока панели инструментов (сделайте его первым фильтром, поскольку это событие запускается при создании каждого отдельного блока в Magento).Таким образом, вы сможете получить всю информацию из блока панели инструментов сразу после его инициализации.
Кроме того, если вы видите уменьшенное количество продуктов в столбце, значит, это адаптивный дизайн в действии, и вы не можете знать об этом заранее через PHP.Вполне возможно, что на экранах разных размеров количество столбцов останется прежним, просто CSS настраивает его для правильного отображения.