/** * Apply default parameters to grid block * * @param Mage_Adminhtml_Block_Widget_Grid $grid Grid block instance * @return this */ public function applyDefaultToGridBlock(Mage_Adminhtml_Block_Widget_Grid $grid) { // Apply default values if ($default = $this->_getData('default_page')) { $grid->setDefaultPage($default); } if ($default = $this->_getData('default_limit')) { $grid->setDefaultLimit($default); } if ($default = $this->_getData('default_sort')) { $grid->setDefaultSort($default); } if ($default = $this->_getData('default_dir')) { $grid->setDefaultDir($default); } if ($filters = $this->_getData('default_filters')) { if (is_array($filters = @unserialize($filters))) { // Only apply still valid filters $appliable = array(); $attributesRenderers = $this->getAvailableAttributesRendererTypes(); foreach ($filters as $columnId => $filter) { if (isset($this->_columns[$columnId])) { $column = $this->_columns[$columnId]; if ($filter['column']['origin'] == $column['origin']) { if ($this->isCollectionColumnOrigin($column['origin'])) { $valid = $filter['column']['renderer_type'] == $column['renderer_type']; } elseif ($this->isAttributeColumnOrigin($column['origin'])) { $valid = $filter['column']['renderer_type'] == $attributesRenderers[$column['index']]; } else { $valid = true; } if ($valid) { $appliable[$columnId] = $filter['value']; } } } } $grid->setDefaultFilter($appliable); } } return $this; }