2012-10-24 13 views
7

पर एक नया संदर्भ ब्लॉक जोड़ना मुझे Magento में काम करने के लिए कस्टम संदर्भ ब्लॉक प्राप्त करने में कुछ परेशानी हो रही है।Magento

चरण 1

page.xml

<block type="core/text_list" name="newreference" as="newreference"></block> 

चरण 2

में एक नया "संदर्भ" ब्लॉक निर्मित:

ये कदम मैं ले लिया है कर रहे हैं इस ब्लॉक में उस स्थान पर एक संदर्भ जोड़ा गया है जिसे मैं पृष्ठ में दिखाना चाहता हूं (ऊपर 1column.phtml में पाद लेख, 2columns-left.phtml, 2columns-right.phtml, 3columns.phtml)

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

चरण 3

जोड़ा गया जो catalog.xml के लिए एक संदर्भ Magento बताता है मैं चाहता हूँ श्रेणी पृष्ठों पर 'newreference' संदर्भ ब्लॉक में एक टेम्पलेट भाग (specialfooter.phtml) उत्पादन के लिए

<reference name="newreference"> 
    <block type="core/template" name="specialfooter" template="page/html/specialfooter.phtml"></block> 
</reference> 

चरण 4

परीक्षण के लिए एक सरल अनुच्छेद ब्लॉक के साथ पृष्ठ/html/निर्देशिका में 'specialfooter.phtml' बनाया गया।

और कुछ भी नहीं होता है।

संदर्भ ब्लॉक जो काम करता है, मेरी समझ के साथ मैंने जो कदम उठाए हैं, लेकिन मैं गलत हो सकता हूं। मैं किसी दस्तावेज, आधिकारिक या अन्यथा, या किसी भी पिछले SO प्रश्नों को खोजने के लिए संघर्ष कर रहा हूं जो इस विषय पर कोई प्रकाश डालता है।

मैं Magento ver का उपयोग कर रहा हूं। 1.7.0.2।

किसी भी मदद की बहुत सराहना की जाएगी।

+0

सबसे संभावित समस्या यह है कि आपने कैश को साफ़ नहीं किया है ताकि नोड आपके पास कैश किए गए एक्सएमएल लेआउट में लोड न हो। आपके कदम सही लगते हैं। –

+0

दुर्भाग्य से, मैं डरावने Magento कैश और डेवलपर्स को पकड़ने की क्षमता के बारे में अच्छी तरह से जानता हूँ। मैंने कैश को साफ़ करने और अक्षम करने की कोशिश की है। – john0514

उत्तर

7

क्या आप echo भूल गए हैं? :

<?php echo $this->getChildHtml('newreference'); ?> 
+0

यह बहुत समय पहले था कि मुझे याद नहीं आया कि यह मुद्दा था, लेकिन निश्चित रूप से एक गूंज गायब है - कितना शर्मनाक है! इसे स्वीकार करने के रूप में चिह्नित करना, देरी के लिए खेद है - उत्तर देने के लिए धन्यवाद। – john0514

0

मुझे एक ही समस्या हो रही थी और यह मेरे लिए काम करता प्रतीत होता है।

लेआउट/page.xml

<block type="page/html/new_newreference" name="newreference" as="newreference" template="page/html/new/newreference.phtml"/> 

में यह ब्लॉक एक पेज जैसे में संदर्भित किया जा सकता है। 1column.phtml का उपयोग कर टेम्पलेट/पेज फ़ोल्डर में:

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

नोट "प्रकार" नामकरण और "टेम्पलेट" पथ और "नाम" और के बीच संबंध "के रूप में" getChildHtml साथ()।

उत्पाद पृष्ठ के लिए समान सिद्धांत का उपयोग करना। लेआउट/catalog.xml

<block type="catalog/product_new" name="catalogreference" as="catalogreference" template="catalog/product/new/catalogreference.html"/> 

टेम्पलेट/कैटलॉग/उत्पाद/दृश्य में संदर्भित किया जा सकता है।phtml का उपयोग कर:

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

नोट दोनों इन उदाहरणों फ़ोल्डर विशिष्ट

आप एक ब्लॉक एक विजेट के साथ उपयोग करना चाहते हैं कर रहे हैं। प्रासंगिक ब्लॉक फ़ाइल उदाहरण में इस ब्लॉक को उपयुक्त संदर्भ ब्लॉक जैसे "सामग्री" या "सिर" में जोड़ें। page.xml या catalog.xml:

<block type="core/text_list" name="mywidgetblock" as="mywidgetblock"> 
     <label>My widget Block</label> 
    </block> 

एनबी: मैं "प्रकार" घोषणा समझ में नहीं आता है, लेकिन यह काम करता है?

व्यवस्थापक पैनल में सीएमएस/विजेट/विजेट इंस्टेंस नया या मौजूदा लेआउट अपडेट/ब्लॉक संदर्भ ड्रॉप डाउन से "मेरा विजेट ब्लॉक" ढूंढें।

मैं Magento के लिए नया हूं और इसे काम करने के लिए बहुत परीक्षण और त्रुटि मिली है, इसलिए मुझे उम्मीद है कि यह किसी भी स्थिति में किसी की मदद करेगा।