2010-01-28 2 views
8

मैंने अपने कस्टम नेमस्पेस में स्थानीय कोड फ़ोल्डर के भीतर एक मॉड्यूल बनाया है। ब्लॉक फ्रंटएंड पर प्रदर्शित नहीं हो रहा है, और अपवाद लॉग की जांच करने पर, यह पता चला है कि Magento गलत जगह पर देख रहा है।Magento मेरे कस्टम नेमस्पेस के बजाय मैज नेमस्पेस में कॉल करने का प्रयास क्यों कर रहा है?

exception ‘Mage_Core_Exception’ with message ‘Invalid block type: 
Mage_MyCompany_ForthcomingProducts_Block_List’ 
in /var/www/html/app/Mage.php:407 

ही यह भी अगर मैं MyCompany_ उपसर्ग जब ब्लॉक बुला को बाहर चला जाता है, यह अभी भी मेज नेमस्पेस में दिखता है। मैं मॉड्यूल फ़ोल्डर में MyCompany_All.xml नामक एक फ़ाइल में इस है, और सीएमएस लेआउट मैं जोड़ दिया है ठीक काम कर रहे हैं, तो Magento निश्चित रूप से इसे लोड कर रहा है:

<?xml version="1.0"?> 
<config> 
    <modules> 
     <MyCompany_CmsLayouts> 
      <codePool>local</codePool> 
      <active>true</active> 
     </MyCompany_CmsLayouts> 
     <MyCompany_ForthcomingProducts> 
      <codePool>local</codePool> 
      <active>true</active> 
     </MyCompany_ForthcomingProducts> 
    </modules> 
</config> 

किसी को क्या करने के लिए के रूप में किसी भी विचार है यह कारण है?


जोड़ा गया: ब्लॉक इस टेम्पलेट कोड के साथ एक स्थिर ब्लॉक से बुलाया जा रहा है:

{{block type="MyCompany_ForthcomingProducts/List" template="forthcomingproducts/list.phtml"}} 

और ब्लॉक के लिए config.xml है:

<?xml version="1.0" encoding="utf-8"?> 
    <config> 
     <modules> 
      <MyCompany_ForthcomingProducts> 
       <version>0.9</version> 
      </MyCompany_ForthcomingProducts> 
     </modules> 

     <global> 
      <blocks> 
       <forthcomingproducts> 
        <class>MyCompany_ForthcomingProducts_Block</class> 
       </forthcomingproducts> 
      </blocks> 
     </global> 
    </config> 
+1

मुझे लगता है कि layout.xml या कोड जहां इस ब्लॉक कहा जाता है प्रासंगिक जगह देखने के लिए है। निदान करने के लिए, मैं उस ब्लॉक को ब्लॉक के लिए, और शायद config.xml देखना चाहता हूं। – Laizer

+0

आपके उत्तर के लिए बहुत बहुत धन्यवाद, मैंने इस सवाल को जानकारी में जोड़ा है। –

उत्तर

7

इस प्रकार अपने ब्लॉक घोषणा समायोजित करने का प्रयास :

{{block type="forthcomingproducts/list" template="forthcomingproducts/list.phtml"}} 

अपने कॉन्फ़िग फ़ाइल में आप अपने ब्लॉक (forthcomingproducts) के लिए उपनाम परिभाषित और अब आपको इसका पालन करना चाहिए। आपके द्वारा अनुरोध किए जाने पर Magento forthcomingproductsMyCompany_ForthcomingProducts_Block होने के लिए अव्यवस्थित करेगा, फिर श्रेणी नाम वर्ग MyCompany_ForthcomingProducts_Block_List बनाकर पूंजीकृत वर्ग का नाम (list) संलग्न करें। जब आप एक एलिस का उपयोग करते हैं जो Magento को आपके उदाहरण में (MyCompany_ForthcomingProducts) के बारे में नहीं पता है, तो यह मेज नेमस्पेस का हिस्सा माना जाता है।

आशा है कि मदद करता है, जो

+0

धन्यवाद जो! Magento अब एक अपवाद फेंकना बंद कर दिया है, तो मुझे लगता है कि यह मॉड्यूल पाया गया है। एक और मुद्दा होने पर, लेकिन मैं देखूंगा कि मैं इसे पहले हल कर सकता हूं या नहीं! –

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