Magento - 正在使用的意外模板

时间:2013-08-08 09:43:09

标签: magento xml-layout

为了迎合Magento(1.7.0.2)在结账过程中遗漏折扣代码(疯狂!),我安装了一个小扩展来添加相同的内容。这样做很好,但是由于Magento对增强单个块的有限支持,扩展提供了一个全新的 checkout / onepage / progress.phtml 文件,该文件与主题(包)提供的进度完全不同框。因此,为了解决这个问题,我必须将扩展单页progress.phtml与我的主题的progress.phtml文件合并,然后使用它。

但那不是问题!问题是为什么商店现在使用扩展progress.phtml文件而不是我的主题的progress.phtml文件?

我以为我正在处理Magento的ubercomplex模板,但显然不是!为了解决这个问题,我需要它恢复到我的主题的progress.phtml。详细说明......

扩展安装到frontend / base / default并包含一个指定:

的布局XML
<layout>
    <checkout_onepage_index translate="label">
        <reference name="checkout.onepage">
            <block type="greenacorn_checkoutcoupon/onepage_coupon" name="greenacorn_checkoutcoupon.onepage.coupon" as="coupon" template="greenacorn/checkoutcoupon/onepage/coupon.phtml"/>
        </reference>
        <reference name="checkout.progress">
            <action method='setTemplate'>
                <template>greenacorn/checkoutcoupon/onepage/progress.phtml</template>
            </action>
        </reference>
    </checkout_onepage_index>
    <checkout_onepage_progress>
        <reference name='root'>
            <action method='setTemplate'>
                <template>greenacorn/checkoutcoupon/onepage/progress.phtml</template>
            </action>
        </reference>
    </checkout_onepage_progress>
</layout>

任何人都可以解释为什么develper显然已经设置了两次进度模板了吗?

现在我的主题在前端/ [theme] /default/layout/checkout.xml中指定了以下内容

<checkout_onepage_progress>
    <!-- Mage_Checkout -->
    <remove name="right"/>
    <remove name="left"/>

    <block type="checkout/onepage_progress" name="root" output="toHtml" template="checkout/onepage/progress.phtml">
        <block type="checkout/onepage_payment_info" name="payment_info">
            <action method="setInfoTemplate"><method></method><template></template></action>
        </block>
    </block>
</checkout_onepage_progress>

我的理解是,配置主题中定义的内容优先于前端/默认中定义的内容,后者优先于前端/基本中定义的内容。那么扩展中定义的模板如何优先于主题中定义的模板?

1 个答案:

答案 0 :(得分:0)

checkout / index和checkout / progress是两个不同的页面:这就是开发人员设置它们的原因。

在以下节点中应该有另一个.xml文件(可能是/app/code/community/greenacorn/checkoutcoupon/etc/config.xml)定义布局覆盖:

<layout>
    <updates>
        <extensionname>
            <file>developer_extensionname.xml</file>
        </extensionname>
    </updates>
</layout>