2011-04-20 16 views
15

पर Magento स्तरित नेविगेशन Magento (ver। 1.8.0.0) के लिए एक कस्टम मॉड्यूल पर काम कर रहा है जो एक निश्चित उत्पाद के संबंधित उत्पादों की एक सूची दिखाता है।कस्टम उत्पाद संग्रह

इसे प्राप्त करने के लिए मैंने Mage_Catalog_Block_Product_List कक्षा को ओवरराइट करके अपना स्वयं का मॉड्यूल बनाया है।

एक नियंत्रक से मैं उत्पादों entity_id पकड़ने और मैं रजिस्ट्री में उत्पाद की दुकान तो मैं इसे अपने कस्टम लिखा ब्लॉक जो

list.php कहा जाता है के अंदर उपयोग कर सकते हैं:

असल में यहाँ यह कैसे काम करता है यहाँ विधि है कि उत्पाद संग्रह भरता है:

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; 
} 

मैं भी बनाने के लिए अपने कस्टम मॉड्यूल के लेआउट .xml में निम्नलिखित जोड़ा यकीन है कि बहुस्तरीय नेविगेशन पता चलता है:

012,
<reference name="left"> 
     <block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/> 
    </reference> 

स्तरित नेविगेशन दिखाता है, लेकिन ऐसा लगता है कि यह उपरोक्त विधि में उपयोग किए गए कस्टम संग्रह के बजाय सभी उत्पादों को संग्रह के रूप में ले रहा है।

मुझे यह भी पता है कि मैं सूची/परत का उपयोग इस $layer = Mage::getSingleton('catalog/layer');

परत वर्ग भी एक विधि prepareProductCollection और setCollection कहा जाता है, लेकिन किसी कारण से मैं यह काम करने के लिए नहीं मिल सकता है हो सकता है।

इस पर कोई मदद?

मूल रूप से मैं कस्टम संग्रह में मौजूद उत्पादों के लिए स्तरित नेविगेशन रखना चाहता हूं।

धन्यवाद,

उत्तर

15

मैं सिर्फ प्राप्त करने के लिए मैं चाहता था कामयाब रहे। protected $_customProductCollection;

मैं दोनों वर्गों में getProductCollection() ओवरराइट है और मैं विधि की शुरुआत में इस कहा: मैं दोनों Mage_Catalog_Model_Layer वर्ग और Mage_Catalog_Model_Category

दोनों अब एक नया चर कहा है $ _customCollection ओवरराइट है

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

मैं भी एक विधि है कि मुझे इन दोनों वर्गों के अंदर इस "customProductCollection" स्थापित करने के लिए अनुमति देता है। एक बार यह सेट हो जाने के बाद, स्तरित नेविगेशन/श्रेणी का शेष डेटा इस संग्रह पर आधारित होता है।

;)

+2

इस सेटिंग विधि क्या है और जहां से यह कहते हैं? – easymoden00b

संबंधित मुद्दे