public function save_user_info()
{
$save = array();
// 修改用户昵称
if (isset($this->data['uname'])) {
$uname = t($this->data['uname']);
$save['uname'] = filter_keyword($uname);
$oldName = t($this->data['old_name']);
$res = model('Register')->isValidName($uname);
if (!$res) {
$error = model('Register')->getLastError();
return array('status' => 0, 'msg' => $error);
}
// 如果包含中文将中文翻译成拼音
if (preg_match('/[\\x7f-\\xff]+/', $save['uname'])) {
// 昵称和呢称拼音保存到搜索字段
$save['search_key'] = $save['uname'] . ' ' . model('PinYin')->Pinyin($save['uname']);
} else {
$save['search_key'] = $save['uname'];
}
}
// 修改性别
if (isset($this->data['sex'])) {
$save['sex'] = 1 == intval($this->data['sex']) ? 1 : 2;
}
// 修改个人简介
if (isset($this->data['intro'])) {
$save['intro'] = formatEmoji(true, t($this->data['intro']));
}
// 修改地区
if ($this->data['city_id']) {
$area_id = intval($this->data['city_id']);
$area = D('area')->where('area_id=' . $area_id)->find();
$city = D('area')->where('area_id=' . $area['pid'])->find();
$province = D('area')->where('area_id=' . $city['pid'])->find();
$save['province'] = intval($province['area_id']);
$save['city'] = intval($city['area_id']);
$save['area'] = t($area['area_id']);
$save['location'] = $province['title'] . ' ' . $city['title'] . ' ' . $area['title'];
}
// 修改密码
if ($this->data['password']) {
$regmodel = model('Register');
// 验证格式
if (!$regmodel->isValidPassword($this->data['password'], $this->data['password'])) {
$msg = $regmodel->getLastError();
$return = array('status' => 0, 'msg' => $msg);
return $return;
}
// 验证新密码与旧密码是否一致
if ($this->data['password'] == $this->data['old_password']) {
$return = array('status' => 0, 'msg' => L('PUBLIC_PASSWORD_SAME'));
return $return;
}
// 验证原密码是否正确
$user = model('User')->where('`uid`=' . $this->mid)->find();
if (md5(md5($this->data['old_password']) . $user['login_salt']) != $user['password']) {
$return = array('status' => 0, 'msg' => L('PUBLIC_ORIGINAL_PASSWORD_ERROR'));
// 原始密码错误
return $return;
}
$login_salt = rand(11111, 99999);
$save['login_salt'] = $login_salt;
$save['password'] = md5(md5($this->data['password']) . $login_salt);
}
if (!empty($save)) {
$res = model('User')->where('`uid`=' . $this->mid)->save($save);
$res !== false && model('User')->cleanCache($this->mid);
$user_feeds = model('Feed')->where('uid=' . $this->mid)->field('feed_id')->findAll();
if ($user_feeds) {
$feed_ids = getSubByKey($user_feeds, 'feed_id');
model('Feed')->cleanCache($feed_ids, $this->mid);
}
}
// 修改用户标签
if (isset($this->data['tags'])) {
if (empty($this->data['tags'])) {
return array('status' => 0, 'msg' => L('PUBLIC_TAG_NOEMPTY'));
}
$nameList = t($this->data['tags']);
$nameList = explode(',', $nameList);
$tagIds = array();
foreach ($nameList as $name) {
$tagIds[] = model('Tag')->setAppName('public')->setAppTable('user')->getTagId($name);
}
$rowId = intval($this->mid);
if (!empty($rowId)) {
$registerConfig = model('Xdata')->get('admin_Config:register');
if (count($tagIds) > $registerConfig['tag_num']) {
return array('status' => 0, 'msg' => '最多只能设置' . $registerConfig['tag_num'] . '个标签');
}
model('Tag')->setAppName('public')->setAppTable('user')->updateTagData($rowId, $tagIds);
}
}
return array('status' => 1, 'msg' => '修改成功');
}