/**
+----------------------------------------------------------
*
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param mixed $data
* @param string $type
+----------------------------------------------------------
* @return mixed
+----------------------------------------------------------
*/
public function create($data='',$type='') {
// POST
if(empty($data)) {
$data = $_POST;
}elseif(is_object($data)){
$data = get_object_vars($data);
}elseif(!is_array($data)){
$this->error = L('_DATA_TYPE_INVALID_');
return false;
}
//
$type = $type?$type:(!empty($data[$this->getPk()])?self::MODEL_UPDATE:self::MODEL_INSERT);
//
if(C('TOKEN_ON') && !$this->autoCheckToken($data)) {
$this->error = L('_TOKEN_ERROR_');
return false;
}
//
if(!$this->autoValidation($data,$type)) return false;
//
if(!empty($this->_map)) {
foreach ($this->_map as $key=>$val){
if(isset($data[$key])) {
$data[$val] = $data[$key];
unset($data[$key]);
}
}
}
//
$vo = array();
foreach ($this->fields as $key=>$name){
if(substr($key,0,1)=='_') continue;
$val = isset($data[$name])?$data[$name]:null;
//
if(!is_null($val)){
$vo[$name] = (MAGIC_QUOTES_GPC && is_string($val))? stripslashes($val) : $val;
}
}
//
$this->autoOperation($vo,$type);
//
$this->data = $vo;
//
return $vo;
}