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