On the webguys page is a german article about this problem: http://www.webguys.de/magento/turchen-23-pimp-my-produktgrid/
Nicht alle unsere Änderungen werden von Magento übernommen, zum Beispiel funktioniert die Sortierung und Filterung der neuen Attribute nicht.
Das liegt daran, dass unsere Änderungen nach dem Aufruf von _prepareCollection()
, in dem die Spalteninfos an die Collection übergeben werden, stattfinden.
Translation:
Not all changes are made by magento, e.g. sorting and filtering of the new attributes doesn't work.
That's because they are made after the _prepareCollection()
call, where the informations about the columns are passed to the collection.
protected function _callProtectedMethod($object, $methodName) {
$reflection = new ReflectionClass($object);
$method = $reflection->getMethod($methodName);
$method->setAccessible(true);
return $method->invoke($object);
}
protected function _modifyProductGrid(Mage_Adminhtml_Block_Catalog_Product_Grid $grid) {
$this->_addUpdatedAtColumn($grid);
$this->_addColorColumn($grid);
$this->_removeColumn($grid, 'set_name');
$this->_removeColumn($grid, 'visibility');
// reinitialisiert die Spaltensortierung
$grid->sortColumnsByOrder();
// reinitialisiert die Sortierung und Filter der Collection
$this->_callProtectedMethod($grid, '_prepareCollection');
}
More in the post. I think the source code is quite self explaining and if not, use google (if you don't understand german ;-))
_prepareColumns
and your_prepareColumns
? A Magento version number may help as well.