Ejemplo n.º 1
0
 /**
  * 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;
 }