Как получить все элементы для активных фильтров в Magento Layered Navigation?

Как только фильтр становится активным, он возвращает 0 элементов, поэтому он больше не будет отображаться в "ПАРАМЕТРАХ ПОКУПКИ". Для моей пользовательской многоуровневой навигации мне нужно получить и показать эти элементы. Я знаю, что некоторые расширения уже делают это (и предоставляют флажки рядом с элементом), но я хотел бы знать, как сделать это самому.

2 ответа

Если вы хотите, чтобы ваши многоуровневые навигационные фильтры отображались, когда результаты для фильтра равны 0, тогда все, что вам нужно сделать, - это отредактировать атрибуты продукта и установить параметр Использовать в многоуровневой навигации = Фильтруемый (без результата).

На самом деле, это очень сложная проблема, потому что вы НЕ МОЖЕТЕ получить элементы из активного фильтра. Этот "фильтр" больше не является фильтром, теперь он является состоянием и, следовательно, не может дать вам никаких предметов (см. app\design\frontend\base\default\template\catalog\layer\state.phtml и сравните это с filter.phtml). То, что вы МОЖЕТЕ сделать, это немного бороться с app\code\core\Mage\Catalog\Model\Layer модели, а особенно app\code\core\Mage\Catalog\Model\Resource\Eav\Mysql4\Layer\Filter\Attribute.php, Это ресурс, который выполняет всю работу по добавлению слоев, подсчету продуктов для слоев... Если вы знакомы с объектом Zend Select, и немного mysql, вы можете довольно легко достичь того, что вы хотите с многоуровневой навигацией.

Насколько я знаю, большинство коммерческих модулей используют AJAX для имитации некоторых новых многоуровневых функций навигации (они на самом деле не портятся).

Если вы не знакомы с разработкой Magento, многоуровневая навигация, вероятно, является худшим местом для начала...

Другие вопросы по тегам