自定义模块布局应覆盖结帐布局 - 不起作用

时间:2013-01-10 14:48:56

标签: xml magento layout

我的模块需要一些额外的输入,所以我更改了结算phtml来执行此操作。 在mymodule.xml中:

<checkout_onepage_index>
    <remove name="right"/>
    <reference name="checkout.onepage.billing">
        <action method="setTemplate"><template>workspace/mymodule/persistent/checkout/onepage/billing.phtml</template></action>
    </reference>
</checkout_onepage_index>

删除标记工作正常,但操作不会设置我的模块的新模板。 我尝试使用de same指令更改persistent.xml并且工作正常。 我的代码出了什么问题?

编辑:config.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Xpd_Evolucardgateway>
            <version>1.1.6</version>
        </Xpd_Evolucardgateway>
    </modules>
    <global>
        <models>
            <evolucardgateway>
                <class>Xpd_Evolucardgateway_Model</class>
            </evolucardgateway>
        </models>
        <resources>
            <evolucardgateway_setup>
                <setup>
                    <module>Xpd_Evolucardgateway</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </evolucardgateway_setup>
            <evolucardgateway_write>
                <use>core_write</use>
            </evolucardgateway_write>
            <evolucardgateway_read>
                <use>core_read</use>
            </evolucardgateway_read>
        </resources>
        <blocks>
            <evolucardgateway>
                <class>Xpd_Evolucardgateway_Block</class>
            </evolucardgateway>
        </blocks>
        <helpers>
            <evolucardgateway>
                <class>Xpd_Evolucardgateway_Helper</class>
            </evolucardgateway>
        </helpers>

        <sales>
            <quote>
                <totals>
                    <encargo>
                        <class>evolucardgateway/total_encargo</class>
                        <after>subtotal, tax</after>
                        <before>grand_total</before>
                    </encargo>
                </totals>
            </quote>
        </sales>
        <fieldsets>
            <sales_convert_quote_address>
                <base_encargo>
                    <to_order>*</to_order>
                </base_encargo>
                <encargo>
                    <to_order>*</to_order>
                </encargo>
            </sales_convert_quote_address>
            <sales_convert_order>
                <base_encargo>
                    <to_invoice>*</to_invoice>
                    <to_shipment>*</to_shipment>
                    <to_cm>*</to_cm>
                </base_encargo>
                <encargo>
                    <to_invoice>*</to_invoice>
                    <to_shipment>*</to_shipment>
                    <to_cm>*</to_cm>
                </encargo>
            </sales_convert_order>
        </fieldsets>
        <evolucardgateway>
            <cc>
                <types>
                    <visa>
                        <code>visa</code>
                        <name>Visa</name>
                        <order>0</order>
                    </visa>
                    <mastercard>
                        <code>mastercard</code>
                        <name>MasterCard</name>
                        <order>20</order>
                    </mastercard>
                    <amex>
                        <code>amex</code>
                        <name>American Express</name>
                        <order>30</order>
                    </amex>
                    <diners>
                        <code>diners</code>
                        <name>Diners Club</name>
                        <order>40</order>
                    </diners>
                    <elo>
                        <code>elo</code>
                        <name>ELO</name>
                        <order>50</order>
                    </elo>
                </types>
            </cc>
        </evolucardgateway>
    </global>
    <frontend>
        <translate>
            <modules>
                <Xpd_Evolucardgateway>
                    <files>
                        <default>Xpd_Evolucardgateway.csv</default>
                    </files>
                </Xpd_Evolucardgateway>
            </modules>
        </translate>
        <routers>
            <evolucardgateway>
                <use>standard</use>
                <args>
                    <module>Xpd_Evolucardgateway</module>
                    <frontName>evolucardgateway</frontName>
                </args>
            </evolucardgateway>
        </routers>
        <layout>
            <updates>
                <evolucardgateway>
                    <file>evolucardgateway.xml</file>
                </evolucardgateway>
            </updates>
        </layout>
    </frontend>
    <default>
        <payment>
            <evolucardgateway>
                <active>1</active>
                <model>evolucardgateway/standard</model>
                <title>Evolucard</title>
                <mostrar_parcelamento>1</mostrar_parcelamento>
                <cctypes>visa,mastercard,elo,amex,diners</cctypes>
                <environment>0</environment>
                <allowspecific>0</allowspecific>
                <useccv>1</useccv>
            </evolucardgateway>
        </payment>
    </default>
</config>

1 个答案:

答案 0 :(得分:1)

我删除了之前的回答,因为我误解了这个问题并误解了代码。

可能的问题是您的模块的操作指令正在进行评估,但之前正在评估Mage_Persistent模块的布局更新XML文件。因此,您对_template属性的更改将被覆盖。

要解决此问题,请在Mage_Persistent模块的配置文件后加载模块的配置文件。结果是您的模块的布局更新文件将添加到布局更新文件列表 persistent.xml 之后。这完全 <depends />节点的目的:

<?xml version="1.0"?>
<config>
    <modules>
        <Your_Module>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Persistent />
            </depends>
        </Your_Module>
    </modules>
</config>