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.

pzirkind
sumber
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 ;)

Kenny
sumber
Apa metode ini untuk mengatur koleksi customproduct dan dari mana Anda menyebutnya?
easymoden00b