在Admin Magento Extension中覆盖AddItemRenderer默认值

时间:2013-09-05 10:03:02

标签: magento templates module override

我创建了一个magento(1.7 CE)本地模块,在Admin部分中将一些信息添加到收到的订单中显示的产品列表中。 除了我没有成功替换用于呈现订单中每个产品系列的模板外,所有内容似乎都运行良好。

在app / design / adminhtml / default / default / layout / sales.xml中我有这段代码

<adminhtml_sales_order_view>
    <reference name="head">
        <action method="addJs"><file>mage/adminhtml/giftmessage.js</file></action>
        <action method="addJs"><file>mage/adminhtml/giftoptions/tooltip.js</file></action>
    </reference>
    <reference name="content">
        <block type="adminhtml/sales_order_view" name="sales_order_edit"></block>
    </reference>
    <reference name="left">
        <block type="adminhtml/sales_order_view_tabs" name="sales_order_tabs">
            <block type="adminhtml/sales_order_view_tab_info" name="order_tab_info" template="sales/order/view/tab/info.phtml">
                <block type="adminhtml/sales_order_view_messages" name="order_messages"></block>
                <block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
                <block type="adminhtml/sales_order_view_items" name="order_items" template="sales/order/view/items.phtml">
                    <action method="addItemRender"><type>default</type><block>adminhtml/sales_order_view_items_renderer_default</block><template>sales/order/view/items/renderer/default.phtml</template></action>
                    <...

我想替换您看到的最后一行(addItemRenderer)设置的模板。

在我的模块config.xml中,我有

<adminhtml>
   <layout>
     <updates>
       <my_ext>
                <file>myext_update.xml</file>
       </my_ext>  
     </updates>
   </layout>
</adminhtml>

在app / design / adminhtml / default / default / layout / myext_update.xml中我有

<?xml version="1.0"?>

<admin_sales_order_view>

    <reference name="left">
        <reference name="sales_order_tabs">

            <reference name="order_tab_info">

                <reference name="order_items">

                    <action method="addItemRender">
                        <type>default</type>
                        <block>adminhtml/sales_order_view_items_renderer_default</block>
                        <template>myext/sales/order/view/items/renderer/default.phtml</template>
                    </action>

                </reference>

            </reference>

        </reference>

    </reference>

</admin_sales_order_view>

显然我的文件在app / design / adminhtml / default / default / template / myext / sales / order / view / items / renderer / default.phtml

但仍未使用。

你有解决方案吗?

2 个答案:

答案 0 :(得分:0)

实际上这不会像你前进的那样工作。您需要更新布局。 了解布局更新还会在yout模块中呈现布局

点击此处http://www.magentocommerce.com/design_guide/articles/intro-to-layouts

答案 1 :(得分:0)

经过一天的挣扎后找到解决方案...

代码和方法都很好,但我错误地输入了myext_update.xml中更新的句柄名称

我写了

<admin_sales_order_view>

但是,与原始sales.xml一样,句柄名称为

<adminhtml_sales_order_view>