Exemple #1
0
 /**
  * Prepare data for passed table
  *
  * @param Varien_Object $object
  * @param string $table
  * @return array
  */
 protected function _prepareDataForTable(Varien_Object $object, $table)
 {
     if (method_exists(get_parent_class(__CLASS__), '_prepareDataForTable')) {
         return parent::_prepareDataForTable($object, $table);
     } else {
         /**
          * Compatibility part 1.4 - 1.5
          */
         $data = array();
         $fields = $this->_getWriteAdapter()->describeTable($table);
         foreach (array_keys($fields) as $field) {
             if ($object->hasData($field)) {
                 $fieldValue = $object->getData($field);
                 if ($fieldValue instanceof Zend_Db_Expr) {
                     $data[$field] = $fieldValue;
                 } else {
                     if (null !== $fieldValue) {
                         $fieldValue = $this->_prepareTableValueForSave($fieldValue, $fields[$field]['DATA_TYPE']);
                         // Method not available in old magento
                         //$fieldValue = $this->_getWriteAdapter()->prepareColumnValue($fields[$field], $fieldValue);
                         $data[$field] = $fieldValue;
                     } else {
                         if (!empty($fields[$field]['NULLABLE'])) {
                             $data[$field] = null;
                         }
                     }
                 }
             }
         }
         return $data;
     }
 }