Применить фильтр к productCollection в блоке

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
  • Тема закрыта
#1 Роман Будько (платить не будет)
  • платить ни за что не будет
  • Группа: Заблокирован
  • Сообщений: 1
  • Регистрация: 24.11.2014

24.11.2014 09:07

Добрый день, коллеги
Подскажите начинающему Magento-разработчику ) мне в наследство на поддержку достался ИМ на Magento, и сразу появилась куча вопросов.

На странице Каталога товаров есть фильтр, причем в фильтре некоторые из параметров -- множество checkbox (например фильтрация по нескольким брендам).

На этой же странице есть блок "Специальные предложения" куда попадают товары со скидками.

Требуется применить все активные фильтры Каталога на коллекцию товаров в блоке "Спецпредложения".

Пробую делать в app/code/local/My/All/Block/Catalog/Product/List/Special.php

$collection = Mage::getResourceModel('catalog/product_collection');
Mage::getModel('catalog/layer')->prepareProductCollection($collection);
$collection = $this->_addProductAttributesAndPrices($collection);
$collection->addStoreFilter();
$collection->addCategoryFilter(Mage::registry('current_category'));

/* получаем активные фильтры */
$_filters = Mage::getSingleton('catalog/layer')->getState()->getFilters();

...


а как дальше? Как применить все найденные фильтры к текущей коллекции?

Причем, если выбрано, например 2 фильра, но один мульти -- ?gender=man&trade_mark[]=addidas&trade_mark[]=nike в $_filters хранятся 3 фильтра, а не 2. Соответсвенно, чем больше брендов я выбираю, тем больше фильтров хранится в $_filters.

Товары Каталога фильтруются нормально, но как применить эти фильтры к коллекции в блоке -- разбираюсь уже 2 неделю, stackoverflow.com не помогает )

Прошу вашей помощи.

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

24.11.2014 09:11

На домен novex-trade.ru мне никто не оплачивал ни лицензию, ни техподдержку.

Поделиться темой: