Về cơ bản những gì bạn phải làm là extend/overwritetừ Mage_Catalog_Block_ Productt_List (List.php) và viết lại getProductCollection()phương thức:
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
// Build collection and set it
$collection = "...";
$this->setProductCollection($collection);
}
return $this->_productCollection;
}
Khi đã xong, tôi đã ghi đè cả Mage_Catalog_Model_Layerlớp và lớp Mage_Catalog_Model_Categoryvà giới thiệu một biến mới:
protected $_customProductCollection;
Tôi đã ghi đè lên getProductCollection()cả hai lớp và tôi đã thêm phần này vào đầu phương thức:
if(isset($this->_customProductCollection)){
return $this->_customProductCollection;
}
Tôi cũng có một phương thức cho phép tôi đặt cái này "customProductCollection"bên trong cả hai lớp này. Sau khi được đặt, phần còn lại của dữ liệu của điều hướng / danh mục lớp được dựa trên bộ sưu tập này.
Kiểm tra câu hỏi ban đầu + trả lời ở đây .
Chúc may mắn ;)