如何覆盖magento中的管理模板文件?

时间:2012-03-20 12:56:48

标签: magento override

我需要覆盖“adminhtml / sales / order / create / items / grid.phtml”文件,以便在从admin创建新订单时在每个项目下显示一些自定义文本。我希望通过自定义模块完成此操作。任何人都可以建议如何覆盖管理模板文件?任何帮助都非常感谢

4 个答案:

答案 0 :(得分:4)

我建议您创建一个新模板,并在模块中添加新设计,并使用adminhtml部分的布局更新。 例如:

在自定义扩展程序的config.xml中,您可以使用以下命令更新adminhtml的布局:

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

好的,那么从这个布局开始,您可以编写下一个代码来添加一个css,例如:

<layout>
    <default>
        <reference name="head">
            <action method="addCss">
                <name>aw_all/css/window.css</name>
            </action>

        </reference>
    </default>
</layout>

在您的情况下,您需要为块添加自定义模板

<layout>
  <handle>
        <reference name="content">
            <block type="smspremium/adminhtml_smspremium" name="smspremium">
                <action method="setTemplate">
                   <template>customtemplate.phtml</template>
                </action>
            </block>
        </reference>
  </handle>
</layout>

如果你想放弃所有的块并用你的块替换你可以使unsetChild

<layout>
      <handle>
            <reference name="content">
                <action method="unsetChild"><name>your.last.block</name></action>

                <block type="smspremium/adminhtml_smspremium" name="smspremium">
                    <action method="setTemplate">
                       <template>customtemplate.phtml</template>
                    </action>
                </block>
            </reference>
      </handle>
 </layout>

这项工作与前端布局相同,只是因为您存储文件后存在差异。 对于模板:

app/design/adminhtml/default/default/templates

布局:

app/design/adminhtml/default/default/layout

希望帮助你

答案 1 :(得分:0)

基本上,您必须为adminhtml区域声明模块的新布局文件,而不是使用setTemplate方法和reference[name]节点设置新的模板路径。

答案 2 :(得分:0)

首先,我不相信这是覆盖adminhtml模板的正确方法。但我尝试这种方法,它的工作原理,所以只想分享。

将此添加到您的自定义模块config.xml

<stores>
        <admin>
            <design>
                <theme>
                    <default>default</default>
                    <template>mycustom</template>
                </theme>
            </design>
        </admin>
</stores>

现在您可以通过将模板从default复制到mycustom来覆盖 app\design\adminhtml\default\default\template\sales\order\view\history.phtml app\design\adminhtml\default\mycustom\template\sales\order\view\history.phtml

答案 3 :(得分:-1)

您可以在此处找到覆盖Magento管理文件的详细说明http://www.techawaken.com/creating-a-new-magento-admin-theme/