2014-09-26 6 views
5

मैं श्रेणी के टेम्पलेट list.phtml में उपयोग किए जा सकने वाले डेटा के टुकड़े निर्दिष्ट करने के लिए Manage Categories -> [Some Category] -> Custom Design के अंतर्गत दिखाई देने वाले "कस्टम लेआउट अपडेट" बॉक्स का उपयोग करके चर सेट करने में सक्षम होना चाहता हूं।Magento: प्रति श्रेणी आधार पर "कस्टम लेआउट अपडेट" एक्सएमएल के माध्यम से चर सेट करना?

अब तक, मैं इस का उपयोग कर की कोशिश की है:

<reference name="product_list"> 
    <action method="setData"> 
     <name>custom_banner_type</name> 
     <value>single</value> 
    </action> 
    <action method="setData"> 
     <name>custom_banner_position</name> 
     <value>3</value> 
    </action> 
</reference> 

लेकिन जब मैं list.phtml अंदर echo $this->getData("custom_banner_type"); कोशिश डेटा उपलब्ध नहीं है।

मैंने टेम्पलेट के नियंत्रक List.php के अंदर _beforeToHtml() फ़ंक्शन के अंदर डेटा प्राप्त करने का भी प्रयास किया है, लेकिन यह कुछ भी नहीं करता है!

तो क्या कोई तरीका है कि मैं कस्टम लेआउट अपडेट एक्सएमएल का उपयोग कर डेटा/वैरिएबल पास कर सकता हूं? इसे वहां से किया जाना है, क्योंकि प्रत्येक श्रेणी के लिए डेटा बदल जाएगा, इसलिए मैं हार्ड-कोडित लेआउट फ़ाइलों का उपयोग नहीं कर सकता।

+0

यहां इस लिंक को देखें: http://magento.stackexchange.com/a/14605/395 –

+0

@RohitS धन्यवाद लेकिन इससे मदद नहीं मिली। जहां तक ​​मैं देख सकता हूं कि मेरा वाक्यविन्यास सही है और मैं सही तरीकों का उपयोग कर रहा हूं। लेकिन डेटा अभी भी नहीं हो रहा है। – WackGet

+0

कैश रीफ्रेश करें, और var/cache/* पहले से ही? –

उत्तर

8

आप किस लेआउट हैंडल में यह कर रहे हैं? catalog_category_view और catalog_category_layered का उपयोग किया जाना चाहिए। शायद आप XML के साथ डेटा सेट करने के लिए डिफ़ॉल्ट Magento तरीका का उपयोग कर सकते हैं। Magento सेट फ़ंक्शन के साथ xml में डेटा सेट करता है, जिसे मैं XML में setData से अधिक पठनीय पाते हैं।

उदाहरण:

<catalog_category_view> 
    <reference name="product_list"> 
    <action method="setCustomBannerType"><value>single</value></action> 
    <action method="setCustomBannerPosition"><value>3</value></action> 
    </reference> 
</catalog_category_view> 

डेटा आप $this->getData('custom_banner_type'); लेकिन यह भी $this->getCustomBannerType(); जो एक ही है इस्तेमाल कर सकते हैं प्राप्त करने के लिए। यदि आप इसके बारे में और जानना चाहते हैं तो मैं जादू विधियों को देखने का सुझाव दूंगा (http://php.net/manual/en/language.oop5.magic.php)

मुझे नहीं पता कि कैश सक्षम है या नहीं, तो कैश फ्लश करें और इसे काम करना चाहिए।

+1

क्या हैडल आवश्यक है यदि आप पहले से ही बैकएंड में श्रेणी के कस्टम लेआउट अपडेट बॉक्स में हैं? –

+0

नहीं, इसे बिना काम करना चाहिए! –

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