Beispiel #1
0
 protected function afterInit()
 {
     $this->dir = $this->cfg->dir;
     if ($this->cfg->subdir) {
         $this->subdir = $this->cfg->subdir . DS;
         $this->dir .= $this->subdir;
     }
     file::createDir($this->dir);
     $uploaded = false;
     if (strpos($this->cfg->name, '[')) {
         $tmp = explode('[', str_replace(']', '', $this->cfg->name));
         $tmpfile = utils::getValInArray($_FILES, $tmp);
         if (!empty($tmpfile) && is_array($tmpfile)) {
             $this->file = $tmpfile;
             $this->file['saved'] = false;
             $uploaded = $this->file['error'] == UPLOAD_ERR_OK;
         }
     } else {
         if (array_key_exists($this->cfg->name, $_FILES)) {
             $this->file = $_FILES[$this->cfg->name];
             $this->file['saved'] = false;
             $uploaded = $this->file['error'] == UPLOAD_ERR_OK;
         }
     }
     if ($this->cfg->current && !$uploaded) {
         $name = basename($this->cfg->current);
         $savePath = $this->dir . $name;
         $webPath = str_replace(DS, '/', $this->subdir . $name);
         $this->file = array('name' => $name, 'type' => file::getType($savePath), 'tmp_name' => '', 'error' => UPLOAD_ERR_OK, 'size' => file::size($savePath), 'saved' => array('name' => $name, 'savePath' => $savePath, 'webPath' => $webPath), 'savedFromValue' => true);
         $this->saved = $webPath;
     }
     $this->helper = factory::isCreable('helper_' . $this->cfg->helper) ? factory::getHelper($this->cfg->helper, $this->getHelperPrm('factory')) : null;
     if ($this->cfg->autoSave && !empty($this->file) && $this->isValid() === true) {
         $this->save();
     }
 }
Beispiel #2
0
 /**
  * Get a db object
  *
  * @param string $type Element type (table, rowset or row)
  * @param db_table|string $table
  * @param array $prm Array parameter for the factory
  * @return db_table|db_rowset|db_row
  */
 public static function get($type, $table, array $prm = array())
 {
     if ($type == 'table' && array_key_exists($table, self::$tables)) {
         return self::$tables[$table];
     }
     self::init();
     if ($table instanceof db_table) {
         $tableName = $table->getName();
         if (!array_key_exists('table', $prm)) {
             $prm['table'] = $table;
         }
     } else {
         $tableName = $table;
         if ($type == 'table' && !array_key_exists('name', $prm)) {
             $prm['name'] = $table;
         } else {
             if ($type == 'row' && !array_key_exists('table', $prm)) {
                 $db = array_key_exists('db', $prm) ? $prm['db'] : self::getInstance();
                 $prm['table'] = self::get('table', $tableName, array('db' => $db));
             }
         }
     }
     if (!($className = self::$cfg->getInArray($type, $tableName)) && !factory::isCreable($className = 'db_' . $type . '_' . $tableName)) {
         $className = self::$cfg->get($type . 'Class');
     }
     if ($type == 'table') {
         self::$tables[$table] = factory::get($className, $prm);
         return self::$tables[$table];
     }
     return factory::get($className, $prm);
 }