有没有办法在magento admin上修改此tracking.phtml?

时间:2016-09-13 04:18:51

标签: magento magento-1.9 adminhtml

当我们选择以下选项之一时,字段'title'会自动填充来自运营商选项的选定值。

我想对'number'字段做同样的事情,当我选择自定义运营商时,它会被填充。有没有办法修改此跟踪表单?如果有,怎么样? tracking form

提前感谢

2 个答案:

答案 0 :(得分:0)

查看文件app/design/adminhtml/default/default/layout/sales.xml,track.phtml被多次使用。如果此更改适用于模块,则创建一个布局文件' yourmodule .xml'并从配置文件中启用它。否则将其命名为local.xml'。它的内容必须是这样的更新:

<?xml version="1.0"?>
<layout>
    <adminhtml_sales_order_shipment_new>
        <reference name="shipment_tracking">
            <action method="setTemplate">
                <template>your/new/tracking.phtml</template>
            </action>
        </reference>
    </adminhtml_sales_order_shipment_new>
</layout>

此外,如果您想最小化可以使用的copypasted布局语句的数量 <update handle="handle_name" />在不同的控制器操作句柄内。例如:

    <my_handle_name>
 <reference name="shipment_tracking"> 
<action method="setTemplate"> 
<template>your/new/tracking.phtml</template>
 </action> 
</reference> 
</my_handle_name> 
<adminhtml_sales_order_shipment_new>
 <update handle="my_handle_name"/>
 </adminhtml_sales_order_shipment_new> 

答案 1 :(得分:0)

在您的模块的config.xml中添加以下观察者

             <events>
                <adminhtml_block_html_before>
                    <observers>
                        <add_script_on_shipment>
                            <class>yourmodule/observer</class>
                            <method>addScript</method>
                        </add_script_on_shipment>
                    </observers>
                </adminhtml_block_html_before>
            </events>

将以下代码放入Observer.php

public function addScript($observer) {
    $block = $observer->getEvent()->getBlock();
    if (($block instanceof Mage_Adminhtml_Block_Sales_Order_Shipment_View_Tracking) && $block->getType() != 'core/template' /*&& is your carrier active*/) {
        $shipment = $block->getShipment();
        $_child = clone $block;
        $_child->setType('core/template');
        $block->setChild('calling_block', $_child);
        $block->setTemplate('yourmodule/custom_script.phtml');
    }
}

在custom_script.phtml中添加以下代码并进行必要的修改

<?php echo $this->getChildHtml('calling_block');?>
<script type="text/javascript">
     /*your custom javascript code to bind onchange event*/
</script>