Example #1
0
 /**
  * Add price columns for catalog product flat table
  *
  * @param Varien_Object $object
  * @return Mage_CatalogIndex_Model_Mysql4_Indexer
  */
 public function prepareCatalogProductFlatColumns(Varien_Object $object)
 {
     $columns = $object->getColumns();
     foreach (Mage::getSingleton('catalogindex/retreiver')->getCustomerGroups() as $group) {
         $columnName = 'display_price_group_' . $group->getId();
         $columns[$columnName] = array('type' => 'decimal(12,4)', 'unsigned' => false, 'is_null' => true, 'default' => null, 'extra' => null);
     }
     $object->setColumns($columns);
     return $this;
 }
Example #2
0
 /**
  * Retrieve catalog product flat table columns array
  *
  * @return array
  */
 public function getFlatColumns()
 {
     if ($this->_columns === null) {
         if (Mage::helper('core')->useDbCompatibleMode()) {
             $this->_columns = $this->_getFlatColumnsOldDefinition();
         } else {
             $this->_columns = $this->_getFlatColumnsDdlDefinition();
         }
         foreach ($this->getAttributes() as $attribute) {
             /** @var $attribute Mage_Eav_Model_Entity_Attribute_Abstract */
             $columns = $attribute->setFlatAddFilterableAttributes($this->getFlatHelper()->isAddFilterableAttributes())->setFlatAddChildData($this->getFlatHelper()->isAddChildData())->getFlatColumns();
             if ($columns !== null) {
                 $this->_columns = array_merge($this->_columns, $columns);
             }
         }
         $columnsObject = new Varien_Object();
         $columnsObject->setColumns($this->_columns);
         Mage::dispatchEvent('catalog_product_flat_prepare_columns', array('columns' => $columnsObject));
         $this->_columns = $columnsObject->getColumns();
     }
     return $this->_columns;
 }
Example #3
0
 /**
  * Retrieve catalog product flat table columns array
  *
  * @return array
  */
 public function getFlatColumns()
 {
     if (is_null($this->_columns)) {
         $this->_columns = array();
         $this->_columns['entity_id'] = array('type' => 'int(10)', 'unsigned' => true, 'is_null' => false, 'default' => null, 'extra' => 'auto_increment');
         if ($this->getFlatHelper()->isAddChildData()) {
             $this->_columns['child_id'] = array('type' => 'int(10)', 'unsigned' => true, 'is_null' => true, 'default' => null, 'extra' => null);
             $this->_columns['is_child'] = array('type' => 'tinyint(1)', 'unsigned' => true, 'is_null' => false, 'default' => 0, 'extra' => null);
         }
         $this->_columns['attribute_set_id'] = array('type' => 'smallint(5)', 'unsigned' => true, 'is_null' => false, 'default' => 0, 'extra' => null);
         $this->_columns['type_id'] = array('type' => 'varchar(32)', 'unsigned' => false, 'is_null' => false, 'default' => 'simple', 'extra' => null);
         foreach ($this->getAttributes() as $attribute) {
             /* @var $attribute Mage_Eav_Model_Entity_Attribute */
             $columns = $attribute->setFlatAddFilterableAttributes($this->getFlatHelper()->isAddFilterableAttributes())->setFlatAddChildData($this->getFlatHelper()->isAddChildData())->getFlatColumns();
             if (is_null($columns)) {
                 continue;
             }
             $this->_columns = array_merge($this->_columns, $columns);
         }
         $columnsObject = new Varien_Object();
         $columnsObject->setColumns($this->_columns);
         Mage::dispatchEvent('catalog_product_flat_prepare_columns', array('columns' => $columnsObject));
         $this->_columns = $columnsObject->getColumns();
     }
     return $this->_columns;
 }
Example #4
0
 protected function _getCustomColumns()
 {
     if (is_null($this->_customColumns)) {
         // Initialize custom columns from the different available sources
         $xmlColumns = Mage::getSingleton('customgrid/grid_type')->getTypeCustomColumnsByCode($this->getCode());
         $response = new Varien_Object(array('columns' => array()));
         Mage::dispatchEvent('blcg_grid_type_additional_columns', array('response' => $response, 'type_model' => $this));
         $this->_customColumns = array_filter(array_merge($this->_getAdditionalCustomColumns(), $xmlColumns, $response->getColumns()), create_function('$m', 'return ($m instanceof BL_CustomGrid_Model_Custom_Column_Abstract);'));
         uasort($this->_customColumns, array($this, '_sortCustomColumns'));
         // Initialize corresponding groups
         $defaultGroupId = 1;
         $currentGroupId = 2;
         $this->_columnsGroups = array();
         foreach ($this->_customColumns as $column) {
             if ($column->hasGroup()) {
                 if (!($groupId = array_search($column->getGroup(), $this->_columnsGroups))) {
                     $groupId = 'g' . $currentGroupId++;
                     $this->_columnsGroups[$groupId] = $column->getGroup();
                 }
                 $column->setGroupId($groupId);
             } else {
                 $column->setGroupId('g' . $defaultGroupId);
             }
         }
         uasort($this->_columnsGroups, 'strcmp');
         $this->_columnsGroups['g1'] = Mage::helper('customgrid')->__('Others');
         $this->_blocksColumns = array();
     }
     return $this->_customColumns;
 }