โดยทั่วไปสิ่งที่คุณต้องทำคือ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"
ภายในทั้งสองชั้นเรียนเหล่านี้ เมื่อตั้งค่าเรียบร้อยแล้วข้อมูลส่วนที่เหลือของการนำทาง / หมวดหมู่ที่เป็นชั้นจะยึดตามคอลเลกชันนี้
ตรวจสอบคำตอบของคำถาม + เริ่มต้นที่นี่
โชคดี ;)