В основном, что вы должны сделать, это extend/overwrite
из Mage_Catalog_Block_Product_List (List.php)
и переписать getProductCollection()
метод:
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
// Build collection and set it
$collection = "...";
$this->setProductCollection($collection);
}
return $this->_productCollection;
}
Когда это было сделано, я переписал и Mage_Catalog_Model_Layer
класс, и класс Mage_Catalog_Model_Category
и ввел новую переменную:
protected $_customProductCollection;
Я переписал getProductCollection()
в обоих классах, и я добавил это в начале метода:
if(isset($this->_customProductCollection)){
return $this->_customProductCollection;
}
У меня также есть метод, который позволяет мне установить это "customProductCollection"
внутри обоих этих классов. Как только он установлен, остальные данные многоуровневой навигации / категории основаны на этой коллекции.
Проверьте первоначальный вопрос + ответ здесь .
Удачи ;)