/**
  * Add column to grid
  * Overriden to add support for visibility_filter column option
  * It stands for conditional visibility of the column depending on filter field values
  * Value of visibility_filter supports (filter_field_name => filter_field_value) pairs
  *
  * @param   string $columnId
  * @param   array $column
  * @return  Magestore_Affiliateplusstatistic_Block_Report_Grid_Abstract
  */
 public function addColumn($columnId, $column)
 {
     if (is_array($column) && array_key_exists('visibility_filter', $column)) {
         $filterData = $this->getFilterData();
         $visibilityFilter = $column['visibility_filter'];
         if (!is_array($visibilityFilter)) {
             $visibilityFilter = array($visibilityFilter);
         }
         foreach ($visibilityFilter as $k => $v) {
             if (is_int($k)) {
                 $filterFieldId = $v;
                 $filterFieldValue = true;
             } else {
                 $filterFieldId = $k;
                 $filterFieldValue = $v;
             }
             if (!$filterData->hasData($filterFieldId) || $filterData->getData($filterFieldId) != $filterFieldValue) {
                 return $this;
                 // don't add column
             }
         }
     }
     return parent::addColumn($columnId, $column);
 }
示例#2
0
 /**
  * Add column to grid
  *
  * @param   string $columnId
  * @param   array || Varien_Object $column
  * @return  Magestore_RewardPoints_Block_Adminhtml_Customer_Edit_Tab_History
  */
 public function addColumn($columnId, $column)
 {
     $columnId = 'rewardpoints_transaction_' . $columnId;
     return parent::addColumn($columnId, $column);
 }
示例#3
0
 public function addColumn($columnId, $column)
 {
     // fix error duplicate name
     $columnId = 'payperlead_' . $columnId;
     return parent::addColumn($columnId, $column);
 }
示例#4
0
 /**
  * Add column to grid
  *
  * @param   string $columnId
  * @param   array || Varien_Object $column
  * @return  Mage_Adminhtml_Block_Widget_Grid
  */
 public function addColumn($columnId, $column)
 {
     return parent::addColumn($this->_columnPrefix . $columnId, $column);
 }
示例#5
0
 public function prepareColumns(Mage_Adminhtml_Block_Widget_Grid $grid, $selected_columns = null)
 {
     if ($selected_columns === null) {
         $selected_columns = $this->getSelectedColumnsArray(self::XML_PATH_ORDER_GRID_COLUMN);
     }
     $order_columns = $this->prepareGridColumns();
     foreach ($selected_columns as $column) {
         if (isset($order_columns[$column])) {
             $grid->addColumn($column, $order_columns[$column]);
         }
     }
     return $grid;
 }
示例#6
0
 /**
  * Apply columns values to grid block
  * 
  * @param Mage_Adminhtml_Block_Widget_Grid $grid Grid block instance
  * @param bool $applyFromCollection Whether values from collection columns should be applied
  * @return this
  */
 public function applyColumnsToGridBlock(Mage_Adminhtml_Block_Widget_Grid $grid, $applyFromCollection)
 {
     $gridIds = array_keys($grid->getColumns());
     $columnsOrders = array();
     $columns = $this->getColumns();
     uasort($columns, array($this, '_sortColumns'));
     $attributes = $this->getAvailableAttributes();
     foreach ($columns as $column) {
         if (!in_array($column['id'], $gridIds)) {
             if ($column['is_visible'] && !$column['missing'] && (!$this->isCollectionColumnOrigin($column['origin']) || $applyFromCollection)) {
                 // Add from collection/attribute visible and not missing columns
                 $lockedValues = $this->getColumnLockedValues($column['id']);
                 $data = array('header' => $column['header'], 'align' => $column['align'], 'width' => $column['width'], 'index' => $column['index']);
                 $data = array_merge($data, array_intersect_key($lockedValues, $data));
                 if ($this->isCollectionColumnOrigin($column['origin'])) {
                     if (isset($lockedValues['renderer']) || !is_null($column['renderer_type'])) {
                         // Add collection specific column values
                         if (isset($lockedValues['renderer'])) {
                             $rendererType = $lockedValues['renderer'];
                             $rendererParams = $rendererType == $column['renderer_type'] ? $column['renderer_params'] : array();
                         } else {
                             $rendererType = $column['renderer_type'];
                             $rendererParams = $column['renderer_params'];
                         }
                         $data = array_merge($data, $this->_getCollectionColumnGridValues($rendererType, $rendererParams, $column['index'], $grid->blcg_getStore()));
                     }
                 } elseif ($this->isAttributeColumnOrigin($column['origin'])) {
                     if (!isset($attributes[$column['index']])) {
                         // Unknown attribute
                         continue;
                     }
                     if (is_null($column['store_id'])) {
                         // Grid's store
                         $store = $grid->blcg_getStore();
                     } else {
                         // Specific store
                         $store = Mage::app()->getStore($column['store_id']);
                     }
                     // Use auto-generated unique ID as index
                     $alias = self::GRID_COLUMN_ATTRIBUTE_GRID_ALIAS . str_replace(self::GRID_COLUMN_ATTRIBUTE_ID_PREFIX, '', $column['id']);
                     $data['index'] = $alias;
                     // Tell grid to select current attribute
                     $grid->blcg_addAdditionalAttribute(array('alias' => $alias, 'attribute' => $attributes[$column['index']], 'bind' => 'entity_id', 'filter' => null, 'join_type' => 'left', 'store_id' => $store->getId()));
                     // Add attribute specific column values
                     $data = array_merge($data, $this->_getAttributeColumnGridValues($attributes[$column['index']], $column['renderer_params'], $store));
                 }
                 if (isset($lockedValues['config_values']) && is_array($lockedValues['config_values'])) {
                     $data = array_merge($data, $lockedValues['config_values']);
                 }
                 $grid->addColumn($column['id'], $data);
                 $columnsOrders[] = $column['id'];
             }
         } else {
             if ($column['is_visible']) {
                 // Update visible columns
                 $grid->getColumn($column['id'])->setWidth($column['width'])->setAlign($column['align'])->setHeader($column['header']);
                 $columnsOrders[] = $column['id'];
             } else {
                 // Remove not visible columns
                 $grid->blcg_removeColumn($column['id']);
             }
         }
     }
     // Apply columns orders
     $grid->blcg_resetColumnsOrder();
     $previousId = null;
     foreach ($columnsOrders as $columnId) {
         if (!is_null($previousId)) {
             $grid->addColumnsOrder($columnId, $previousId);
         }
         $previousId = $columnId;
     }
     $grid->sortColumnsByOrder();
     return $this;
 }