Menambahkan blok navigasi berlapis ke halaman khusus


9

Di Magento, blok Layered Navigation berfungsi dengan baik di halaman daftar produk.

Bagaimana cara blok ini berhasil disalin ke halaman kustom, di mana ada daftar produk kustom?

Catatan: Hanya menambahkan blok ke XML, dan memanggil itu getChildHtml('blockname')tidak berhasil.


2
Anda perlu menambahkan kategori default ke kode blok navigasi layared karena navigasi layared dibuat dari produk-produk dari kategori saat ini.
— Sander Mangel

+1 untuk bantuan, bagaimana jika ada banyak produk dari berbagai kategori (misalnya, produk kesepakatan)?
— pzirkind

2
Saya akan membuat kategori khusus untuk itu. Mungkin ada cara lain tapi ini jelas yang paling mudah dan paling dapat diukur!
— Sander Mangel

1
Jika Anda benar-benar ingin maka Anda harus membuat kategori khusus. Navigasi berlapis benar-benar berharap ada kategori untuk bekerja dengan, itu tidak akan mengambil ProductCollection sederhana tanpa mengesampingkan banyak kelas.
— Rick Kuipers

Jawaban:


5

Pada dasarnya yang harus Anda lakukan adalah extend/overwritedari 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_Layerkelas dan Mage_Catalog_Model_Categorydan 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 ;)


Apa metode ini untuk mengatur koleksi customproduct dan dari mana Anda menyebutnya?
— easymoden00b
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.