166 lines
5.9 KiB
PHP
166 lines
5.9 KiB
PHP
<?php
|
|
|
|
namespace App\Models\User;
|
|
|
|
use UserData;
|
|
use DB;
|
|
|
|
class SettingModel extends \Hleb\Scheme\App\Models\MainModel
|
|
{
|
|
// Editing a profile
|
|
// Редактирование профиля
|
|
public static function edit($params)
|
|
{
|
|
$sql = "UPDATE users SET
|
|
email = :email,
|
|
login = :login,
|
|
whisper = :whisper,
|
|
name = :name,
|
|
activated = :activated,
|
|
limiting_mode = :limiting_mode,
|
|
scroll = :scroll,
|
|
nsfw = :nsfw,
|
|
template = :template,
|
|
lang = :lang,
|
|
updated_at = :updated_at,
|
|
color = :color,
|
|
about = :about,
|
|
trust_level = :trust_level,
|
|
website = :website,
|
|
location = :location,
|
|
public_email = :public_email,
|
|
github = :github,
|
|
skype = :skype,
|
|
telegram = :telegram,
|
|
vk = :vk
|
|
WHERE id = :id";
|
|
|
|
return DB::run($sql, $params);
|
|
}
|
|
|
|
// Changing the password
|
|
// Изменение пароля
|
|
public static function editPassword($params)
|
|
{
|
|
$sql = "UPDATE users SET password = :password WHERE id = :id";
|
|
|
|
return DB::run($sql, $params);
|
|
}
|
|
|
|
// Changing the avatar
|
|
// Изменение аватарки
|
|
public static function setImg($params)
|
|
{
|
|
$sql = "UPDATE users SET avatar = :avatar, updated_at = :updated_at WHERE id = :id";
|
|
|
|
return DB::run($sql, $params);
|
|
}
|
|
|
|
// Changing the cover
|
|
// Изменение обложки
|
|
public static function setCover($params)
|
|
{
|
|
$sql = "UPDATE users SET cover_art = :cover_art, updated_at = :updated_at WHERE id = :id";
|
|
|
|
return DB::run($sql, $params);
|
|
}
|
|
|
|
// When removing the cover, we will write down the default
|
|
// При удаление обложки запишем дефолтную
|
|
public static function coverRemove($params)
|
|
{
|
|
$sql = "UPDATE users SET cover_art = :cover_art, updated_at = :updated_at WHERE id = :id";
|
|
|
|
return DB::run($sql, $params);
|
|
}
|
|
|
|
public static function countNotifications($uid)
|
|
{
|
|
$sql = "SELECT setting_id, setting_user_id FROM users_setting WHERE setting_user_id = :uid";
|
|
|
|
return DB::run($sql, ['uid' => $uid])->rowCount();
|
|
}
|
|
|
|
// We record personal notification settings, if there are none. Or updating.
|
|
// Записываем личные настройки уведомлений, если их нет. Или обновляем.
|
|
public static function setNotifications($params)
|
|
{
|
|
$sql = "UPDATE users_setting SET
|
|
setting_email_pm = :setting_email_pm,
|
|
setting_email_appealed = :setting_email_appealed,
|
|
setting_email_post = :setting_email_post,
|
|
setting_email_answer = :setting_email_answer
|
|
WHERE setting_user_id = :setting_user_id";
|
|
|
|
if (!self::countNotifications($params['setting_user_id'])) {
|
|
|
|
$sql = "INSERT INTO users_setting(setting_user_id,
|
|
setting_email_pm,
|
|
setting_email_appealed,
|
|
setting_email_post,
|
|
setting_email_answer)
|
|
VALUES(:setting_user_id,
|
|
:setting_email_pm,
|
|
:setting_email_appealed,
|
|
:setting_email_post,
|
|
:setting_email_answer)";
|
|
}
|
|
|
|
return DB::run($sql, $params);
|
|
}
|
|
|
|
public static function getNotifications($uid)
|
|
{
|
|
$sql = "SELECT
|
|
setting_id,
|
|
setting_user_id,
|
|
setting_email_pm,
|
|
setting_email_appealed
|
|
FROM users_setting WHERE setting_user_id = :uid";
|
|
|
|
return DB::run($sql, ['uid' => $uid])->fetch();
|
|
}
|
|
|
|
// Change of mail
|
|
public static function getNewEmail()
|
|
{
|
|
$sql = "SELECT email FROM users_email_story WHERE user_id = :user_id AND email_activate_flag = :flag";
|
|
|
|
return DB::run($sql, ['user_id' => UserData::getUserId(), 'flag' => 0])->fetch();
|
|
}
|
|
|
|
public static function setNewEmail($email, $code)
|
|
{
|
|
$params = [
|
|
'user_id' => UserData::getUserId(),
|
|
'email' => $email,
|
|
'email_code' => $code,
|
|
];
|
|
|
|
$sql = "INSERT INTO users_email_story(user_id, email, email_code) VALUES(:user_id, :email, :email_code)";
|
|
|
|
return DB::run($sql, $params);
|
|
}
|
|
|
|
public static function available($code)
|
|
{
|
|
$sql = "SELECT email_activate_flag FROM users_email_story WHERE email_code = :code AND user_id = :user_id AND email_activate_flag = :flag";
|
|
|
|
return DB::run($sql, ['code' => $code, 'user_id' => UserData::getUserId(), 'flag' => 0])->fetch();
|
|
}
|
|
|
|
public static function editEmail($email)
|
|
{
|
|
DB::run("UPDATE users SET email = :email WHERE id = :user_id", ['user_id' => UserData::getUserId(), 'email' => $email]);
|
|
|
|
$sql = "UPDATE users_email_story SET email_activate_flag = :flag WHERE user_id = :user_id AND email = :email";
|
|
|
|
return DB::run($sql, ['user_id' => UserData::getUserId(), 'email' => $email, 'flag' => 1]);
|
|
}
|
|
|
|
public static function deletionUser($user_id)
|
|
{
|
|
return DB::run("UPDATE users SET is_deleted = :deleted WHERE id = :user_id", ['user_id' => $user_id, 'deleted' => 1]);
|
|
}
|
|
}
|