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