【问题标题】:Magento Overwrite in Adminhtml failingAdminhtml 中的 Magento 覆盖失败
【发布时间】:2015-08-29 01:09:15
【问题描述】:

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

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

【问题讨论】:

    标签: php magento module enterprise


    【解决方案1】:

    绒毛麦肯齐, 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>
    

    【讨论】:

      【解决方案2】:

      这里可能会发生一些事情。首先,你确定你把它放在正确的文件夹里了吗?如果你把它放在blocks/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 参数来运行模板路径提示并在管理员中工作。这将显示您的产品视图块是使用核心还是使用其他一些扩展代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-18
        • 2012-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多