मैं Magento संस्करण 1.8.1.0 का उपयोग कर रहा हूं ।
मैं एक नया कस्टम ब्लॉक मॉड्यूल बनाने की कोशिश कर रहा हूं, जिसका उपयोग मैं एक नया होम पेज बनाने में करूंगा।
- नेमस्पेस: क्रूसेडर
- मॉड्यूल: CLHomePage
- ब्लॉक प्रकार: धर्मयुद्ध घर
- क्लास: क्वर्टी (अभी परीक्षण करते समय)
- डिजाइन पैकेज: क्रूसेडर
- थीम: डिफ़ॉल्ट
अभी तक मेरे पास इतना ही है:
\ एप्लिकेशन \ आदि \ मॉड्यूल \ Crusader_All.xml
<?xml version="1.0"?>
<config>
<modules>
<Crusader_CLHomePage>
<active>true</active>
<codePool>local</codePool>
</Crusader_CLHomePage>
</modules>
</config>
\ एप्लिकेशन \ कोड \ स्थानीय \ योद्धा \ CLHomePage \ आदि \ config.xml
<?xml version="1.0"?>
<config>
<modules>
<Crusader_CLHomePage>
<version>0.0.1</version>
</Crusader_CLHomePage>
</modules>
<global>
<blocks>
<crusaderhome>
<class>Crusader_CLHomePage_Block</class>
</crusaderhome>
</blocks>
</global>
</config>
\ एप्लिकेशन \ कोड \ स्थानीय \ योद्धा \ CLHomePage \ ब्लॉक \ Qwerty.php
<?php
class Crusader_CLHomePage_Block_Qwerty extends Mage_Core_Block_Template
{
// Methods (optional)
}
?>
\ अनुप्रयोग \ डिजाइन \ दृश्यपटल \ जेहादी \ डिफ़ॉल्ट \ लेआउट \ local.xml
<?xml version="1.0" ?>
<layout>
<cms_index_index>
<reference name="content">
<block type="core/template" name="homepage" template="crusader/home.phtml">
<block type="crusaderhome/qwerty" name="homeads" as="homeads" template="crusader/homeads.phtml" />
</block>
</reference>
</cms_index_index>
</layout>
\ अनुप्रयोग \ डिजाइन \ दृश्यपटल \ जेहादी \ डिफ़ॉल्ट \ टेम्पलेट \ जेहादी \ home.phtml
<div id="home">
<p>Home Wrapper</p>
<?php echo $this->getChildHtml('homeads'); ?>
</div>
\ अनुप्रयोग \ डिजाइन \ दृश्यपटल \ जेहादी \ डिफ़ॉल्ट \ टेम्पलेट \ जेहादी \ homeads.phtml
<p>Adverts</p>
अब, उपरोक्त जगह के साथ, मेरा होम पेज सिर्फ "होम रैपर" दिखाता है, इसलिए सामग्री home.phtml
प्रदर्शित होती है, लेकिन नहीं की सामग्री homeads.phtml
।
अगर मैं के लिए ब्लॉक प्रकार बदलने homeads
के लिए core/template
, यह काम करता है, और मैं दोनों "होम आवरण" और "विज्ञप्ति" देखें। इसलिए मुझे पता है कि समस्या मेरे नए ब्लॉक प्रकार (जिसे क्रूसेड होम कहा जाता है) के संदर्भ में कुछ करना है।
मुझसे यहां क्या गलत हो रहा है..?
संपादित करें
उत्तर में सुझाव के बाद, मैंने कुछ फ़ाइलों को निम्नानुसार अद्यतन किया है, लेकिन यह अभी भी काम नहीं करता है:
\ एप्लिकेशन \ आदि \ मॉड्यूल \ Crusader_Home.xml
<?xml version="1.0"?>
<config>
<modules>
<Crusader_Home>
<active>true</active>
<codePool>local</codePool>
</Crusader_Home>
</modules>
</config>
\ एप्लिकेशन \ कोड \ स्थानीय \ योद्धा \ होम \ आदि \ config.xml
<?xml version="1.0"?>
<config>
<modules>
<Crusader_Home>
<version>1.0.0</version>
</Crusader_Home>
</modules>
<global>
<blocks>
<crusader_home>
<class>Crusader_Home_Block</class>
</crusader_home>
</blocks>
</global>
</config>
\ एप्लिकेशन \ कोड \ स्थानीय \ योद्धा \ होम \ ब्लॉक \ Qwerty.php
<?php
class Crusader_Home_Block_Qwerty extends Mage_Core_Block_Template
{
// Methods (optional)
}
?>
\ app \ design \ frontend \ crusader \ default \ layout \ local.xml (पहले से कोशिश कर रहा था नेस्टेड ब्लॉक के बजाय केवल एक ब्लॉक का उपयोग करने के लिए सरलीकृत)
<?xml version="1.0" ?>
<layout>
<cms_index_index>
<reference name="content">
<block type="crusader_home/qwerty" name="homepage" template="crusader/home.phtml" />
</reference>
</cms_index_index>
</layout>
\ अनुप्रयोग \ डिजाइन \ दृश्यपटल \ जेहादी \ डिफ़ॉल्ट \ टेम्पलेट \ जेहादी \ home.phtml
<p>Home</p>
इसलिए मैं अभी भी ऐसी स्थिति में हूं जहां कुछ भी नहीं दिखता है।
@FabianBlechschmidt द्वारा संकेत दिए जाने के बाद, मैंने लॉग ऑन किया है, और यह अपवाद को दर्शाता है।
2014-04-09T14:04:54+00:00 ERR (3):
exception 'Mage_Core_Exception' with message 'Invalid block type: Crusader_Home_Block_Qwerty' in W:\stores\magento-dev\app\Mage.php:595
Stack trace:
#0 W:\stores\magento-dev\includes\src\__default.php(27744): Mage::throwException('Invalid block t...')
#1 W:\stores\magento-dev\includes\src\__default.php(27686): Mage_Core_Model_Layout->_getBlockInstance('crusader_home/q...', Array)
#2 W:\stores\magento-dev\includes\src\__default.php(27721): Mage_Core_Model_Layout->createBlock('crusader_home/q...', 'homepage')
#3 W:\stores\magento-dev\includes\src\__default.php(27488): Mage_Core_Model_Layout->addBlock('crusader_home/q...', 'homepage')
#4 W:\stores\magento-dev\includes\src\__default.php(27454): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#5 W:\stores\magento-dev\includes\src\__default.php(27459): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#6 W:\stores\magento-dev\includes\src\__default.php(13895): Mage_Core_Model_Layout->generateBlocks()
#7 W:\stores\magento-dev\includes\src\__default.php(11274): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#8 W:\stores\magento-dev\includes\src\__default.php(11213): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_IndexController), 'home')
#9 W:\stores\magento-dev\app\code\core\Mage\Cms\controllers\IndexController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_IndexController), 'home')
#10 W:\stores\magento-dev\includes\src\__default.php(13969): Mage_Cms_IndexController->indexAction()
#11 W:\stores\magento-dev\includes\src\__default.php(18331): Mage_Core_Controller_Varien_Action->dispatch('index')
#12 W:\stores\magento-dev\includes\src\__default.php(17865): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#13 W:\stores\magento-dev\includes\src\__default.php(20465): Mage_Core_Controller_Varien_Front->dispatch()
#14 W:\stores\magento-dev\app\Mage.php(684): Mage_Core_Model_App->run(Array)
#15 W:\stores\magento-dev\index.php(176): Mage::run('crusadergifts', 'store')
#16 {main}
किसी भी विचार क्या हो रहा है .. ??
EDIT नंबर 2
@ मालची को जवाब मिला ... यह कंपाइलर था। मैंने कंपाइलर को अक्षम कर दिया है और यह अब काम करने लगता है।
exception 'Mage_Core_Exception' with message 'Invalid block type: Crusader_Home_Block_Qwerty'