2010-06-22 18 views
11

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

{{widget type="enterprise_banner/widget_banner" display_mode="fixed" rotate="series" banner_ids="4" template="banner/widget/block.phtml" unique_id="744a56c9a042cc9fa166163c12d869d9"}} 

काफी सरल। तो मेरे लेआउट xml के अंदर, मैंने यह कोशिश की:

<block type="enterprise_banner/widget_banner" name="hero_banners" as="hero_banners" display_mode="fixed" rotate="series" banner_ids="4" template="banner/widget/block.phtml" unique_id="744a56c9a042cc9fa166163c12d869d9" /> 

समान पैरामीटर; मैंने अभी नाम और जैसा जोड़ा है। और फिर, मेरे टेम्पलेट के अंदर ...

<?php echo $this->getChildHtml('hero_banners'); ?> 

लेकिन मुझे कोई आउटपुट नहीं मिला। प्रोफाइलर नोट करता है कि hero_banners ब्लॉक लोड हो गया है, लेकिन इसकी टेम्पलेट फ़ाइल (बैनर/विजेट/block.phtml) कभी नहीं चलती है।

क्या कोई जानता है कि मैं क्या गलत कर रहा हूं?

-पी

उत्तर

19

बाहर है, यह है क्योंकि यह उसके मानदंड नहीं ले पा रहा था किसी भी सार्थक डेटा डालने नहीं किया गया। यह जरूरत अमानक मापदंडों कार्रवाई टैग के माध्यम से स्थापित किया जाना:

<block type="enterprise_banner/widget_banner" name="hero_banners" as="hero_banners" template="banner/widget/hero.phtml"> 
    <action method="setDisplayMode"><value>fixed</value></action> 
    <action method="setBannerIds"><value>4</value></action> 
</block> 
+1

यदि विजेट ब्लॉक कोर/टेक्स्ट_लिस्ट ब्लॉक का बच्चा है, तो रूट ब्लॉक में सीधे इस तरह के विजेट को डालने के लिए यह दिखाई नहीं देता है, यह केवल काम करता है (कम से कम 1.6.2 में)। – benz001

2

के बाद से विषय के लिए पहले हल किया गया है, मैं एक बंद विषय है समाधान

यह एक .phtml फ़ाइल के भीतर एक ब्लॉक के रूप में स्थापित किया जा सकता है यदि आवश्यक हुआ।

<?php echo $this->getLayout()->createBlock('enterprise_banner/widget_banner')->setBannerIds('4')->setDisplayMode('fixed')->setTemplate('banner/widget/block.phtml')->toHtml(); ?> 
संबंधित मुद्दे