/* Добавление пользователя */
function Add($data)
{
$data['login'] = addslashes(trim(htmlspecialchars($data['login'])));
$data['name'] = addslashes(trim(htmlspecialchars($data['name'])));
$data['address'] = addslashes(trim(htmlspecialchars($data['address'])));
$data['email'] = addslashes(trim(htmlspecialchars($data['email'])));
$data['adm_comment'] = addslashes(trim(htmlspecialchars($data['adm_comment'])));
$data['is_active'] = ($data['is_active']) ? '1' : '0';
if($data['group'] == '1') $data['group'] = 'adv_admin';
elseif($data['group'] == '2') $data['group'] = 'adv_manager';
elseif($data['group'] == '3') $data['group'] = 'adv_complect';
else $data['group'] = 'orders';
if(!$data[name])
{
AddStatus('error', 'Не удается добавить пользователя. Не заполнено поле "Отображаемое имя".');
return FALSE;
}
if(!$data['login'])
{
AddStatus('error', 'Не удается добавить пользователя. Не заполнено поле "Логин".');
return FALSE;
}
if($data['password'])
{
if($data['password'] != $data['password2'])
{
AddStatus('error', 'Введенные пароли не совпадают.');
return FALSE;
}
else
{
$data['password'] = trim(md5($data['password']));
}
}
else
{
AddStatus('error', 'Не указан пароль пользователя');
return FALSE;
}
$sql = "INSERT INTO `users` (`login`, `name`, `address`, `email`, `password`, `group`, `is_active`, `adm_comment`) VALUES ('{$data['login']}', '{$data['name']}', '{$data['address']}', '{$data['email']}', '{$data['password']}', '{$data['group']}', '{$data['is_active']}','{$data['adm_comment']}');";
$this->DB->sql_query($sql, __FILE__, __LINE__, 'Создание нового пользователя');
$item_id = $this->DB->sql_insert_id();
if($item_id)
{
AddStatus('note', 'Пользователь добавлен.');
return $item_id;
}
else
{
AddStatus('error', 'Не удается добавить пользователя.');
return FALSE;
}
}
/* Редактирование пользователя */
// $type
// A - Режим администратора
// P - Режим "Персональная страница"
function Update($user_id, $data, $type = 'A')
{
$user_id = intval($user_id);
if($type == 'A')
{
$data['login'] = addslashes(trim(htmlspecialchars($data['login'])));
$data['name'] = addslashes(trim(htmlspecialchars($data['name'])));
$data['adm_comment'] = addslashes(trim(htmlspecialchars($data['adm_comment'])));
$data['is_active'] = ($data['is_active']) ? '1' : '0';
if($data['group'] == '1') $data['group'] = 'adv_admin';
elseif($data['group'] == '2') $data['group'] = 'adv_manager';
elseif($data['group'] == '3') $data['group'] = 'adv_complect';
else $data['group'] = 'orders';
}
$data['address'] = addslashes(trim(htmlspecialchars($data['address'])));
$data['email'] = addslashes(trim(htmlspecialchars($data['email'])));
if(!empty($data['email']) AND !preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $data['email']))
{
AddStatus('error', 'Введенный адрес электронной почты не верен.');
return FALSE;
}
if($type == 'A')
{
if(!$data['name'])
{
AddStatus('error', 'Не удается сохранить пользователя. Не заполнено поле "Отображаемое имя".');
return FALSE;
}
if(!$data['login'])
{
AddStatus('error', 'Не удается сохранить пользователя. Не заполнено поле "Логин".');
return FALSE;
}
}
if($data['password'])
{
if(strlen($data['password']) <= 6)
{
AddStatus('error', 'Пароль должен состоять из не менее чем 6 символов.');
}
elseif($data['password'] != $data['password2'])
{
AddStatus('error', 'Введенные пароли не совпадают.');
}
else
{
$data['password'] = trim(md5($data['password']));
$password = ", `password`='{$data['password']}'";
AddStatus('note', 'Пароль пользователя обновлен.');
}
}