如何覆盖OnePage Checkout上的审阅选项卡

时间:2012-06-12 15:54:57

标签: magento

我正在编写一个自定义模块来更改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模板。我的想法是删除当前的一个并重新加载新的,但似乎没有工作。

1 个答案:

答案 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>

最后,根据您要实现的目标,您可能不需要模块来覆盖结帐审核表。

如果模块的唯一目的是简单地覆盖结帐布局,那么使用以下方法之一覆盖布局可能就足够了:

  1. 使用local.xml

    在主题布局目录中创建local.xml文件:

    /应用/设计/前端/ {位置} / {主题} /布局/ {模块} .XML

    并将其用于所有核心布局覆盖。这有很多好处。

  2. 将基本checkout.xml布局文件复制到主题

    复制app / design / frontend / base / default / layout / checkout.xml app / design / frontend / {location} / {theme} /layout/checkout.xml