Exemple #1
0
 public function insert(array $data)
 {
     if (isset($data['width']) && isset($data['height'])) {
         $data[Centurion_Db_Table_Abstract::VERBOSE] = false;
         return parent::insert($data);
     }
     return parent::insert($this->_getImageSize($data['local_filename']));
 }
 /**
  * Generic test for findOneBy method.
  */
 public function testFindOneBy()
 {
     return;
     $modelId = $this->_model->insert($this->_getData());
     $this->assertFalse(null === $modelId);
     if (is_array($modelId)) {
         $this->_data = call_user_func_array(array($this->_model, 'find'), array_values($modelId))->current()->toArray();
     } else {
         $this->_data = $this->_model->find($modelId)->current()->toArray();
     }
     foreach ($this->_getData() as $key => $value) {
         if (null === $value) {
             continue;
         }
         $method = 'findOneBy' . Centurion_Inflector::classify($key);
         $modelRow = $this->_model->{$method}($value);
         $this->assertEquals($this->_getData(), $modelRow->toArray(), sprintf('Method %s of %s object doesn\'t return the expected values', $method, get_class($this->_model)));
     }
 }
Exemple #3
0
 public function insert(array $data)
 {
     if (!isset($data['width']) || $data['width'] == 0) {
         $data['width'] = (int) $this->_getWidth($data['local_filename']);
     }
     if (!isset($data['height']) || $data['height'] == 0) {
         $data['height'] = (int) $this->_getHeight($data['local_filename']);
     }
     if (!isset($data['duration']) || $data['duration'] == 0) {
         $data['duration'] = $this->_getDuration($data['local_filename']);
     }
     $data[Centurion_Db_Table_Abstract::VERBOSE] = false;
     return parent::insert($data);
 }
Exemple #4
0
 public function insert(array $data)
 {
     $primary = $this->_primary;
     if (is_array($primary)) {
         $primary = $primary[1];
     }
     if (!isset($data[$primary])) {
         $data[$primary] = md5(Centurion_Inflector::uniq(uniqid()));
     }
     if (!isset($data['sha1'])) {
         $data['sha1'] = sha1_file(Centurion_Config_Manager::get('media.uploads_dir') . DIRECTORY_SEPARATOR . $data['local_filename']);
     }
     $row = $this->fetchRow(array('sha1=?' => $data['sha1'], 'filesize=?' => $data['filesize']));
     //We want to be sure
     if ($row !== null && sha1_file(Centurion_Config_Manager::get('media.uploads_dir') . DIRECTORY_SEPARATOR . $data['local_filename']) == $row->sha1 && filesize(Centurion_Config_Manager::get('media.uploads_dir') . DIRECTORY_SEPARATOR . $data['local_filename']) == $row->filesize) {
         //We reuse the same local filename
         unlink(Centurion_Config_Manager::get('media.uploads_dir') . DIRECTORY_SEPARATOR . $data['local_filename']);
         $data['file_id'] = $row->file_id;
         $data['local_filename'] = $row->local_filename;
         $data['filesize'] = $row->filesize;
         $data['proxy_model'] = $row->proxy_model;
         $data['proxy_pk'] = $row->proxy_pk;
         $data['belong_model'] = $row->belong_model;
         $data['belong_pk'] = $row->belong_pk;
     }
     if (!isset($data['file_id'])) {
         $data['file_id'] = $data[$primary];
     }
     if (!isset($data['proxy_pk'])) {
         foreach ($this->_dependentProxies as $key => $dependentProxy) {
             $proxyTable = Centurion_Db::getSingletonByClassName($dependentProxy);
             if (!in_array($data['mime'], array_keys($proxyTable->getMimeTypes()))) {
                 continue;
             }
             $cols = $proxyTable->info('cols');
             $proxyData = array();
             foreach ($data as $key => $value) {
                 if ($key == $primary || !in_array($key, $cols)) {
                     continue;
                 }
                 $proxyData[$key] = $value;
                 unset($data[$key]);
             }
             $proxyData = $data;
             unset($proxyData[$primary]);
             $pk = $proxyTable->insert($proxyData);
             $data = array_merge($data, array('proxy_model' => $dependentProxy, 'proxy_pk' => $pk));
         }
     }
     if (array_key_exists(self::BELONG_TO, $data)) {
         list($model, $pk) = $this->_setupProxyBelong($data[self::BELONG_TO]);
         $data = array_merge($data, array('belong_model' => $model, 'belong_pk' => $pk));
         unset($data[self::BELONG_TO]);
     }
     return parent::insert($data);
 }
Exemple #5
0
 public function insert(array $data)
 {
     $primary = $this->_primary;
     if (is_array($primary)) {
         $primary = $primary[1];
     }
     if (!isset($data['proxy_pk'])) {
         foreach ($this->_dependentProxies as $key => $dependentProxy) {
             $proxyTable = Centurion_Db::getSingletonByClassName($dependentProxy);
             if (!in_array($data['mime'], array_keys($proxyTable->getMimeTypes()))) {
                 continue;
             }
             $cols = $proxyTable->info('cols');
             $proxyData = array();
             foreach ($data as $key => $value) {
                 if ($key == $primary || !in_array($key, $cols)) {
                     continue;
                 }
                 $proxyData[$key] = $value;
                 unset($data[$key]);
             }
             $proxyData = $data;
             unset($proxyData[$primary]);
             $pk = $proxyTable->insert($proxyData);
             $data = array_merge($data, array('proxy_model' => $dependentProxy, 'proxy_pk' => $pk));
         }
     }
     if (array_key_exists(self::BELONG_TO, $data)) {
         list($model, $pk) = $this->_setupProxyBelong($data[self::BELONG_TO]);
         $data = array_merge($data, array('belong_model' => $model, 'belong_pk' => $pk));
         unset($data[self::BELONG_TO]);
     }
     return parent::insert($data);
 }