2012-10-03 93 views
2

我在Adminhtml中有自定義網格。如何將自定義過濾器添加到Magento中的Colum網格?

protected function _prepareCollection() 
{ 
    /* @var $collection Mage_Catalog_Model_Resource_Product_Collection */ 
    $collection = Mage::getModel('catalog/product')->getCollection(); 
    $collection->addAttributeToSelect('*'); 
    $collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left'); 
    $collection->groupByAttribute('entity_id'); 
    $collection->addStaticField('category_id'); 
    $collection->addExpressionAttributeToSelect('category_grp', 'GROUP_CONCAT(category_id)', 'category_id'); 

    $this->setCollection($collection); 
    return parent::_prepareCollection(); 
} 

protected function _prepareColumns() 
{ 
    parent::_prepareColumns(); 

$this->addColumn('category_id', array(
     'header' => Mage::helper('newsletter')->__('Category'), 
     'index'  => 'category_grp', 
     'type'  => 'categories', 
     'options' => $options, 
     'align'  => 'left', 
//  'filter_index' => $this->_getFlatExpressionColumn('category'), 
    return $this; 
} 

category_grp是陣列INT

我的問題是如何能夠我添加過濾器到頭從田野過濾項列?

例如過濾器只用CATEGORY_ID = 7(category_grp是3,6,7,13)產品...

+0

其實我有興趣學習如何創建一個自定義過濾器(如果可能的話)請分享信息,如果你發現任何東西 – WonderLand

回答

0

我不認爲你需要的任何自定義過濾器。
只是嘗試設置index在符合字段名稱:

'index'  => 'category_id', 
+0

nnnn,如果我使用'index'=>'category_id',那麼我只有1類。 產品是在多個類別...例如3,7,13 ... – MiMo

+0

確定您的觀點,所以我也很有趣:) – WonderLand

0

在Magento的filter_condition_callback選項

$this->addColumn('categories', array(
        ....      
        'filter_condition_callback' => array($this, '_applyMyFilter'), 
        .. 
       ) 
); 

protected function _filterCategoriesCondition($collection, $column) 
{ 
    if (!$value = $column->getFilter()->getValue()) { 
     return; 
    } 

    $this->getCollection()->addFieldToFilter('categories', array('finset' => $value)); 
} 

看看見

相關問題