Özel sayfaya katmanlı gezinme bloğu ekleme


9

Magento'da, Katmanlı Gezinme bloğu ürün listesi sayfasında iyi çalışır.

Bu blok, özel bir ürün listesinin bulunduğu özel bir sayfaya nasıl başarıyla kopyalanabilir?

Not: Bloğu XML'e eklemek ve onu çağırmak getChildHtml('blockname')hile yapmaz.


2
Görüntülenen gezinme geçerli kategorinin ürünlerinden oluşturulduğu için, görüntülenen gezinme bloğu koduna varsayılan bir kategori eklemeniz gerekir.
Sander Mangel

Yardım için +1, birden fazla kategoriden birden fazla ürün varsa (örneğin, anlaşma ürünleri) ne olur?
pzirkind

2
Bunun için özel bir kategori yapardım. Başka yollar olabilir ama bu kesinlikle en kolay ve en ölçeklenebilir olanı!
Sander Mangel

1
Gerçekten isterseniz, özel bir kategori oluşturmanız gerekir. Katmanlı gezinme gerçekten çalışmak için bir kategori olmasını bekliyor, çok sayıda sınıfı geçersiz kılmadan basit bir ProductCollection almayacak.
Rick Kuipers

Yanıtlar:


5

Temel extend/overwriteolarak Mage_Catalog_Block_Product_List'ten yapmanız (List.php) ve getProductCollection()yöntemi yeniden yazmanız gerekir :

protected function _getProductCollection()
{
    if (is_null($this->_productCollection)) {
        // Build collection and set it
        $collection = "...";
        $this->setProductCollection($collection);
    }

    return $this->_productCollection;
}

Bu yapıldığında hem Mage_Catalog_Model_Layersınıfın hem de sınıfın üzerine yazmıştım Mage_Catalog_Model_Categoryve yeni bir değişken getirdim :

protected $_customProductCollection;

Her getProductCollection()iki sınıfta da üzerine yazdım ve bunu yöntemin başında ekledim:

if(isset($this->_customProductCollection)){
    return $this->_customProductCollection;
}

Ayrıca bu "customProductCollection"iki sınıfın içinde bunu ayarlamak için izin veren bir yöntem var . Ayarlandıktan sonra, katmanlı gezinme / kategorideki verilerin geri kalanı bu koleksiyona dayanır.

İlk soruyu + cevabı buradan kontrol edin .

İyi şanslar ;)


Saklama ürün toplama işlemini ayarlamak için bu yöntem nedir ve nereden çağrılır?
easymoden00b
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.