2015-06-21 22 views
0

我工作於Magento框架。Magento:無法重寫Widget Grid進行優化過濾

我想重寫Mage_Adminhtml_Block_Widget_Grid來優化搜索過濾。

我在我的etc/config.xml上添加重寫塊,名稱塊爲grid_search_date

<config> 
    <global> 
    <helpers> 
     <core> 
     <rewrite> 
      <data>Jdate_Format_Helper_Data</data> 
     </rewrite> 
     </core> 
    </helpers> 
    <blocks> 
     <grid_search_date> 
     <rewrite> 
      <widget_grid>Jdate_Format_Block_Widget_Grid</widget_grid> 
     </rewrite> 
     </grid_search_date> 
     <topmenu_admin_time> 
     <rewrite> 
      <widget_grid_column_renderer_date>Jdate_Format_Block_Widget_Grid_Column_Renderer_Date</widget_grid_column_renderer_date> 
     </rewrite> 
     </topmenu_admin_time> 

    </blocks> 
    </global> 
</config> 

你可以看到Jdate_Format_Block_Widget_Grid要重寫widget_grid,我們移動到這個文件

class Jdate_Format_Block_Widget_Grid extends Mage_Adminhtml_Block_Widget_Grid 
{ 
    protected function _addColumnFilterToCollection($column) 
    { 

     if ($this->getCollection()) { 
      $field = ($column->getFilterIndex()) ? $column->getFilterIndex() : $column->getIndex(); 
      if ($column->getFilterConditionCallback()) { 
       call_user_func($column->getFilterConditionCallback(), $this->getCollection(), $column); 
      } else { 
       $cond = $column->getFilter()->getCondition(); 
       die(var_dump($cond["orig_from"])); 
       die(var_dump($cond["orig_to"])); 
       if ($field && isset($cond)) { 
        $this->getCollection()->addFieldToFilter($field , $cond); 
       } 
      } 
     } 
     return $this; 
    } 
} 

但沒有發生。但是,如果我直接將Widget_Grid文件更改爲此,它的工作原理。

有什麼想法?

回答

1

嘗試

<global> 
    <blocks> 
     <adminhtml> <!-- should be the name of the module --> 
     <rewrite> 
      <widget_grid>Jdate_Format_Block_Widget_Grid</widget_grid> 
     </rewrite> 
     </adminhtml> 
    </blocks> 
    .....