我正在使用Magento版本 1.8.1.0。
我正在尝试创建一个新的自定义块模块,我将用它来创建一个新的主页。
这是我到目前为止所做的:
\应用\等\模块\ 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 Wrapper”,因此会显示home.phtml
的内容,但不会显示homeads.phtml
的内容。
如果我将homeads
的块类型更改为core/template
,则可以正常工作,我会看到“Home Wrapper”和“Adverts”。所以我知道问题与我的新块类型(称为crusaderhome)的引用有关。
我在这里做错了什么..?
答案 0 :(得分:2)
首先
将\app\etc\modules\Crusader_All.xml
更改为
\app\etc\modules\Crusader_CLHomePage.xml
使用cLHomePage
(检查命名约定。您应该使用Clhomepage
之类的小写而不是块类型中的crusaderhome
。
在
<block type="crusaderhome/qwerty" name="homeads" as="homeads" template="crusader/homeads.phtml" />
答案 1 :(得分:2)
我在Magento堆栈交换网站上发布后找到答案:
https://magento.stackexchange.com/questions/18098/magento-new-custom-block-module
这是Magento编译器,一旦我禁用编译器,它似乎工作。
管理员&gt;系统&gt;工具&gt;汇编