我正在编写一个自定义模块来更改checkout / onepage / onepage.phtml上表格的显示我可以在checkout.xml中看到它是如何用
声明的<block type="checkout/onepage_review" name="checkout.onepage.review" as="review" template="checkout/onepage/review.phtml">
<block type="checkout/agreements" name="checkout.onepage.agreements" as="agreements" template="checkout/onepage/agreements.phtml"/>
</block>
我无法弄清楚如何设置/app/design/frontend/{location}/{theme}/layout/{module}.xml文件以覆盖当前的review.phtml模板。我的想法是删除当前的一个并重新加载新的,但似乎没有工作。
答案 0 :(得分:4)
我能看到的第一件事是您使用的目录不正确。
应该是
app/design/frontend/{location}/{theme}/layout/{module}.xml
而不是
app/layout/frontend/{location}/{theme}/layout/{module}.xml
此外,我不确定您要覆盖审核布局表的具体操作,但以下内容将替换您自己的审核模板:
<checkout_onepage_review>
<reference name="root">
<action method="setTemplate"><template>checkout/onepage/your_template.phtml</template></action>
</reference>
</checkout_onepage_review>
其次,如果要创建自定义模块并希望加载布局文件,则必须在模块config.xml中声明布局更新。你做过这个吗?
它看起来与此类似:
<?xml version="1.0"?>
<config>
<modules>
<Your_Company_Your_Module>
<version>1.0.0</version>
</Your_Company_Your_Module>
</modules>
<frontend>
<layout>
<updates>
<yourmodule>
<file>yourmodule.xml</file>
</yourmodule>
</updates>
</layout>
</frontend>
</config>
最后,根据您要实现的目标,您可能不需要模块来覆盖结帐审核表。
如果模块的唯一目的是简单地覆盖结帐布局,那么使用以下方法之一覆盖布局可能就足够了:
使用local.xml
在主题布局目录中创建local.xml文件:
/应用/设计/前端/ {位置} / {主题} /布局/ {模块} .XML
并将其用于所有核心布局覆盖。这有很多好处。
将基本checkout.xml布局文件复制到主题
复制app / design / frontend / base / default / layout / checkout.xml app / design / frontend / {location} / {theme} /layout/checkout.xml