覆盖社区池中的adminhtml块模板

时间:2012-07-13 13:28:20

标签: templates magento override block adminhtml

是否可以通过在社区池中创建新模块来覆盖位于/app/design/adminhtml/default/default/template/的模板(例如/app/design/adminhtml/default/default/template/customer/edit/js.phtml)?

所以问题是我不希望通过将文件(或任何内容)放在本地池中来覆盖它。

是否可以通过扩展适当的块类或类似的东西来做到这一点?

我在/app/design/adminhtml/default/my_directory/template/中创建了同一个文件,并在Mage_Adminhtml_Block_Customer_Edit中创建了扩展/app/code/community/MyCompany/MyModule/Block/Adminhtml/Customer/Edit.php类,并且不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

在模块的配置(app/code/community/MyCompany/MyModule/etc/config.xml)中添加以下部分:

<adminhtml>
    <layout>
        <updates>
            <mycompany_mymodule>
                <file>mycompany_mymodule.xml</file>
            </mycompany_mymodule>
        </updates>
    </layout>
</adminhtml>

这会让mage在app/design/adminhtml/default/layout/mycompany_mymodule.xml中查找一个新文件,它应该是这样的:

<?xml version="1.0"?>
<layout>
    <adminhtml_customer_edit>
        <reference name="customer.edit.js">
            <action method="setTemplate">
                <template>mydirectory/edit/js.phtml</template>
            </action>
        </reference>
    </adminhtml_customer_edit>
</layout>

然后处理您的文件app/design/adminhtml/default/template/mydirectory/edit/js.phtml。可能没有必要替换/扩展当前块,因为它已经做得很好。