कस्टम पृष्ठ पर स्तरित नेविगेशन ब्लॉक जोड़ना


9

Magento में, स्तरित नेविगेशन ब्लॉक उत्पाद सूची पृष्ठ में अच्छी तरह से काम करता है।

इस ब्लॉक को सफलतापूर्वक कस्टम पेज पर कैसे कॉपी किया जा सकता है, जहां उत्पादों की कस्टम सूची है?

नोट: एक्सएमएल में ब्लॉक को जोड़ना, और कॉल getChildHtml('blockname')करना यह चाल नहीं है।


2
लेयर्ड नेविगेशन ब्लॉक कोड के लिए आपको डिफ़ॉल्ट श्रेणी जोड़ने की आवश्यकता है क्योंकि वर्तमान श्रेणी के उत्पादों से स्तरित नेविगेशन का निर्माण होता है।
Sander Mangel

मदद के लिए +1, क्या होगा यदि कई श्रेणियों के कई उत्पाद हैं (उदाहरण के लिए, सौदा उत्पाद)?
pzirkind

2
मैं उसके लिए एक विशेष श्रेणी बनाऊंगा। वहाँ अन्य तरीके हो सकते हैं लेकिन यह निश्चित रूप से सबसे आसान और सबसे स्केलेबल है!
Sander Mangel

1
यदि आप वास्तव में चाहते हैं तो आपको एक कस्टम श्रेणी बनानी होगी। स्तरित नेविगेशन वास्तव में वहाँ के साथ काम करने के लिए एक श्रेणी होने की उम्मीद है, यह कक्षाओं की एक पूरी बहुत आगे निकाले बिना एक साधारण ProductCollection नहीं ले जाएगा।
रिक कुइपर्स

जवाबों:


5

मूल रूप से आपको जो करना है extend/overwriteवह Mage_Catalog_Block_Product_List से है (List.php) और getProductCollection()विधि को फिर से लिखें :

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

    return $this->_productCollection;
}

जब ऐसा किया गया था तो मैंने Mage_Catalog_Model_Layerकक्षा और अधिलेखित कर दिया था Mage_Catalog_Model_Categoryऔर एक नया चर पेश किया था:

protected $_customProductCollection;

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

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

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

यहां प्रारंभिक प्रश्न + उत्तर देखें ।

सौभाग्य ;)


कस्टमप्रोडक्क्लेक्शन सेट करने के लिए यह तरीका क्या है और आप इसे कहां से कहते हैं?
easymoden00b
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.