Về cơ bản những gì bạn phải làm là extend/overwrite
từ 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_Layer
lớp và lớp Mage_Catalog_Model_Category
và 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 ;)