ModuleUser_MapperUser
Package | modules.user |
---|---|
Inheritance | class ModuleUser_MapperUser » Mapper » LsObject |
Since | 1.0 |
Source Code | /classes/modules/user/mapper/User.mapper.class.php |
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
oDb | DbSimple_Generic_Database | Объект подключения к базе данных | Mapper |
Public Methods
Method | Description | Defined By |
---|---|---|
Add() | Добавляет юзера | ModuleUser_MapperUser |
AddFriend() | Добавляет друга | ModuleUser_MapperUser |
AddInvite() | Добавляет новый инвайт | ModuleUser_MapperUser |
AddReminder() | Добавляем воспоминание(восстановление) пароля | ModuleUser_MapperUser |
AddUserChangemail() | Добавляет запись о смене емайла | ModuleUser_MapperUser |
AddUserNote() | Добавляет заметку | ModuleUser_MapperUser |
CreateSession() | Создание пользовательской сессии | ModuleUser_MapperUser |
DeleteUserFieldValues() | Удаляет у пользователя значения полей | ModuleUser_MapperUser |
DeleteUserNoteById() | Удаляет заметку по ID | ModuleUser_MapperUser |
EraseFriend() | Удаляет информацию о дружбе из базы данных | ModuleUser_MapperUser |
GetCountInviteUsed() | Получает полное число использованных приглашений юзера | ModuleUser_MapperUser |
GetCountInviteUsedByDate() | Получает число использованых приглашений юзером за определенную дату | ModuleUser_MapperUser |
GetCountUserNotesByUserId() | Возвращает количество заметок у пользователя | ModuleUser_MapperUser |
GetCountUsers() | Возвращает количество пользователй | ModuleUser_MapperUser |
GetCountUsersActive() | Возвращает количество активных пользователей | ModuleUser_MapperUser |
GetCountUsersFriend() | Получает количество друзей | ModuleUser_MapperUser |
GetCountUsersSex() | Возвращает количество пользователей в разрезе полов | ModuleUser_MapperUser |
GetFriendsByArrayId() | Получить список отношений друзей | ModuleUser_MapperUser |
GetGroupPrefixUser() | Возвращает список префиксов логинов пользователей (для алфавитного указателя) | ModuleUser_MapperUser |
GetInviteByCode() | Получает инвайт по его коду | ModuleUser_MapperUser |
GetReminderByCode() | Получаем запись восстановления пароля по коду | ModuleUser_MapperUser |
GetSessionsByArrayId() | Список сессий юзеров по ID | ModuleUser_MapperUser |
GetUserByActivateKey() | Получить юзера по ключу активации | ModuleUser_MapperUser |
GetUserByLogin() | Получить юзера по логину | ModuleUser_MapperUser |
GetUserByMail() | Получить юзера по мылу | ModuleUser_MapperUser |
GetUserBySessionKey() | Получить юзера по ключу сессии | ModuleUser_MapperUser |
GetUserChangemailByCodeFrom() | Возвращает объект смены емайла по коду подтверждения | ModuleUser_MapperUser |
GetUserChangemailByCodeTo() | Возвращает объект смены емайла по коду подтверждения | ModuleUser_MapperUser |
GetUserInviteFrom() | Получает юзера который пригласил | ModuleUser_MapperUser |
GetUserNote() | Возвращет заметку по автору и пользователю | ModuleUser_MapperUser |
GetUserNoteById() | Возвращает заметку по ID | ModuleUser_MapperUser |
GetUserNotesByArrayUserId() | Возвращает список заметок пользователя по ID целевых юзеров | ModuleUser_MapperUser |
GetUserNotesByUserId() | Возвращает список заметок пользователя | ModuleUser_MapperUser |
GetUserSelfFriendOffer() | Получить список заявок на добавление в друзья от указанного пользователя | ModuleUser_MapperUser |
GetUsersByArrayId() | Список юзеров по ID | ModuleUser_MapperUser |
GetUsersByDateLast() | Получить список юзеров по дате последнего визита | ModuleUser_MapperUser |
GetUsersByDateRegister() | Получить список юзеров по дате регистрации | ModuleUser_MapperUser |
GetUsersByFilter() | Возвращает список пользователей по фильтру | ModuleUser_MapperUser |
GetUsersByLoginLike() | Получить список юзеров по первым буквам логина | ModuleUser_MapperUser |
GetUsersFriend() | Получает список друзей | ModuleUser_MapperUser |
GetUsersFriendOffer() | Получить список заявок на добавление в друзья от указанного пользователя | ModuleUser_MapperUser |
GetUsersInvite() | Получает список приглашенных юзеров | ModuleUser_MapperUser |
Update() | Обновляет юзера | ModuleUser_MapperUser |
UpdateFriend() | Обновляет информацию о друге | ModuleUser_MapperUser |
UpdateInvite() | Обновляет инвайт | ModuleUser_MapperUser |
UpdateReminder() | Сохраняем воспомнинание(восстановление) пароля | ModuleUser_MapperUser |
UpdateSession() | Обновление данных сессии | ModuleUser_MapperUser |
UpdateUserChangemail() | Обновляет запись о смене емайла | ModuleUser_MapperUser |
UpdateUserNote() | Обновляет заметку | ModuleUser_MapperUser |
__construct() | Передаем коннект к БД | Mapper |
addUserField() | Добавить поле | ModuleUser_MapperUser |
deleteUserField() | Удалить поле | ModuleUser_MapperUser |
getUserFieldValueByName() | Получить по имени поля его значение дял определённого пользователя | ModuleUser_MapperUser |
getUserFields() | Получить дополнительные поля профиля пользователя | ModuleUser_MapperUser |
getUserFieldsValues() | Получить значения дополнительных полей профиля пользователя | ModuleUser_MapperUser |
setUserFieldsValues() | Установить значения дополнительных полей профиля пользователя | ModuleUser_MapperUser |
updateUserField() | Изменить поле | ModuleUser_MapperUser |
userFieldExistsById() | Проверяет существует ли поле с таким ID | ModuleUser_MapperUser |
userFieldExistsByName() | Проверяет существует ли поле с таким именем | ModuleUser_MapperUser |
Method Details
public int|bool Add(ModuleUser_EntityUser $oUser)
| ||
$oUser | ModuleUser_EntityUser | Объект пользователя |
{return} | int|bool |
public function Add(ModuleUser_EntityUser $oUser) {
$sql = "INSERT INTO ".Config::Get('db.table.user')."
(user_login,
user_password,
user_mail,
user_date_register,
user_ip_register,
user_activate,
user_activate_key
)
VALUES(?, ?, ?, ?, ?, ?, ?)
";
if ($iId=$this->oDb->query($sql,$oUser->getLogin(),$oUser->getPassword(),$oUser->getMail(),$oUser->getDateRegister(),$oUser->getIpRegister(),$oUser->getActivate(),$oUser->getActivateKey())) {
return $iId;
}
return false;
}
Добавляет юзера
public bool AddFriend(ModuleUser_EntityFriend $oFriend)
| ||
$oFriend | ModuleUser_EntityFriend | Объект дружбы(связи пользователей) |
{return} | bool |
public function AddFriend(ModuleUser_EntityFriend $oFriend) {
$sql = "INSERT INTO ".Config::Get('db.table.friend')."
(user_from,
user_to,
status_from,
status_to
)
VALUES(?d, ?d, ?d, ?d)
";
if (
$this->oDb->query(
$sql,
$oFriend->getUserFrom(),
$oFriend->getUserTo(),
$oFriend->getStatusFrom(),
$oFriend->getStatusTo()
)===0
) {
return true;
}
return false;
}
Добавляет друга
public int|bool AddInvite(ModuleUser_EntityInvite $oInvite)
| ||
$oInvite | ModuleUser_EntityInvite | Объект инвайта |
{return} | int|bool |
public function AddInvite(ModuleUser_EntityInvite $oInvite) {
$sql = "INSERT INTO ".Config::Get('db.table.invite')."
(invite_code,
user_from_id,
invite_date_add
)
VALUES(?, ?, ?)
";
if ($iId=$this->oDb->query($sql,$oInvite->getCode(),$oInvite->getUserFromId(),$oInvite->getDateAdd())) {
return $iId;
}
return false;
}
Добавляет новый инвайт
public bool AddReminder(ModuleUser_EntityReminder $oReminder)
| ||
$oReminder | ModuleUser_EntityReminder | Объект восстановления пароля |
{return} | bool |
public function AddReminder(ModuleUser_EntityReminder $oReminder) {
$sql = "REPLACE ".Config::Get('db.table.reminder')."
SET
reminder_code = ? ,
user_id = ? ,
reminder_date_add = ? ,
reminder_date_used = ? ,
reminder_date_expire = ? ,
reminde_is_used = ?
";
return $this->oDb->query($sql,$oReminder->getCode(),$oReminder->getUserId(),$oReminder->getDateAdd(),$oReminder->getDateUsed(),$oReminder->getDateExpire(),$oReminder->getIsUsed());
}
Добавляем воспоминание(восстановление) пароля
public int|null AddUserChangemail(ModuleUser_EntityChangemail $oChangemail)
| ||
$oChangemail | ModuleUser_EntityChangemail | Объект смены емайла |
{return} | int|null |
public function AddUserChangemail($oChangemail) {
$sql = "INSERT INTO ".Config::Get('db.table.user_changemail')." SET ?a ";
if ($iId=$this->oDb->query($sql,$oChangemail->_getData())) {
return $iId;
}
return false;
}
Добавляет запись о смене емайла
public int|null AddUserNote(ModuleUser_EntityNote $oNote)
| ||
$oNote | ModuleUser_EntityNote | Объект заметки |
{return} | int|null |
public function AddUserNote($oNote) {
$sql = "INSERT INTO ".Config::Get('db.table.user_note')." SET ?a ";
if ($iId=$this->oDb->query($sql,$oNote->_getData())) {
return $iId;
}
return false;
}
Добавляет заметку
public bool CreateSession(ModuleUser_EntitySession $oSession)
| ||
$oSession | ModuleUser_EntitySession | |
{return} | bool |
public function CreateSession(ModuleUser_EntitySession $oSession) {
$sql = "REPLACE INTO ".Config::Get('db.table.session')."
SET
session_key = ? ,
user_id = ? ,
session_ip_create = ? ,
session_ip_last = ? ,
session_date_create = ? ,
session_date_last = ?
";
return $this->oDb->query($sql,$oSession->getKey(), $oSession->getUserId(), $oSession->getIpCreate(), $oSession->getIpLast(), $oSession->getDateCreate(), $oSession->getDateLast());
}
Создание пользовательской сессии
public bool DeleteUserFieldValues(int $iUserId, array|null $aType)
| ||
$iUserId | int | ID пользователя |
$aType | array|null | Список типов для удаления |
{return} | bool |
public function DeleteUserFieldValues($iUserId,$aType) {
if (!is_null($aType) and !is_array($aType)) {
$aType=array($aType);
}
$sql = 'DELETE FROM '.Config::Get('db.table.user_field_value').'
WHERE user_id = ?d AND field_id IN (
SELECT id FROM '.Config::Get('db.table.user_field').' WHERE 1=1 { and type IN (?a) }
)';
return $this->oDb->query($sql,$iUserId,(is_null($aType) or !count($aType)) ? DBSIMPLE_SKIP : $aType);
}
Удаляет у пользователя значения полей
public bool DeleteUserNoteById(int $iId)
| ||
$iId | int | ID заметки |
{return} | bool |
public function DeleteUserNoteById($iId) {
$sql = "DELETE FROM ".Config::Get('db.table.user_note')." WHERE id = ?d ";
return $this->oDb->query($sql,$iId);
}
Удаляет заметку по ID
public bool EraseFriend(ModuleUser_EntityFriend $oFriend)
| ||
$oFriend | ModuleUser_EntityFriend | Объект дружбы(связи пользователей) |
{return} | bool |
public function EraseFriend(ModuleUser_EntityFriend $oFriend) {
$sql = "DELETE FROM ".Config::Get('db.table.friend')."
WHERE
user_from = ?d
AND
user_to = ?d
";
if ($this->oDb->query($sql,$oFriend->getUserFrom(),$oFriend->getUserTo()))
{
return true;
}
return false;
}
Удаляет информацию о дружбе из базы данных
public int GetCountInviteUsed(int $sUserIdFrom)
| ||
$sUserIdFrom | int | ID пользователя |
{return} | int |
public function GetCountInviteUsed($sUserIdFrom) {
$sql = "SELECT count(invite_id) as count FROM ".Config::Get('db.table.invite')." WHERE user_from_id = ?d";
if ($aRow=$this->oDb->selectRow($sql,$sUserIdFrom)) {
return $aRow['count'];
}
return 0;
}
Получает полное число использованных приглашений юзера
public int GetCountInviteUsedByDate(int $sUserIdFrom, string $sDate)
| ||
$sUserIdFrom | int | ID пользователя |
$sDate | string | Дата |
{return} | int |
public function GetCountInviteUsedByDate($sUserIdFrom,$sDate) {
$sql = "SELECT count(invite_id) as count FROM ".Config::Get('db.table.invite')." WHERE user_from_id = ?d and invite_date_add >= ? ";
if ($aRow=$this->oDb->selectRow($sql,$sUserIdFrom,$sDate)) {
return $aRow['count'];
}
return 0;
}
Получает число использованых приглашений юзером за определенную дату
public int GetCountUserNotesByUserId(int $iUserId)
| ||
$iUserId | int | ID пользователя |
{return} | int |
public function GetCountUserNotesByUserId($iUserId) {
$sql = "
SELECT count(*) as c
FROM
".Config::Get('db.table.user_note')."
WHERE
user_id = ?d
";
if ($aRow=$this->oDb->selectRow($sql,$iUserId)) {
return $aRow['c'];
}
return 0;
}
Возвращает количество заметок у пользователя
public int GetCountUsers()
| ||
{return} | int |
public function GetCountUsers() {
$sql = "SELECT count(*) as count FROM ".Config::Get('db.table.user')." WHERE user_activate = 1";
$result=$this->oDb->selectRow($sql);
return $result['count'];
}
Возвращает количество пользователй
public mixed GetCountUsersActive(string $sDateActive)
| ||
$sDateActive | string | Дата |
{return} | mixed |
public function GetCountUsersActive($sDateActive) {
$sql = "SELECT count(*) as count FROM ".Config::Get('db.table.session')." WHERE session_date_last >= ? ";
$result=$this->oDb->selectRow($sql,$sDateActive);
return $result['count'];
}
Возвращает количество активных пользователей
public int GetCountUsersFriend(int $sUserId)
| ||
$sUserId | int | ID пользователя |
{return} | int |
public function GetCountUsersFriend($sUserId) {
$sql = "SELECT
count(*) as c
FROM
".Config::Get('db.table.friend')." as uf
WHERE
( uf.user_from = ?d
OR
uf.user_to = ?d )
AND
( uf.status_from + uf.status_to = ?d
OR
(uf.status_from = ?d AND uf.status_to = ?d )
)";
if ($aRow=$this->oDb->selectRow(
$sql,
$sUserId,
$sUserId,
ModuleUser::USER_FRIEND_ACCEPT+ModuleUser::USER_FRIEND_OFFER,
ModuleUser::USER_FRIEND_ACCEPT,
ModuleUser::USER_FRIEND_ACCEPT
)
) {
return $aRow['c'];
}
return 0;
}
Получает количество друзей
public array GetCountUsersSex()
| ||
{return} | array |
public function GetCountUsersSex() {
$sql = "SELECT user_profile_sex AS ARRAY_KEY, count(*) as count FROM ".Config::Get('db.table.user')." WHERE user_activate = 1 GROUP BY user_profile_sex ";
$result=$this->oDb->select($sql);
return $result;
}
Возвращает количество пользователей в разрезе полов
public array GetFriendsByArrayId(array $aArrayId, int $sUserId)
| ||
$aArrayId | array | Список ID пользователей проверяемых на дружбу |
$sUserId | int | ID пользователя у которого проверяем друзей |
{return} | array |
public function GetFriendsByArrayId($aArrayId,$sUserId) {
if (!is_array($aArrayId) or count($aArrayId)==0) {
return array();
}
$sql = "SELECT
*
FROM
".Config::Get('db.table.friend')."
WHERE
( `user_from`=?d AND `user_to` IN(?a) )
OR
( `user_from` IN(?a) AND `user_to`=?d )
";
$aRows=$this->oDb->select(
$sql,
$sUserId,$aArrayId,
$aArrayId,$sUserId
);
$aRes=array();
if ($aRows) {
foreach ($aRows as $aRow) {
$aRow['user']=$sUserId;
$aRes[]=Engine::GetEntity('User_Friend',$aRow);
}
}
return $aRes;
}
Получить список отношений друзей
public array GetGroupPrefixUser(int $iPrefixLength=1)
| ||
$iPrefixLength | int | Длина префикса |
{return} | array |
public function GetGroupPrefixUser($iPrefixLength=1) {
$sql = "
SELECT SUBSTRING(`user_login` FROM 1 FOR ?d ) as prefix
FROM
".Config::Get('db.table.user')."
WHERE
user_activate = 1
GROUP BY prefix
ORDER BY prefix ";
$aReturn=array();
if ($aRows=$this->oDb->select($sql,$iPrefixLength)) {
foreach ($aRows as $aRow) {
$aReturn[]=mb_strtoupper($aRow['prefix'],'utf-8');
}
}
return $aReturn;
}
Возвращает список префиксов логинов пользователей (для алфавитного указателя)
public ModuleUser_EntityInvite|null GetInviteByCode(string $sCode, int $iUsed=0)
| ||
$sCode | string | Код инвайта |
$iUsed | int | Флаг испольщования инвайта |
{return} | ModuleUser_EntityInvite|null |
public function GetInviteByCode($sCode,$iUsed=0) {
$sql = "SELECT * FROM ".Config::Get('db.table.invite')." WHERE invite_code = ? and invite_used = ?d ";
if ($aRow=$this->oDb->selectRow($sql,$sCode,$iUsed)) {
return Engine::GetEntity('User_Invite',$aRow);
}
return null;
}
Получает инвайт по его коду
public ModuleUser_EntityReminder|null GetReminderByCode(string $sCode)
| ||
$sCode | string | Код восстановления пароля |
{return} | ModuleUser_EntityReminder|null |
public function GetReminderByCode($sCode) {
$sql = "SELECT
*
FROM
".Config::Get('db.table.reminder')."
WHERE
reminder_code = ?";
if ($aRow=$this->oDb->selectRow($sql,$sCode)) {
return Engine::GetEntity('User_Reminder',$aRow);
}
return null;
}
Получаем запись восстановления пароля по коду
public array GetSessionsByArrayId(array $aArrayId)
| ||
$aArrayId | array | Список ID пользователей |
{return} | array |
public function GetSessionsByArrayId($aArrayId) {
if (!is_array($aArrayId) or count($aArrayId)==0) {
return array();
}
$sql = "SELECT
s.*
FROM
".Config::Get('db.table.session')." as s
WHERE
s.user_id IN(?a) ";
$aRes=array();
if ($aRows=$this->oDb->select($sql,$aArrayId)) {
foreach ($aRows as $aRow) {
$aRes[]=Engine::GetEntity('User_Session',$aRow);
}
}
return $aRes;
}
Список сессий юзеров по ID
public int|null GetUserByActivateKey(string $sKey)
| ||
$sKey | string | Ключ активации |
{return} | int|null |
public function GetUserByActivateKey($sKey) {
$sql = "SELECT
u.user_id
FROM
".Config::Get('db.table.user')." as u
WHERE u.user_activate_key = ? ";
if ($aRow=$this->oDb->selectRow($sql,$sKey)) {
return $aRow['user_id'];
}
return null;
}
Получить юзера по ключу активации
public int|null GetUserByLogin(string $sLogin)
| ||
$sLogin | string | Логин пользователя |
{return} | int|null |
public function GetUserByLogin($sLogin) {
$sql = "SELECT
u.user_id
FROM
".Config::Get('db.table.user')." as u
WHERE
u.user_login = ? ";
if ($aRow=$this->oDb->selectRow($sql,$sLogin)) {
return $aRow['user_id'];
}
return null;
}
Получить юзера по логину
public int|null GetUserByMail(string $sMail)
| ||
$sMail | string | Емайл |
{return} | int|null |
public function GetUserByMail($sMail) {
$sql = "SELECT
u.user_id
FROM
".Config::Get('db.table.user')." as u
WHERE u.user_mail = ? ";
if ($aRow=$this->oDb->selectRow($sql,$sMail)) {
return $aRow['user_id'];
}
return null;
}
Получить юзера по мылу
public int|null GetUserBySessionKey(string $sKey)
| ||
$sKey | string | Сессионный ключ |
{return} | int|null |
public function GetUserBySessionKey($sKey) {
$sql = "SELECT
s.user_id
FROM
".Config::Get('db.table.session')." as s
WHERE
s.session_key = ?
";
if ($aRow=$this->oDb->selectRow($sql,$sKey)) {
return $aRow['user_id'];
}
return null;
}
Получить юзера по ключу сессии
public ModuleUser_EntityChangemail|null GetUserChangemailByCodeFrom(string $sCode)
| ||
$sCode | string | Код подтверждения |
{return} | ModuleUser_EntityChangemail|null |
public function GetUserChangemailByCodeFrom($sCode) {
$sql = "SELECT * FROM ".Config::Get('db.table.user_changemail')." WHERE code_from = ? ";
if ($aRow=$this->oDb->selectRow($sql,$sCode)) {
return Engine::GetEntity('ModuleUser_EntityChangemail',$aRow);
}
return null;
}
Возвращает объект смены емайла по коду подтверждения
public ModuleUser_EntityChangemail|null GetUserChangemailByCodeTo(string $sCode)
| ||
$sCode | string | Код подтверждения |
{return} | ModuleUser_EntityChangemail|null |
public function GetUserChangemailByCodeTo($sCode) {
$sql = "SELECT * FROM ".Config::Get('db.table.user_changemail')." WHERE code_to = ? ";
if ($aRow=$this->oDb->selectRow($sql,$sCode)) {
return Engine::GetEntity('ModuleUser_EntityChangemail',$aRow);
}
return null;
}
Возвращает объект смены емайла по коду подтверждения
public int|null GetUserInviteFrom(int $sUserIdTo)
| ||
$sUserIdTo | int | ID пользователя |
{return} | int|null |
public function GetUserInviteFrom($sUserIdTo) {
$sql = "SELECT
i.user_from_id
FROM
".Config::Get('db.table.invite')." as i
WHERE
i.user_to_id = ?d
LIMIT 0,1;
";
if ($aRow=$this->oDb->selectRow($sql,$sUserIdTo)) {
return $aRow['user_from_id'];
}
return null;
}
Получает юзера который пригласил
public ModuleUser_EntityNote|null GetUserNote(int $iTargetUserId, int $iUserId)
| ||
$iTargetUserId | int | ID пользователя о ком заметка |
$iUserId | int | ID пользователя автора заметки |
{return} | ModuleUser_EntityNote|null |
public function GetUserNote($iTargetUserId,$iUserId) {
$sql = "SELECT * FROM ".Config::Get('db.table.user_note')." WHERE target_user_id = ?d and user_id = ?d ";
if ($aRow=$this->oDb->selectRow($sql,$iTargetUserId,$iUserId)) {
return Engine::GetEntity('ModuleUser_EntityNote',$aRow);
}
return null;
}
Возвращет заметку по автору и пользователю
public ModuleUser_EntityNote|null GetUserNoteById(int $iId)
| ||
$iId | int | ID заметки |
{return} | ModuleUser_EntityNote|null |
public function GetUserNoteById($iId) {
$sql = "SELECT * FROM ".Config::Get('db.table.user_note')." WHERE id = ?d ";
if ($aRow=$this->oDb->selectRow($sql,$iId)) {
return Engine::GetEntity('ModuleUser_EntityNote',$aRow);
}
return null;
}
Возвращает заметку по ID
public array GetUserNotesByArrayUserId(array $aArrayId, int $sUserId)
| ||
$aArrayId | array | Список ID целевых пользователей |
$sUserId | int | ID пользователя, кто оставлял заметки |
{return} | array |
public function GetUserNotesByArrayUserId($aArrayId,$sUserId) {
if (!is_array($aArrayId) or count($aArrayId)==0) {
return array();
}
$sql = "SELECT
*
FROM
".Config::Get('db.table.user_note')."
WHERE target_user_id IN (?a) and user_id = ?d
";
$aRows=$this->oDb->select($sql,$aArrayId,$sUserId);
$aRes=array();
if ($aRows) {
foreach ($aRows as $aRow) {
$aRes[]=Engine::GetEntity('ModuleUser_EntityNote',$aRow);
}
}
return $aRes;
}
Возвращает список заметок пользователя по ID целевых юзеров
public array GetUserNotesByUserId(int $iUserId, int &$iCount, int $iCurrPage, int $iPerPage)
| ||
$iUserId | int | ID пользователя |
$iCount | int | Возвращает общее количество элементов |
$iCurrPage | int | Номер страницы |
$iPerPage | int | Количество элементов на страницу |
{return} | array |
public function GetUserNotesByUserId($iUserId,&$iCount,$iCurrPage,$iPerPage) {
$sql = "
SELECT *
FROM
".Config::Get('db.table.user_note')."
WHERE
user_id = ?d
ORDER BY id DESC
LIMIT ?d, ?d ";
$aReturn=array();
if ($aRows=$this->oDb->selectPage($iCount,$sql,$iUserId,($iCurrPage-1)*$iPerPage, $iPerPage)) {
foreach ($aRows as $aRow) {
$aReturn[]=Engine::GetEntity('ModuleUser_EntityNote',$aRow);
}
}
return $aReturn;
}
Возвращает список заметок пользователя
public array GetUserSelfFriendOffer(string $sUserId, int $iStatus=16)
| ||
$sUserId | string | |
$iStatus | int | Статус запроса со стороны самого пользователя |
{return} | array |
public function GetUserSelfFriendOffer($sUserId,$iStatus=ModuleUser::USER_FRIEND_NULL) {
$sql = "SELECT
uf.user_from
FROM
".Config::Get('db.table.friend')." as uf
WHERE
uf.user_to = ?d
AND
uf.status_from = ?d
AND
uf.status_to = ?d
;";
$aUsers=array();
if ($aRows=$this->oDb->select(
$sql,
$sUserId,
ModuleUser::USER_FRIEND_OFFER,
$iStatus
)
) {
foreach ($aRows as $aUser) {
$aUsers[]=$aUser['user_from'];
}
}
return $aUsers;
}
Получить список заявок на добавление в друзья от указанного пользователя
public array GetUsersByArrayId(array $aArrayId)
| ||
$aArrayId | array | Список ID пользователей |
{return} | array |
public function GetUsersByArrayId($aArrayId) {
if (!is_array($aArrayId) or count($aArrayId)==0) {
return array();
}
$sql = "SELECT
u.* ,
IF(ua.user_id IS NULL,0,1) as user_is_administrator
FROM
".Config::Get('db.table.user')." as u
LEFT JOIN ".Config::Get('db.table.user_administrator')." AS ua ON u.user_id=ua.user_id
WHERE
u.user_id IN(?a)
ORDER BY FIELD(u.user_id,?a) ";
$aUsers=array();
if ($aRows=$this->oDb->select($sql,$aArrayId,$aArrayId)) {
foreach ($aRows as $aUser) {
$aUsers[]=Engine::GetEntity('User',$aUser);
}
}
return $aUsers;
}
Список юзеров по ID
public array GetUsersByDateLast(int $iLimit)
| ||
$iLimit | int | Количество |
{return} | array |
public function GetUsersByDateLast($iLimit) {
$sql = "SELECT
user_id
FROM
".Config::Get('db.table.session')."
ORDER BY
session_date_last DESC
LIMIT 0, ?d
";
$aReturn=array();
if ($aRows=$this->oDb->select($sql,$iLimit)) {
foreach ($aRows as $aRow) {
$aReturn[]=$aRow['user_id'];
}
}
return $aReturn;
}
Получить список юзеров по дате последнего визита
public array GetUsersByDateRegister(int $iLimit)
| ||
$iLimit | int | Количество |
{return} | array |
public function GetUsersByDateRegister($iLimit) {
$sql = "SELECT
user_id
FROM
".Config::Get('db.table.user')."
WHERE
user_activate = 1
ORDER BY
user_id DESC
LIMIT 0, ?d
";
$aReturn=array();
if ($aRows=$this->oDb->select($sql,$iLimit)) {
foreach ($aRows as $aRow) {
$aReturn[]=$aRow['user_id'];
}
}
return $aReturn;
}
Получить список юзеров по дате регистрации
public array GetUsersByFilter(array $aFilter, array $aOrder, int &$iCount, int $iCurrPage, int $iPerPage)
| ||
$aFilter | array | Фильтр |
$aOrder | array | Сортировка |
$iCount | int | Возвращает общее количество элементов |
$iCurrPage | int | Номер страницы |
$iPerPage | int | Количество элментов на страницу |
{return} | array |
public function GetUsersByFilter($aFilter,$aOrder,&$iCount,$iCurrPage,$iPerPage) {
$aOrderAllow=array('user_id','user_login','user_date_register','user_rating','user_skill','user_profile_name');
$sOrder='';
foreach ($aOrder as $key=>$value) {
if (!in_array($key,$aOrderAllow)) {
unset($aOrder[$key]);
} elseif (in_array($value,array('asc','desc'))) {
$sOrder.=" {$key} {$value},";
}
}
$sOrder=trim($sOrder,',');
if ($sOrder=='') {
$sOrder=' user_id desc ';
}
$sql = "SELECT
user_id
FROM
".Config::Get('db.table.user')."
WHERE
1 = 1
{ AND user_id = ?d }
{ AND user_mail = ? }
{ AND user_password = ? }
{ AND user_ip_register = ? }
{ AND user_activate = ?d }
{ AND user_activate_key = ? }
{ AND user_profile_sex = ? }
{ AND user_login LIKE ? }
{ AND user_profile_name LIKE ? }
ORDER by {$sOrder}
LIMIT ?d, ?d ;
";
$aResult=array();
if ($aRows=$this->oDb->selectPage($iCount,$sql,
isset($aFilter['id']) ? $aFilter['id'] : DBSIMPLE_SKIP,
isset($aFilter['mail']) ? $aFilter['mail'] : DBSIMPLE_SKIP,
isset($aFilter['password']) ? $aFilter['password'] : DBSIMPLE_SKIP,
isset($aFilter['ip_register']) ? $aFilter['ip_register'] : DBSIMPLE_SKIP,
isset($aFilter['activate']) ? $aFilter['activate'] : DBSIMPLE_SKIP,
isset($aFilter['activate_key']) ? $aFilter['activate_key'] : DBSIMPLE_SKIP,
isset($aFilter['profile_sex']) ? $aFilter['profile_sex'] : DBSIMPLE_SKIP,
isset($aFilter['login']) ? $aFilter['login'] : DBSIMPLE_SKIP,
isset($aFilter['profile_name']) ? $aFilter['profile_name'] : DBSIMPLE_SKIP,
($iCurrPage-1)*$iPerPage, $iPerPage
)) {
foreach ($aRows as $aRow) {
$aResult[]=$aRow['user_id'];
}
}
return $aResult;
}
Возвращает список пользователей по фильтру
public array GetUsersByLoginLike(string $sUserLogin, int $iLimit)
| ||
$sUserLogin | string | Логин |
$iLimit | int | Количество |
{return} | array |
public function GetUsersByLoginLike($sUserLogin,$iLimit) {
$sql = "SELECT
user_id
FROM
".Config::Get('db.table.user')."
WHERE
user_activate = 1
and
user_login LIKE ?
LIMIT 0, ?d
";
$aReturn=array();
if ($aRows=$this->oDb->select($sql,$sUserLogin.'%',$iLimit)) {
foreach ($aRows as $aRow) {
$aReturn[]=$aRow['user_id'];
}
}
return $aReturn;
}
Получить список юзеров по первым буквам логина
public array GetUsersFriend(int $sUserId, int &$iCount, int $iCurrPage, int $iPerPage)
| ||
$sUserId | int | ID пользователя |
$iCount | int | Возвращает общее количество элементов |
$iCurrPage | int | Номер страницы |
$iPerPage | int | Количество элементов на страницу |
{return} | array |
public function GetUsersFriend($sUserId,&$iCount,$iCurrPage,$iPerPage) {
$sql = "SELECT
uf.user_from,
uf.user_to
FROM
".Config::Get('db.table.friend')." as uf
WHERE
( uf.user_from = ?d
OR
uf.user_to = ?d )
AND
( uf.status_from + uf.status_to = ?d
OR
(uf.status_from = ?d AND uf.status_to = ?d )
)
LIMIT ?d, ?d ;";
$aUsers=array();
if ($aRows=$this->oDb->selectPage(
$iCount,
$sql,
$sUserId,
$sUserId,
ModuleUser::USER_FRIEND_ACCEPT+ModuleUser::USER_FRIEND_OFFER,
ModuleUser::USER_FRIEND_ACCEPT,
ModuleUser::USER_FRIEND_ACCEPT,
($iCurrPage-1)*$iPerPage, $iPerPage
)
) {
foreach ($aRows as $aUser) {
$aUsers[]=($aUser['user_from']==$sUserId)
? $aUser['user_to']
: $aUser['user_from'];
}
}
rsort($aUsers,SORT_NUMERIC);
return array_unique($aUsers);
}
Получает список друзей
public array GetUsersFriendOffer(string $sUserId, int $iStatus=16)
| ||
$sUserId | string | |
$iStatus | int | Статус запроса со стороны добавляемого |
{return} | array |
public function GetUsersFriendOffer($sUserId,$iStatus=ModuleUser::USER_FRIEND_NULL) {
$sql = "SELECT
uf.user_to
FROM
".Config::Get('db.table.friend')." as uf
WHERE
uf.user_from = ?d
AND
uf.status_from = ?d
AND
uf.status_to = ?d
;";
$aUsers=array();
if ($aRows=$this->oDb->select(
$sql,
$sUserId,
ModuleUser::USER_FRIEND_OFFER,
$iStatus
)
) {
foreach ($aRows as $aUser) {
$aUsers[]=$aUser['user_to'];
}
}
return $aUsers;
}
Получить список заявок на добавление в друзья от указанного пользователя
public array GetUsersInvite(int $sUserId)
| ||
$sUserId | int | ID пользователя |
{return} | array |
public function GetUsersInvite($sUserId) {
$sql = "SELECT
i.user_to_id
FROM
".Config::Get('db.table.invite')." as i
WHERE
i.user_from_id = ?d ";
$aUsers=array();
if ($aRows=$this->oDb->select($sql,$sUserId)) {
foreach ($aRows as $aUser) {
$aUsers[]=$aUser['user_to_id'];
}
}
return $aUsers;
}
Получает список приглашенных юзеров
public bool Update(ModuleUser_EntityUser $oUser)
| ||
$oUser | ModuleUser_EntityUser | Объект пользователя |
{return} | bool |
public function Update(ModuleUser_EntityUser $oUser) {
$sql = "UPDATE ".Config::Get('db.table.user')."
SET
user_password = ? ,
user_mail = ? ,
user_skill = ? ,
user_date_activate = ? ,
user_date_comment_last = ? ,
user_rating = ? ,
user_count_vote = ? ,
user_activate = ? ,
user_activate_key = ? ,
user_profile_name = ? ,
user_profile_sex = ? ,
user_profile_country = ? ,
user_profile_region = ? ,
user_profile_city = ? ,
user_profile_birthday = ? ,
user_profile_about = ? ,
user_profile_date = ? ,
user_profile_avatar = ? ,
user_profile_foto = ? ,
user_settings_notice_new_topic = ? ,
user_settings_notice_new_comment = ? ,
user_settings_notice_new_talk = ? ,
user_settings_notice_reply_comment = ? ,
user_settings_notice_new_friend = ? ,
user_settings_timezone = ?
WHERE user_id = ?
";
if ($this->oDb->query($sql,$oUser->getPassword(),
$oUser->getMail(),
$oUser->getSkill(),
$oUser->getDateActivate(),
$oUser->getDateCommentLast(),
$oUser->getRating(),
$oUser->getCountVote(),
$oUser->getActivate(),
$oUser->getActivateKey(),
$oUser->getProfileName(),
$oUser->getProfileSex(),
$oUser->getProfileCountry(),
$oUser->getProfileRegion(),
$oUser->getProfileCity(),
$oUser->getProfileBirthday(),
$oUser->getProfileAbout(),
$oUser->getProfileDate(),
$oUser->getProfileAvatar(),
$oUser->getProfileFoto(),
$oUser->getSettingsNoticeNewTopic(),
$oUser->getSettingsNoticeNewComment(),
$oUser->getSettingsNoticeNewTalk(),
$oUser->getSettingsNoticeReplyComment(),
$oUser->getSettingsNoticeNewFriend(),
$oUser->getSettingsTimezone(),
$oUser->getId())) {
return true;
}
return false;
}
Обновляет юзера
public bool UpdateFriend(ModuleUser_EntityFriend $oFriend)
| ||
$oFriend | ModuleUser_EntityFriend | Объект дружбы(связи пользователей) |
{return} | bool |
public function UpdateFriend(ModuleUser_EntityFriend $oFriend) {
$sql = "
UPDATE ".Config::Get('db.table.friend')."
SET
status_from = ?d,
status_to = ?d
WHERE
user_from = ?d
AND
user_to = ?d
";
if(
$this->oDb->query(
$sql,
$oFriend->getStatusFrom(),
$oFriend->getStatusTo(),
$oFriend->getUserFrom(),
$oFriend->getUserTo()
)
) {
return true;
}
return false;
}
Обновляет информацию о друге
public bool UpdateInvite(ModuleUser_EntityInvite $oInvite)
| ||
$oInvite | ModuleUser_EntityInvite | бъект инвайта |
{return} | bool |
public function UpdateInvite(ModuleUser_EntityInvite $oInvite) {
$sql = "UPDATE ".Config::Get('db.table.invite')."
SET
user_to_id = ? ,
invite_date_used = ? ,
invite_used =?
WHERE invite_id = ?
";
if ($this->oDb->query($sql,$oInvite->getUserToId(), $oInvite->getDateUsed(), $oInvite->getUsed(), $oInvite->getId())) {
return true;
}
return false;
}
Обновляет инвайт
public bool UpdateReminder(ModuleUser_EntityReminder $oReminder)
| ||
$oReminder | ModuleUser_EntityReminder | Объект восстановления пароля |
{return} | bool |
public function UpdateReminder(ModuleUser_EntityReminder $oReminder) {
return $this->AddReminder($oReminder);
}
Сохраняем воспомнинание(восстановление) пароля
public int|bool UpdateSession(ModuleUser_EntitySession $oSession)
| ||
$oSession | ModuleUser_EntitySession | |
{return} | int|bool |
public function UpdateSession(ModuleUser_EntitySession $oSession) {
$sql = "UPDATE ".Config::Get('db.table.session')."
SET
session_ip_last = ? ,
session_date_last = ?
WHERE user_id = ?
";
return $this->oDb->query($sql,$oSession->getIpLast(), $oSession->getDateLast(), $oSession->getUserId());
}
Обновление данных сессии
public int UpdateUserChangemail(ModuleUser_EntityChangemail $oChangemail)
| ||
$oChangemail | ModuleUser_EntityChangemail | Объект смены емайла |
{return} | int |
public function UpdateUserChangemail($oChangemail) {
$sql = "UPDATE ".Config::Get('db.table.user_changemail')."
SET
date_used = ?,
confirm_from = ?d,
confirm_to = ?d
WHERE id = ?d
";
return $this->oDb->query($sql,$oChangemail->getDateUsed(),$oChangemail->getConfirmFrom(),$oChangemail->getConfirmTo(),$oChangemail->getId());
}
Обновляет запись о смене емайла
public int UpdateUserNote(ModuleUser_EntityNote $oNote)
| ||
$oNote | ModuleUser_EntityNote | Объект заметки |
{return} | int |
public function UpdateUserNote($oNote) {
$sql = "UPDATE ".Config::Get('db.table.user_note')."
SET
text = ?
WHERE id = ?d
";
return $this->oDb->query($sql,$oNote->getText(),
$oNote->getId());
}
Обновляет заметку
public bool addUserField(ModuleUser_EntityField $oField)
| ||
$oField | ModuleUser_EntityField | Объект пользовательского поля |
{return} | bool |
public function addUserField($oField) {
$sql = 'INSERT INTO '.Config::Get('db.table.user_field').' SET
name = ?, title = ?, pattern = ?, type = ?';
return $this->oDb->query($sql, $oField->getName(), $oField->getTitle(), $oField->getPattern(), $oField->getType());
}
Добавить поле
public bool deleteUserField(int $iId)
| ||
$iId | int | ID пользовательского поля |
{return} | bool |
public function deleteUserField($iId) {
$sql = 'DELETE FROM '.Config::Get('db.table.user_field_value').' WHERE field_id = ?d';
$this->oDb->query($sql, $iId);
$sql = 'DELETE FROM '.Config::Get('db.table.user_field').' WHERE
id = ?d';
$this->oDb->query($sql, $iId);
return true;
}
Удалить поле
public string getUserFieldValueByName(int $iUserId, string $sName)
| ||
$iUserId | int | ID пользователя |
$sName | string | Имя поля |
{return} | string |
public function getUserFieldValueByName($iUserId, $sName) {
$sql = 'SELECT value FROM '.Config::Get('db.table.user_field_value').' WHERE
user_id = ?d
AND
field_id = (SELECT id FROM '.Config::Get('db.table.user_field').' WHERE name =?)';
$ret = $this->oDb->selectCol($sql, $iUserId, $sName);
return $ret[0];
}
Получить по имени поля его значение дял определённого пользователя
public array getUserFields(array|null $aType)
| ||
$aType | array|null | Типы полей, null - все типы |
{return} | array |
public function getUserFields($aType) {
if (!is_null($aType) and !is_array($aType)) {
$aType=array($aType);
}
$sql = 'SELECT * FROM '.Config::Get('db.table.user_field').' WHERE 1=1 { and type IN (?a) }';
$aFields = $this->oDb->select($sql,(is_null($aType) or !count($aType)) ? DBSIMPLE_SKIP : $aType);
if (!count($aFields)) {
return array();
}
$aResult = array();
foreach($aFields as $aField) {
$aResult[$aField['id']] = Engine::GetEntity('User_Field', $aField);
}
return $aResult;
}
Получить дополнительные поля профиля пользователя
public array getUserFieldsValues(int $iUserId, bool $bOnlyNoEmpty, array $aType)
| ||
$iUserId | int | ID пользователя |
$bOnlyNoEmpty | bool | Загружать только непустые поля |
$aType | array | Типы полей, null - все типы |
{return} | array |
public function getUserFieldsValues($iUserId, $bOnlyNoEmpty, $aType) {
if (!is_null($aType) and !is_array($aType)) {
$aType=array($aType);
}
/**
* Если запрашиваем без типа, то необходимо вернуть ВСЕ возможные поля с этим типом в не звависимости указал ли их пользователь у себя в профили или нет
* Выглядит костыльно
*/
if (is_array($aType) and count($aType)==1 and $aType[0]=='') {
$sql='SELECT f.*, v.value FROM '.Config::Get('db.table.user_field').' as f LEFT JOIN '.Config::Get('db.table.user_field_value').' as v ON f.id = v.field_id WHERE v.user_id = ?d and f.type IN (?a)';
} else {
$sql = 'SELECT v.value, f.* FROM '.Config::Get('db.table.user_field_value').' as v, '.Config::Get('db.table.user_field').' as f
WHERE v.user_id = ?d AND v.field_id = f.id { and f.type IN (?a) }';
}
$aResult=array();
if ($aRows=$this->oDb->select($sql, $iUserId,(is_null($aType) or !count($aType)) ? DBSIMPLE_SKIP : $aType)) {
foreach($aRows as $aRow) {
if ($bOnlyNoEmpty and !$aRow['value']) {
continue;
}
$aResult[]=Engine::GetEntity('User_Field', $aRow);
}
}
return $aResult;
}
Получить значения дополнительных полей профиля пользователя
public bool setUserFieldsValues(int $iUserId, array $aFields, int $iCountMax)
| ||
$iUserId | int | ID пользователя |
$aFields | array | Ассоциативный массив полей id => value |
$iCountMax | int | Максимальное количество одинаковых полей |
{return} | bool |
public function setUserFieldsValues($iUserId, $aFields, $iCountMax) {
if (!count($aFields)) return;
foreach ($aFields as $iId =>$sValue) {
$sql = 'SELECT count(*) as c FROM '.Config::Get('db.table.user_field_value').' WHERE user_id = ?d AND field_id = ?';
$aRow=$this->oDb->selectRow($sql, $iUserId, $iId);
$iCount=isset($aRow['c']) ? $aRow['c'] : 0;
if ($iCount<$iCountMax) {
$sql = 'INSERT INTO '.Config::Get('db.table.user_field_value').' SET value = ?, user_id = ?d, field_id = ?';
} elseif ($iCount==$iCountMax and $iCount==1) {
$sql = 'UPDATE '.Config::Get('db.table.user_field_value').' SET value = ? WHERE user_id = ?d AND field_id = ?';
} else {
continue;
}
$this->oDb->query($sql, $sValue, $iUserId, $iId);
}
}
Установить значения дополнительных полей профиля пользователя
public bool updateUserField(ModuleUser_EntityField $oField)
| ||
$oField | ModuleUser_EntityField | Объект пользовательского поля |
{return} | bool |
public function updateUserField($oField) {
$sql = 'UPDATE '.Config::Get('db.table.user_field').' SET
name = ?, title = ?, pattern = ?, type = ?
WHERE id = ?d';
$this->oDb->query($sql, $oField->getName(), $oField->getTitle(), $oField->getPattern(), $oField->getType(), $oField->getId());
return true;
}
Изменить поле
public bool userFieldExistsById(int $iId)
| ||
$iId | int | ID поля |
{return} | bool |
public function userFieldExistsById($iId) {
$sql = 'SELECT id FROM '.Config::Get('db.table.user_field').' WHERE id = ?d';
return $this->oDb->select($sql, $iId);
}
Проверяет существует ли поле с таким ID
public bool userFieldExistsByName(string $sName, int|null $iId)
| ||
$sName | string | Имя поля |
$iId | int|null | ID поля |
{return} | bool |
public function userFieldExistsByName($sName, $iId) {
$sql = 'SELECT id FROM '.Config::Get('db.table.user_field').' WHERE name = ? {AND id != ?d}';
return $this->oDb->select($sql, $sName, $iId ? $iId : DBSIMPLE_SKIP);
}
Проверяет существует ли поле с таким именем