繁体   English   中英

Magento覆盖核心块

[英]Magento overwrite core block

我需要覆盖core/Mage/Adminhtml/Block/Promo/Catalog/Edit/Tab/Actions.php

目前,我有模块Bv和名称空间Discounts

我的config.xml

<config>
<global>
    <models>
        <discounts>
            <class>Bv_Discounts_Model</class>
            <!--
            need to create our own resource, can't just
            use core_resource
            -->
            <resourceModel>discounts_resource</resourceModel>
        </discounts>
        <discounts_resource>
            <class>Bv_Discounts_Model_Resource</class>
            <!--<deprecatedNode>discounts_mysql4</deprecatedNode>-->
            <entities>
                <accumulative>
                    <table>bv_discounts_promo_catalog_accumulative</table>
                </accumulative>
            </entities>
        </discounts_resource>
    </models>
    <blocks>
        <discounts>
            <rewrite>
                <promo__catalog_edit_tab_actions>
                    Bv_Discounts_Block_Promo_Catalog_Edit_Tab_Actions
                </promo__catalog_edit_tab_actions>
            </rewrite>
        </discounts>
    </blocks>
</global>
<admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <bv_discounts before="Mage_Adminhtml">Bv_Discounts</bv_discounts>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>
</config>

和课

class Bv_Discounts_Block_Promo_Catalog_Edit_Tab_Actions
extends Mage_Adminhtml_Block_Promo_Catalog_Edit_Tab_Actions
{
protected function _prepareForm()
{
    $model = Mage::registry('current_promo_catalog_rule');

    $form = new Varien_Data_Form(); ....

错了吗?

https://magento.stackexchange.com/questions/3037/how-to-override-mage-checkout-block-links

http://www.pierrefay.com/rewrite-modify-block-magento-92

这篇文章说我的代码必须有效,但事实并非如此!


编辑

更改config.xml之后

<blocks>
        <adminhtml>
            <rewrite>
                <promo_catalog_edit_tab_actions>Bv_Discounts_Block_Promo_Catalog_Edit_Tab_Actions</promo_catalog_edit_tab_actions>
            </rewrite>
        </adminhtml>
    </blocks>

当我添加die();时,magen似乎看到了我新的重载类die(); function _prepareForm()和部分页面崩溃(在浏览器中),但是当我添加一些功能代码时,什么也没发生!

乍一看,这在config.xml中是错误的

<blocks>
    <discounts>
        <rewrite>
            <promo__catalog_edit_tab_actions>
                Bv_Discounts_Block_Promo_Catalog_Edit_Tab_Actions
            </promo__catalog_edit_tab_actions>
        </rewrite>
    </discounts>
</blocks>

它应该是

<blocks>
    <adminhtml>
        <rewrite>
            <promo_catalog_edit_tab_actions>Bv_Discounts_Block_Promo_Catalog_Edit_Tab_Actions</promo_catalog_edit_tab_actions>
        </rewrite>
    </adminhtml>
</blocks>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM