В основному те, що вам потрібно зробити, це зробити 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"
всередині обох цих класів. Після встановлення, решта даних багатошарової навігації / категорії базується на цій колекції.
Ознайомтеся з початковим запитанням + відповідь тут .
Удачі ;)