Adminhtml 中的 Magento 覆盖失败

Magento Overwrite in Adminhtml failing

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

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 因为我还没有足够的代表 我做错了什么?

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

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

我会下载这个扩展:http://www.magepsycho.com/easy-template-path-hints.html

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

Fluffs McKenzie, config.xml.

的块类型代码存在问题

您想重写 class Mage_Adminhtml_Block_Sales_Order_View_Info

根据 magento,它的块类型是

adminhtml/sales_order_view_info 但你被重写了 class admihtml/sales_order_view .

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

  • adminhtml -> Mage_Adminhtml_Block
  • sales_order_view_info -> Sales_Order_View_Info

那么最后的 class 就是 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>