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.
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.
Yanıtlar:
Temel extend/overwrite
olarak 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_Layer
sınıfın hem de sınıfın üzerine yazmıştım Mage_Catalog_Model_Category
ve 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 ;)