Pracuję nad niestandardowym modułem dla Magento (wersja 1.8.0.0), który pokazuje listę powiązanych produktów danego produktu.Nawigacja warstwowa Magento na niestandardowej kolekcji produktów
Aby to osiągnąć, stworzyłem własny moduł, zastępując klasę Mage_Catalog_Block_Product_List
.
Zasadniczo oto jak to działa:
od kontrolera złapię produkty entity_id
i przechowywać produkt w rejestrze, dzięki czemu można go używać w moim niestandardowego pisemnej bloku, który jest nazywany list.php
Oto metoda, która wypełnia kolekcję produktów:
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
$prod = Mage::registry('chosenproduct');
$this->_productCollection = $prod->getRelatedProductCollection()
->addAttributeToSelect('required_options')
->addAttributeToFilter(array(array('attribute'=>'accessory_manufacturer','neq'=>false)))
->addAttributeToSort('position', 'asc')
->addStoreFilter()
->setPageSize(30)
->setCurPage(1);
;
$this->_addProductAttributesAndPrices($this->_productCollection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($this->_productCollection);
$this->setProductCollection($this->_productCollection);
}
return $this->_productCollection;
}
Dodałem też następujące w .xml układ mojego modułu niestandardowego upewnić warstwowa nawigacja pokazuje:
<reference name="left">
<block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
</reference>
Nawigacja warstwowa pokazuje, ale wygląda na to, że bierze wszystkie produkty jako kolekcję zamiast niestandardowego zbioru używanego w metodzie, którą dodałem powyżej.
wiem też, że mogę dostać katalog/warstwę za pomocą tego $layer = Mage::getSingleton('catalog/layer');
klasa Warstwa posiada również metodę zwaną prepareProductCollection i setCollection ale z jakiegoś powodu nie mogę zmusić go do pracy.
Każda pomoc w tej sprawie?
Zasadniczo chcę mieć warstwową nawigację dla produktów znajdujących się w kolekcji niestandardowej.
Dzięki,
Co to jest metoda ustawienia i skąd ją wywołujesz? – easymoden00b