0

我正在尝试覆盖Mage_Sales_Model_Resource_Order_Collection

我的自定义模块的配置:

<?xml version="1.0" encoding="UTF-8"?>


<config>
    <modules>
        <Abc_Salesextend>
            <version>0.1.0</version>
        </Abc_Salesextend>
    </modules>

    <global>       
        <blocks>
            <salesextend>
                <class>Abc_Salesextend_Block</class>   
            </salesextend>  

            <adminhtml>
                <rewrite>
                    <sales_order_grid>Abc_Salesextend_Block_Sales_Order_Grid</sales_order_grid>
                </rewrite>                
            </adminhtml>    
        </blocks>

        <models>
            <salesextend>
                <class>Abc_Salesextend_Model</class>   
                <resourceModel>salesextend_resource</resourceModel> 
            </salesextend>

            <salesextend_resource>
                <class>Abc_Salesextend_Model_Resource</class>
            </salesextend_resource>

            <!-- HERE is i am trying to override-->

            <sales_resource>
                <rewrite>

                    <order_collection>Abc_Salesextend_Model_Resource_Order_Collection</order_collection>

                </rewrite>                
            </sales_resource>    
        </models>
    </global>

</config>

即使我放置了错误的自定义类名,它也不会给我任何错误。所以它没有找到我的自定义类。

请帮忙

4

2 回答 2

0

我不太清楚为什么重写失败。重写定义看起来不错。该错误只能与用于重写的错误类、缓存问题(config.xml 缓存)或您的模块未处于活动状态有关。

我猜你只想操纵集合,所以你应该使用一些事件/观察者技术而不是重写。

/**
 * 
 * Sales order grid collection
 * @param unknown_type $observer
 */
public function salesOrderGridCollectionLoadBefore($observer){
        $collection = $observer->getOrderGridCollection();
        $select = $collection->getSelect();
                $select->DO_WHATEVER_YOU_WANT...
}

此方法由以下触发:

        <events>
           <sales_order_grid_collection_load_before>
              <observers>
                  <cartware_modify_grid_adminhtml_collection>
                      <model>your_module/observer_block</model>
                      <method>salesOrderGridCollectionLoadBefore</method>
                  </cartware_modify_grid_adminhtml_collection>
              </observers>
          </sales_order_grid_collection_load_before>
    </events>
</adminhtml>   

祝你好运!

于 2013-08-12T06:04:19.580 回答
-1
<sales>
                <rewrite>

                    <resource_order_collection>Abc_Salesextend_Model_YOURFILENAME</resource_order_collection>

                </rewrite>                
            </sales>

只需用 YOURFILENAME 中的文件名替换你的文件名,它就可以了......

于 2013-08-12T07:38:22.277 回答