Magento新的自定义块模块

时间:2014-04-09 09:45:52

标签: php xml magento

我正在使用Magento版本 1.8.1.0。

我正在尝试创建一个新的自定义块模块,我将用它来创建一个新的主页。

  • 命名空间:Crusader
  • 模块:CLHomePage
  • 座位类型:crusaderhome
  • 上课:Qwerty(测试时只是暂时)
  • 设计包:crusader
  • 主题:默认

这是我到目前为止所做的:

\应用\等\模块\ 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)的引用有关。

我在这里做错了什么..?

2 个答案:

答案 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;汇编