2013-08-12 4 views
0

Я пытаюсь переопределить Mage_Sales_Model_Resource_Order_Collection конфигурациюНевозможно переопределить продажи Resouce Модель класс 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> 

Это не дает мне какое-либо ошибка, даже если я помещаю неправильный обычай имя класса. Поэтому он не находит мой собственный класс.

Пожалуйста, помогите

ответ

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> 

Удачи!

-1
<sales> 
       <rewrite> 

        <resource_order_collection>Abc_Salesextend_Model_YOURFILENAME</resource_order_collection> 

       </rewrite>     
      </sales> 

просто заменить с вами имя файла в YOURFILENAME ,,, это работает ...