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.