Pada dasarnya yang harus Anda lakukan adalah extend/overwrite
dari Mage_Catalog_Block_Product_List (List.php)
dan menulis ulang getProductCollection()
metode:
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
// Build collection and set it
$collection = "...";
$this->setProductCollection($collection);
}
return $this->_productCollection;
}
Ketika itu selesai, saya telah menimpa Mage_Catalog_Model_Layer
kelas dan Mage_Catalog_Model_Category
dan memperkenalkan variabel baru:
protected $_customProductCollection;
Saya telah menimpa getProductCollection()
di kedua kelas dan saya menambahkan ini di awal metode:
if(isset($this->_customProductCollection)){
return $this->_customProductCollection;
}
Saya juga memiliki metode yang memungkinkan saya untuk mengatur ini "customProductCollection"
di dalam kedua kelas ini. Setelah diatur, sisa data navigasi / kategori berlapis didasarkan pada koleksi ini.
Lihatlah pertanyaan awal + jawaban di sini .
Semoga berhasil ;)