如何覆盖Magento模板文件


How to Override Magento Template File

我想覆盖

app'design'adminhtml'default'default'template'catalog'product'edit'options'type'select.phtml

并将其替换为我的自定义模块。我无法替换该文件。我把我的自定义文件放在这个位置,并创建了一个app'design'adminhtml'default'default'layout'mymodule.xml文件:

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

但这并没有取代文件。有什么想法我应该试试吗?

我能想到的选项:

将核心模板复制到:app/design/adminhtml/default/default/template/controlog/my_namespace/product/edit/options/type/select.html

A。重写块类型:adminhtml/catalog_product_edit_tab_options_type_select,重载构造函数,用模板的路径调用setTemplate。

B。钩住core_block_abstract_prepare_layout_before,并使用模板的路径为该块类调用setTemplate。

另一个选项,我不确定是推荐的,可以通过模块的config.xml为管理员添加设置主题:

<stores>
    <admin>
        <design>
            <package>
                <name>default</name>
            </package>
            <theme>
                 <default>mytheme</default>
            </theme>
        </design>
    </admin>
</stores>

然后,您可以将修改后的模板放入:app/design/adminhtml/default/mytheme/template/cacatalog/product/edit/options/type/select.html.

关于这种方法的一点是,我记得在一些版本的magento上,与magento捆绑在一起的社区模块(find)(不确定它是否只是与企业版捆绑在一起)实现了这种方法。