我想通过向页面添加一个块来向结帐成功页面添加一些信息(不重复模板页面并进行更改)。
我查看了可下载模块,并试图复制它,但这不起作用。 我有一个自定义模块,我试图这样做:
1)将块文件添加到: ... \应用\代码\本地\ SHANI \ MyModule的\块\结帐\ Details.php
class SHANI_MyModule_Block_Checkout_Details extends Mage_Checkout_Block_Onepage_Success
{
}
2)将模板文件添加到: ... \应用\设计\前端\默认\默认\模板\ MyModule的\结帐\ details.phtml
<?php
echo "test ffdagdf";
?>
3)将块添加到:... \ app \ design \ frontend \ default \ default \ layout \ mymodule.xml
<default>
</default>
....
....
....
<checkout_onepage_success>
<reference name="checkout.success">
<block type="mymodule/checkout_success" name="mymodule.checkout.details" template="mymodule/checkout/details.phtml"/>
</reference>
</checkout_onepage_success>
这样做的方法吗?我错过了什么?
///////////////////////////////////////// update ///// ////////////////////////////////////
我试图像Lrrr写的那样改变mymodule.xml,但仍然没有运气......
<checkout_onepage_success>
<reference name="checkout.success">
<block type="mymodule/checkout_details" name="mymodule.checkout.details" template="mymodule/checkout/details.phtml"/>
</reference>
</checkout_onepage_success>
任何其他想法是什么问题?
我正在尝试使用产品视图页面执行相同操作,并且我能够将块添加到“product.info.additional” 但不是“product.info”。
这是有效的:
<catalog_product_view>
<reference name="product.info.additional">
<block type="catalog/product_view" name="mymodule.saledetails" before="-" template="mymodule/product/details.phtml"/>
<block type="mymodule/product_participant_list" name="mymodule.participants" before="-" template="mymodule/product/participant/list.phtml"/>
</reference>
</catalog_product_view>
但这不是
<catalog_product_view>
<reference name="product.info">
<block type="catalog/product_view" name="mymodule.saledetails" before="-" template="mymodule/product/details.phtml"/>
</reference>
<reference name="product.info.additional">
<block type="mymodule/product_participant_list" name="mymodule.participants" before="-" template="mymodule/product/participant/list.phtml"/>
</reference>
</catalog_product_view>
我正在尝试将此块从“product.info.additional”移至“product.info”,因为我想将此块显示在 快速概述(在默认模板中)而不是详细信息下。 为什么它不能在“product.info”下工作?
答案 0 :(得分:2)
尝试在成功页面布局中引用内容块
<checkout_onepage_success>
<reference name="content">
<block type="mymodule/checkout_success" name="mymodule.checkout.details" template="mymodule/checkout/details.phtml"/>
</reference>
</checkout_onepage_success>
而不是checkout.success,您可能需要在模板中调用$this->getChildHtml('yourblockname')
或在版块中添加output="toHtml"
答案 1 :(得分:0)
尝试
print $this->getChildHtml('mymodule.checkout.details')
在父模板中没有输出=“”在xml中。
您还可以查看日志以获取附加信息。
并且确定现在你的块的错误是用
替换它type="core/template"
如果你的模块是
SHANI_MyModule_Block_Checkout_Details
然后输入
type="mymodule/checkout_details"
答案 2 :(得分:0)
<block type="core/template" name="parent" template="parent.phtml>
<block type="core/template" name="child" template="child" />
</block>
如果你输入parent.phtml这个print $this->getChildHtml('child')
Magento应该在parent.phtml中呈现child.phtml
至于你的另一个问题......有些块会渲染所有作为子元素的块,但有些块只渲染那些在模板中回显的块。所以'product.info.additional'可以使用echo $this->getChildHtml()
而'product.info'可以使用echo $this->getChildHtml('block_name')
请提供您的模块config.xml