所以我已经尝试了我能想到的一切,对于这个订单信息页面,并用尽了我能想到的每一个搜索,所以现在我需要问。我正在尝试重写管理员>销售订单>查看订单页面。我已经创建了模块来覆盖我认为是该区域的内容,但它变得很时髦。
配置.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>
模块的信息.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');
}
}
问题显示在 https://i.stack.imgur.com/QQ2dZ.png,因为我还没有足够的代表我做错了什么?
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
->Mage_Adminhtml_Block
-
sales_order_view_info
->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>
这里可能发生了几件事。 首先,您是否确保将其放在正确的文件夹中? 如果你把它放在block/Adminhtml/sales/order/view.php中,那么你需要调整你的类名和xml声明。 您可以通过在 index.php 文件中打开 DEV 模式来快速检查这一点。
另一件更常见的事情是,如果有另一个模块覆盖此方法。 由于Magento按字母顺序加载模块,因此您可能无法首先覆盖该类。 如果是这种情况,您只需要在app/etc/modules/module.xml文件中添加一个依赖子句。
我会下载这个扩展程序:http://www.magepsycho.com/easy-template-path-hints.html
它允许您通过添加一些 url 参数来运行模板路径提示,并在管理员中工作。 这将向您显示您的产品视图块是否正在使用核心,或者它是否使用其他扩展代码。