在Magento Core的现有内容块中添加自定义内容块

时间:2015-05-05 19:40:23

标签: php magento

我尝试添加自定义订单属性,用户可以在结帐页面上定义付款方式列表之后和按钮继续之前。

我想做尽可能干净的事情,所以我创建了自己的模块。

我正在努力解决一些我认为很简单的事情但我没有成功找到解决方案。

目前我只需要能够在以下块中显示模板文件。

Mage_Checkout_Block_Onepage_Payment

我创建了我的模板文件,它只显示测试的愚蠢文本 应用程序/设计/ defaut / defaut /模板/ mymodule中/ custom.phtml 我知道当我在模块的索引操作中使用它时,这个文件没有问题

我认为主要问题是我不能正确地做xml布局声明。

也许你可以帮助我

    <?xml version="1.0"?>
    <layout version="0.1.0">
<!-- this part is working well -->
        <mymodule_index_index>
            <reference name="content">
                <block type="mymodule/mymodule" name="mymodule" template="mymodule/custom.phtml" />
            </reference>
        </mymodule_index_index>
<!-- this part is not working at all -->
        <checkout_onepage_index>
            <reference="checkout.onepage.payment" >
                <block type="core/template" name="mymodule"  template="mymodule/custom.phtml" />
            </reference>
        </checkout_onepage_index>
    </layout>

当然我的模块声明很好,因为我的模块的索引方法正在工作。 这是我的参考标签哪个不好?

先谢谢,这个布局组织给我带来了麻烦,

最佳,

安塞尔姆

2 个答案:

答案 0 :(得分:3)

正如b.enoit.be所说,你忘记了name属性。除此之外,你还需要回应你的块。这是您的更新:

    <checkout_onepage_index>
        <reference name="checkout.onepage.payment" >
            <block type="core/template" name="mymodule"  template="mymodule/custom.phtml" />
        </reference>
    </checkout_onepage_index>

你的块被声明为checkout.onepage.payment的子节点,它还有另一个子块(checkout.payment.methods),这个块在checkout.onepage.payment模板中回显(app / design / frontend /base/default/template/checkout/onepage/payment.phtml):

<form action="" id="co-payment-form">
    <fieldset>
        <?php echo $this->getChildHtml('methods') ?>
    </fieldset>
</form>

你需要做的是在checkout.onepage.payment块的模板中回显你的块,例如:

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

答案 1 :(得分:1)

您的引用确实存在问题,您错过了那里输入错误的属性名称:<reference="checkout.onepage.payment" >

<reference name="checkout.onepage.payment" >
    <block type="core/template" name="mymodule"  template="mymodule/custom.phtml" />
</reference>