如何覆盖Magento模板文件

时间:2012-08-01 05:47:18

标签: php magento

我想覆盖

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>

但这并没有取代该文件。关于我应该尝试什么的任何想法?

1 个答案:

答案 0 :(得分:1)

我能想到的选项:

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

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

OR

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/catalog/product/edit/options/type/select.phtml。

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