- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
/**
* Обновление информации о пользователе
*
* @param integer $user_id
* @param array $data
* @return Zend_Db_Statement_Pdo
*/
public function updateProfile($user_id, $data)
{
// TODO: сделать человеческую валидацию
$params = $keys = array();
if ($data['login'] !== NULL) {
$keys[] = 'u_login = ?';
$params[] = $data['login'];
}
if (Zend_Validate::is($data['email'], 'EmailAddress')) {
$keys[] = 'u_email = ?';
$params[] = $data['email'];
}
if ($data['sname'] !== NULL) {
$keys[] = 'u_sname = ?';
$params[] = $data['sname'];
}
if ($data['name'] !== NULL) {
$keys[] = 'u_name = ?';
$params[] = $data['name'];
}
if ($data['fname'] !== NULL) {
$keys[] = 'u_fname = ?';
$params[] = $data['fname'];
}
if ($data['birthdate'] !== NULL) {
$keys[] = 'u_birthdate = ?';
$params[] = $data['birthdate'];
} else {
$keys[] = 'u_birthdate = NULL';
}
if ($data['city'] !== NULL) {
$keys[] = 'u_c_id = ?';
$params[] = (int) $data['city'];
}
if ($data['info'] !== NULL) {
$keys[] = 'u_info = ?';
$params[] = $data['info'];
}
if ($data['sign'] !== NULL) {
$keys[] = 'u_sign = ?';
$params[] = $data['sign'];
}
if ($data['sex'] === 'M' OR $data['sex'] === 'F') {
$keys[] = 'u_sex = ?';
$params[] = $data['sex'];
}
if ($data['subscribe'] === 'on' AND ($data['subtype'] === 'T' OR $data['subtype'] === 'H')) {
$keys[] = 'u_subscribed = ?';
$params[] = $data['subtype'] === 'T' ? 1 : 2;
} else {
$keys[] = 'u_subscribed = ?';
$params[] = 0;
}
$sql = 'UPDATE users SET ' . implode(', ', $keys) . ' WHERE u_id = ' . (int) $user_id;
$query = $this->db->query($sql, $params);
$this->clearUserCache($user_id);
return $query;
}