管理HTML中的Magento覆盖失败

时间:2015-06-12 22:18:56

标签: php magento module enterprise

所以我已经尝试了所有我能想到的订单信息页面并且耗尽了我能想到的每一个搜索,所以现在我需要问一下。我正在尝试重写管理>销售订单>查看订单页面。我已经创建了模块来覆盖我认为的区域,但它变得非常时髦。

模块的config.xml

<config>
<modules>
    <Mage_Salespage>
        <version>0.1.0</version>
    </Mage_Salespage>
</modules>

<global>

    <blocks>

        <adminhtml>
            <rewrite>
                <sales_order_view>Mage_Salespage_Block_Sales_Order_View_Info</sales_order_view>
            </rewrite>
        </adminhtml>

    </blocks>

    <helpers>
        <mage_salespage>
            <class>Mage_Salespage_Helper</class>
        </mage_salespage>
    </helpers>
    <models>
        <mage_salespage>
            <class>Mage_Salespage_Model</class>
        </mage_salespage>
    </models>

</global>

模块的Info.php

class Mage_Salespage_Block_Sales_Order_View_Info extends Mage_Adminhtml_Block_Sales_Order_View_Info
{
    protected function _construct()
    {
    $this->setTemplate('salespage/sales/order/view/info.phtml');
    }     
}

问题显示在http://i.imgur.com/mqF5aEH.png,因为我还没有足够的代表 我做错了什么?

2 个答案:

答案 0 :(得分:1)

Fluffs McKenzie, config.xml中的块类型代码存在问题。

您想要重写课程Mage_Adminhtml_Block_Sales_Order_View_Info

与magento一样,它的块类型是

adminhtml/sales_order_view_info但您重写了课程admihtml/sales_order_view

当块类型adminhtml/sales_order_view_info然后它类通过模拟 这个过程:

  • adminhtml - &gt; Mage_Adminhtml_Block
  • sales_order_view_info - &gt; Sales_Order_View_Info

然后最后一堂课是Mage_Adminhtml_Block_Sales_Order_View_Info

所以你需要改变

<sales_order_view>Mage_Salespage_Block_Sales_Order_View_Info</sales_order_view>

<sales_order_view_info>Mage_Salespage_Block_Sales_Order_View_Info</sales_order_view_info>

答案 1 :(得分:0)

这里可能会发生一些事情。首先,你确定你把它放在正确的文件夹中?如果你把它放在blocks / Adminhtml / sales / order / view.php中,那么你需要为它调整你的类名和xml声明。您可以通过打开index.php文件中的DEV模式来快速检查。

另一个更常见的事情是,是否有另一个模块覆盖此方法。由于Magento按字母顺序加载模块,因此您可能无法首先覆盖该类。如果是这种情况,您只需在app / etc / modules / module.xml文件中添加depends子句。

我下载此扩展程序:http://www.magepsycho.com/easy-template-path-hints.html

它允许您通过添加一些url参数来运行模板路径提示,并在管理员中工作。这将显示您的产品视图块是否正在使用核心,或者它是否使用其他扩展代码。