1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-05-19 09:18:18 +03:00

Документация классов

This commit is contained in:
Mzhelskiy Maxim 2012-06-26 21:11:23 +04:00
parent a1b31a2a84
commit cb1c2f1dc7
8 changed files with 1113 additions and 386 deletions

View file

@ -18,6 +18,8 @@
/**
* Модуль для работы с пользователями
*
* @package modules.user
* @since 1.0
*/
class ModuleUser extends Module {
/**
@ -28,11 +30,24 @@ class ModuleUser extends Module {
const USER_FRIEND_DELETE = 4;
const USER_FRIEND_REJECT = 8;
const USER_FRIEND_NULL = 16;
/**
* Объект маппера
*
* @var ModuleUser_MapperUser
*/
protected $oMapper;
/**
* Объект текущего пользователя
*
* @var ModuleUser_EntityUser|null
*/
protected $oUserCurrent=null;
/**
* Объект сессии текущего пользователя
*
* @var ModuleUser_EntitySession|null
*/
protected $oSession=null;
/**
* Список типов пользовательских полей
*
@ -74,17 +89,19 @@ class ModuleUser extends Module {
$this->UpdateSession();
}
}
/**
* Возвращает список типов полей
*
* @return array
*/
public function GetUserFieldTypes() {
return $this->aUserFieldTypes;
}
/**
* Добавляет новый тип с пользовательские поля
* @param string $sType
*
* @param string $sType Тип
* @return bool
*/
public function AddUserFieldTypes($sType) {
if (!in_array($sType,$this->aUserFieldTypes)) {
@ -96,6 +113,9 @@ class ModuleUser extends Module {
/**
* Получает дополнительные данные(объекты) для юзеров по их ID
*
* @param array $aUserId Список ID пользователей
* @param array|null $aAllowData Список типод дополнительных данных для подгрузки у пользователей
* @return array
*/
public function GetUsersAdditionalData($aUserId,$aAllowData=null) {
if (is_null($aAllowData)) {
@ -162,7 +182,8 @@ class ModuleUser extends Module {
/**
* Список юзеров по ID
*
* @param array $aUserId
* @param array $aUserId Список ID пользователей
* @return array
*/
public function GetUsersByArrayId($aUserId) {
if (!$aUserId) {
@ -223,17 +244,21 @@ class ModuleUser extends Module {
$aUsers=func_array_sort_by_keys($aUsers,$aUserId);
return $aUsers;
}
/**
* Алиас для корректной работы ORM
*
* @param unknown_type $aUserId
* @return unknown
* @param array $aUserId Список ID пользователей
* @return array
*/
public function GetUserItemsByArrayId($aUserId) {
return $this->GetUsersByArrayId($aUserId);
}
/**
* Получение пользователей по списку ID используя общий кеш
*
* @param array $aUserId Список ID пользователей
* @return array
*/
public function GetUsersByArrayIdSolid($aUserId) {
if (!is_array($aUserId)) {
$aUserId=array($aUserId);
@ -254,7 +279,8 @@ class ModuleUser extends Module {
/**
* Список сессий юзеров по ID
*
* @param array $aUserId
* @param array $aUserId Список ID пользователей
* @return array
*/
public function GetSessionsByArrayId($aUserId) {
if (!$aUserId) {
@ -318,8 +344,8 @@ class ModuleUser extends Module {
/**
* Получить список сессий по списку айдишников, но используя единый кеш
*
* @param unknown_type $aUserId
* @return unknown
* @param array $aUserId Список ID пользователей
* @return array
*/
public function GetSessionsByArrayIdSolid($aUserId) {
if (!is_array($aUserId)) {
@ -341,8 +367,8 @@ class ModuleUser extends Module {
/**
* Получает сессию юзера
*
* @param unknown_type $sUserId
* @return unknown
* @param int $sUserId ID пользователя
* @return ModuleUser_EntitySession|null
*/
public function GetSessionByUserId($sUserId) {
$aSessions=$this->GetSessionsByArrayId($sUserId);
@ -365,8 +391,8 @@ class ModuleUser extends Module {
/**
* Добавляет юзера
*
* @param ModuleUser_EntityUser $oUser
* @return unknown
* @param ModuleUser_EntityUser $oUser Объект пользователя
* @return ModuleUser_EntityUser|bool
*/
public function Add(ModuleUser_EntityUser $oUser) {
if ($sId=$this->oMapper->Add($oUser)) {
@ -384,8 +410,8 @@ class ModuleUser extends Module {
/**
* Получить юзера по ключу активации
*
* @param unknown_type $sKey
* @return unknown
* @param string $sKey Ключ активации
* @return ModuleUser_EntityUser|null
*/
public function GetUserByActivateKey($sKey) {
$id=$this->oMapper->GetUserByActivateKey($sKey);
@ -394,8 +420,8 @@ class ModuleUser extends Module {
/**
* Получить юзера по ключу сессии
*
* @param unknown_type $sKey
* @return unknown
* @param string $sKey Сессионный ключ
* @return ModuleUser_EntityUser|null
*/
public function GetUserBySessionKey($sKey) {
$id=$this->oMapper->GetUserBySessionKey($sKey);
@ -404,8 +430,8 @@ class ModuleUser extends Module {
/**
* Получить юзера по мылу
*
* @param unknown_type $sMail
* @return unknown
* @param string $sMail Емайл
* @return ModuleUser_EntityUser|null
*/
public function GetUserByMail($sMail) {
$id=$this->oMapper->GetUserByMail($sMail);
@ -414,8 +440,8 @@ class ModuleUser extends Module {
/**
* Получить юзера по логину
*
* @param unknown_type $sLogin
* @return unknown
* @param string $sLogin Логин пользователя
* @return ModuleUser_EntityUser|null
*/
public function GetUserByLogin($sLogin) {
$s=strtolower($sLogin);
@ -429,8 +455,8 @@ class ModuleUser extends Module {
/**
* Получить юзера по айдишнику
*
* @param unknown_type $sId
* @return unknown
* @param int $sId ID пользователя
* @return ModuleUser_EntityUser|null
*/
public function GetUserById($sId) {
$aUsers=$this->GetUsersAdditionalData($sId);
@ -442,8 +468,8 @@ class ModuleUser extends Module {
/**
* Обновляет юзера
*
* @param ModuleUser_EntityUser $oUser
* @return unknown
* @param ModuleUser_EntityUser $oUser Объект пользователя
* @return bool
*/
public function Update(ModuleUser_EntityUser $oUser) {
//чистим зависимые кеши
@ -454,8 +480,10 @@ class ModuleUser extends Module {
/**
* Авторизовывает юзера
*
* @param ModuleUser_EntityUser $oUser
* @return unknown
* @param ModuleUser_EntityUser $oUser Объект пользователя
* @param bool $bRemember Запоминать пользователя или нет
* @param string $sKey Ключ авторизации для куков
* @return bool
*/
public function Authorization(ModuleUser_EntityUser $oUser,$bRemember=true,$sKey=null) {
if (!$oUser->getId() or !$oUser->getActivate()) {
@ -484,6 +512,7 @@ class ModuleUser extends Module {
if ($bRemember) {
setcookie('key',$sKey,time()+Config::Get('sys.cookie.time'),Config::Get('sys.cookie.path'),Config::Get('sys.cookie.host'));
}
return true;
}
/**
* Автоматическое заллогинивание по ключу из куков
@ -504,7 +533,7 @@ class ModuleUser extends Module {
/**
* Авторизован ли юзер
*
* @return unknown
* @return bool
*/
public function IsAuthorization() {
if ($this->oUserCurrent) {
@ -516,7 +545,7 @@ class ModuleUser extends Module {
/**
* Получить текущего юзера
*
* @return unknown
* @return ModuleUser_EntityUser|null
*/
public function GetUserCurrent() {
return $this->oUserCurrent;
@ -559,7 +588,13 @@ class ModuleUser extends Module {
}
$this->Cache_Set($data, "user_session_{$this->oSession->getUserId()}", array(), 60*60*24*4);
}
/**
* Создание пользовательской сессии
*
* @param ModuleUser_EntityUser $oUser Объект пользователя
* @param string $sKey Сессионный ключ
* @return bool
*/
protected function CreateSession(ModuleUser_EntityUser $oUser,$sKey) {
$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array('user_session_update'));
$this->Cache_Delete("user_session_{$oUser->getId()}");
@ -579,8 +614,8 @@ class ModuleUser extends Module {
/**
* Получить список юзеров по дате последнего визита
*
* @param unknown_type $iLimit
* @return unknown
* @param int $iLimit Количество
* @return array
*/
public function GetUsersByDateLast($iLimit=20) {
if ($this->IsAuthorization()) {
@ -595,11 +630,11 @@ class ModuleUser extends Module {
/**
* Возвращает список пользователей по фильтру
*
* @param $aFilter
* @param $aOrder
* @param $iCurrPage
* @param $iPerPage
* @param array $aAllowData
* @param array $aFilter Фильтр
* @param array $aOrder Сортировка
* @param int $iCurrPage Номер страницы
* @param int $iPerPage Количество элментов на страницу
* @param array $aAllowData Список типо данных для подгрузки к пользователям
* @return array('collection'=>array,'count'=>int)
*/
public function GetUsersByFilter($aFilter,$aOrder,$iCurrPage,$iPerPage,$aAllowData=null) {
@ -614,8 +649,8 @@ class ModuleUser extends Module {
/**
* Получить список юзеров по дате регистрации
*
* @param unknown_type $iLimit
* @return unknown
* @param int $iLimit Количество
* @return array
*/
public function GetUsersByDateRegister($iLimit=20) {
$aResult=$this->GetUsersByFilter(array('activate'=>1),array('id'=>'desc'),1,$iLimit);
@ -624,7 +659,7 @@ class ModuleUser extends Module {
/**
* Получить статистику по юзерам
*
* @return unknown
* @return array
*/
public function GetStatUsers() {
if (false === ($aStat = $this->Cache_Get("user_stats"))) {
@ -642,11 +677,11 @@ class ModuleUser extends Module {
return $aStat;
}
/**
* Получить список логинов по первым буквам
* Получить список юзеров по первым буквам логина
*
* @param unknown_type $sUserLogin
* @param unknown_type $iLimit
* @return unknown
* @param string $sUserLogin Логин
* @param int $iLimit Количество
* @return array
*/
public function GetUsersByLoginLike($sUserLogin,$iLimit) {
if (false === ($data = $this->Cache_Get("user_like_{$sUserLogin}_{$iLimit}"))) {
@ -656,13 +691,11 @@ class ModuleUser extends Module {
$data=$this->GetUsersAdditionalData($data);
return $data;
}
/**
* Получить список отношений друзей
*
* @param array $aUserId
* @param array $aUserId Список ID пользователей проверяемых на дружбу
* @param int $sUserId ID пользователя у которого проверяем друзей
* @return array
*/
public function GetFriendsByArray($aUserId,$sUserId) {
@ -730,10 +763,10 @@ class ModuleUser extends Module {
return $aFriends;
}
/**
* Получить список отношений с френдами по списку айдишников, но используя единый кеш
* Получить список отношений друзей используя единый кеш
*
* @param array $aUserId
* @param string $sUserId
* @param array $aUserId Список ID пользователей проверяемых на дружбу
* @param int $sUserId ID пользователя у которого проверяем друзей
* @return array
*/
public function GetFriendsByArraySolid($aUserId,$sUserId) {
@ -757,9 +790,9 @@ class ModuleUser extends Module {
/**
* Получаем привязку друга к юзеру(есть ли у юзера данный друг)
*
* @param string $sFriendId
* @param string $sUserId
* @return ModuleUser_EntityFriend
* @param int $sFriendId ID пользователя друга
* @param int $sUserId ID пользователя
* @return ModuleUser_EntityFriend|null
*/
public function GetFriend($sFriendId,$sUserId) {
$data=$this->GetFriendsByArray($sFriendId,$sUserId);
@ -771,7 +804,7 @@ class ModuleUser extends Module {
/**
* Добавляет друга
*
* @param ModuleUser_EntityFriend $oFriend
* @param ModuleUser_EntityFriend $oFriend Объект дружбы(связи пользователей)
* @return bool
*/
public function AddFriend(ModuleUser_EntityFriend $oFriend) {
@ -785,7 +818,7 @@ class ModuleUser extends Module {
/**
* Удаляет друга
*
* @param ModuleUser_EntityFriend $oFriend
* @param ModuleUser_EntityFriend $oFriend Объект дружбы(связи пользователей)
* @return bool
*/
public function DeleteFriend(ModuleUser_EntityFriend $oFriend) {
@ -801,7 +834,7 @@ class ModuleUser extends Module {
/**
* Удаляет информацию о дружбе из базы данных
*
* @param ModuleUser_EntityFriend $oFriend
* @param ModuleUser_EntityFriend $oFriend Объект дружбы(связи пользователей)
* @return bool
*/
public function EraseFriend(ModuleUser_EntityFriend $oFriend) {
@ -811,11 +844,10 @@ class ModuleUser extends Module {
$this->Cache_Delete("user_friend_{$oFriend->getUserTo()}_{$oFriend->getUserFrom()}");
return $this->oMapper->EraseFriend($oFriend);
}
/**
* Обновляет информацию о друге
*
* @param ModuleUser_EntityFriend $oFriend
* @param ModuleUser_EntityFriend $oFriend Объект дружбы(связи пользователей)
* @return bool
*/
public function UpdateFriend(ModuleUser_EntityFriend $oFriend) {
@ -825,13 +857,12 @@ class ModuleUser extends Module {
$this->Cache_Delete("user_friend_{$oFriend->getUserTo()}_{$oFriend->getUserFrom()}");
return $this->oMapper->UpdateFriend($oFriend);
}
/**
* Получает список друзей
*
* @param int $sUserId
* @param int $iPage
* @param int $iPerPage
* @param int $sUserId ID пользователя
* @param int $iPage Номер страницы
* @param int $iPerPage Количество элементов на страницу
* @return array
*/
public function GetUsersFriend($sUserId,$iPage=1,$iPerPage=10) {
@ -843,12 +874,11 @@ class ModuleUser extends Module {
$data['collection']=$this->GetUsersAdditionalData($data['collection']);
return $data;
}
/**
* Получает количество друзей
*
* @param int $sUserId
* @return array
* @param int $sUserId ID пользователя
* @return int
*/
public function GetCountUsersFriend($sUserId) {
$sKey="count_user_friend_{$sUserId}";
@ -858,13 +888,12 @@ class ModuleUser extends Module {
}
return $data;
}
/**
* Получает инвайт по его коду
*
* @param string $sCode
* @param int $iUsed
* @return string
* @param string $sCode Код инвайта
* @param int $iUsed Флаг испольщования инвайта
* @return ModuleUser_EntityInvite|null
*/
public function GetInviteByCode($sCode,$iUsed=0) {
return $this->oMapper->GetInviteByCode($sCode,$iUsed);
@ -872,8 +901,8 @@ class ModuleUser extends Module {
/**
* Добавляет новый инвайт
*
* @param ModuleUser_EntityInvite $oInvite
* @return unknown
* @param ModuleUser_EntityInvite $oInvite Объект инвайта
* @return ModuleUser_EntityInvite|bool
*/
public function AddInvite(ModuleUser_EntityInvite $oInvite) {
if ($sId=$this->oMapper->AddInvite($oInvite)) {
@ -885,8 +914,8 @@ class ModuleUser extends Module {
/**
* Обновляет инвайт
*
* @param ModuleUser_EntityInvite $oInvite
* @return unknown
* @param ModuleUser_EntityInvite $oInvite бъект инвайта
* @return bool
*/
public function UpdateInvite(ModuleUser_EntityInvite $oInvite) {
//чистим зависимые кеши
@ -896,8 +925,8 @@ class ModuleUser extends Module {
/**
* Генерирует новый инвайт
*
* @param unknown_type $oUser
* @return unknown
* @param ModuleUser_EntityUser $oUser Объект пользователя
* @return ModuleUser_EntityInvite|bool
*/
public function GenerateInvite($oUser) {
$oInvite=Engine::GetEntity('User_Invite');
@ -909,9 +938,9 @@ class ModuleUser extends Module {
/**
* Получает число использованых приглашений юзером за определенную дату
*
* @param unknown_type $sUserIdFrom
* @param unknown_type $sDate
* @return unknown
* @param int $sUserIdFrom ID пользователя
* @param string $sDate Дата
* @return int
*/
public function GetCountInviteUsedByDate($sUserIdFrom,$sDate) {
return $this->oMapper->GetCountInviteUsedByDate($sUserIdFrom,$sDate);
@ -919,8 +948,8 @@ class ModuleUser extends Module {
/**
* Получает полное число использованных приглашений юзера
*
* @param unknown_type $sUserIdFrom
* @return unknown
* @param int $sUserIdFrom ID пользователя
* @return int
*/
public function GetCountInviteUsed($sUserIdFrom) {
return $this->oMapper->GetCountInviteUsed($sUserIdFrom);
@ -928,8 +957,8 @@ class ModuleUser extends Module {
/**
* Получаем число доступных приглашений для юзера
*
* @param unknown_type $oUserFrom
* @return unknown
* @param ModuleUser_EntityUser $oUserFrom Объект пользователя
* @return int
*/
public function GetCountInviteAvailable(ModuleUser_EntityUser $oUserFrom) {
$sDay=7;
@ -943,8 +972,8 @@ class ModuleUser extends Module {
/**
* Получает список приглашенных юзеров
*
* @param unknown_type $sUserId
* @return unknown
* @param int $sUserId ID пользователя
* @return array
*/
public function GetUsersInvite($sUserId) {
if (false === ($data = $this->Cache_Get("users_invite_{$sUserId}"))) {
@ -957,8 +986,8 @@ class ModuleUser extends Module {
/**
* Получает юзера который пригласил
*
* @param unknown_type $sUserIdTo
* @return unknown
* @param int $sUserIdTo ID пользователя
* @return ModuleUser_EntityUser|null
*/
public function GetUserInviteFrom($sUserIdTo) {
if (false === ($id = $this->Cache_Get("user_invite_from_{$sUserIdTo}"))) {
@ -970,8 +999,8 @@ class ModuleUser extends Module {
/**
* Добавляем воспоминание(восстановление) пароля
*
* @param unknown_type $oReminder
* @return unknown
* @param ModuleUser_EntityReminder $oReminder Объект восстановления пароля
* @return bool
*/
public function AddReminder(ModuleUser_EntityReminder $oReminder) {
return $this->oMapper->AddReminder($oReminder);
@ -979,8 +1008,8 @@ class ModuleUser extends Module {
/**
* Сохраняем воспомнинание(восстановление) пароля
*
* @param unknown_type $oReminder
* @return unknown
* @param ModuleUser_EntityReminder $oReminder Объект восстановления пароля
* @return bool
*/
public function UpdateReminder(ModuleUser_EntityReminder $oReminder) {
return $this->oMapper->UpdateReminder($oReminder);
@ -988,21 +1017,19 @@ class ModuleUser extends Module {
/**
* Получаем запись восстановления пароля по коду
*
* @param unknown_type $sCode
* @return unknown
* @param string $sCode Код восстановления пароля
* @return ModuleUser_EntityReminder|null
*/
public function GetReminderByCode($sCode) {
return $this->oMapper->GetReminderByCode($sCode);
}
/**
* Upload user avatar on server
* Make resized images
* Загрузка аватара пользователя
*
* @param string $sFileTmp
* @param ModuleUser_EntityUser $oUser
* @param string $sFileTmp Серверный путь до временного аватара
* @param ModuleUser_EntityUser $oUser Объект пользователя
* @param array $aSize Размер области из которой нужно вырезать картинку - array('x1'=>0,'y1'=>0,'x2'=>100,'y2'=>100)
* @return (string|bool)
* @return string|bool
*/
public function UploadAvatar($sFileTmp,$oUser,$aSize=array()) {
if (!file_exists($sFileTmp)) {
@ -1096,9 +1123,9 @@ class ModuleUser extends Module {
return false;
}
/**
* Delete avatar from server
* Удаляет аватар пользователя
*
* @param ModuleUser_EntityUser $oUser
* @param ModuleUser_EntityUser $oUser Объект пользователя
*/
public function DeleteAvatar($oUser) {
/**
@ -1111,14 +1138,13 @@ class ModuleUser extends Module {
}
}
}
/**
* Upload user foto
* загрузка фотографии пользователя
*
* @param string $sFileTmp
* @param ModuleUser_EntityUser $oUser
* @param string $sFileTmp Серверный путь до временной фотографии
* @param ModuleUser_EntityUser $oUser Объект пользователя
* @param array $aSize Размер области из которой нужно вырезать картинку - array('x1'=>0,'y1'=>0,'x2'=>100,'y2'=>100)
* @return string
* @return string|bool
*/
public function UploadFoto($sFileTmp,$oUser,$aSize=array()) {
if (!file_exists($sFileTmp)) {
@ -1193,7 +1219,7 @@ class ModuleUser extends Module {
return false;
}
/**
* Delete user foto from server
* Удаляет фото пользователя
*
* @param ModuleUser_EntityUser $oUser
*/
@ -1203,7 +1229,8 @@ class ModuleUser extends Module {
/**
* Проверяет логин на корректность
*
* @param unknown_type $sLogin
* @param string $sLogin Логин пользователя
* @return bool
*/
public function CheckLogin($sLogin) {
if (preg_match("/^[\da-z\_\-]{".Config::Get('module.user.login.min_size').','.Config::Get('module.user.login.max_size')."}$/i",$sLogin)){
@ -1211,106 +1238,110 @@ class ModuleUser extends Module {
}
return false;
}
/**
* Получить дополниетльные поля профиля пользователя
* @param array $aType Типы полей, null - все типы
* @return type
* Получить дополнительные поля профиля пользователя
*
* @param array|null $aType Типы полей, null - все типы
* @return array
*/
public function getUserFields($aType=null) {
return $this->oMapper->getUserFields($aType);
}
/**
* Получить значения дополнительных полей профиля пользователя
* @param int $iUserId
*
* @param int $iUserId ID пользователя
* @param bool $bOnlyNoEmpty Загружать только непустые поля
* @param array $aType Типы полей, null - все типы
* @return type
* @return array
*/
public function getUserFieldsValues($iUserId, $bOnlyNoEmpty = true, $aType=array('')) {
return $this->oMapper->getUserFieldsValues($iUserId, $bOnlyNoEmpty, $aType);
}
/**
* Получить по имени поля его значение дял определённого пользователя
* @param type $iUserId
* @param type $bOnlyNoEmpty Загружать только непустые поля
* @return type
*
* @param int $iUserId ID пользователя
* @param string $sName Имя поля
* @return string
*/
public function getUserFieldValueByName($iUserId, $sName) {
return $this->oMapper->getUserFieldValueByName($iUserId, $sName);
}
/**
* Установить значения дополнительных полей профиля пользователя
* @param type $iUserId
* @param type $aFields Ассоциативный массив полей id => value
* @return type
*
* @param int $iUserId ID пользователя
* @param array $aFields Ассоциативный массив полей id => value
* @param int $iCountMax Максимальное количество одинаковых полей
* @return bool
*/
public function setUserFieldsValues($iUserId, $aFields, $iCountMax=1) {
return $this->oMapper->setUserFieldsValues($iUserId, $aFields, $iCountMax);
}
/**
* Добавить поле
* @param type $sName
* @return type
*
* @param ModuleUser_EntityField $oField Объект пользовательского поля
* @return bool
*/
public function addUserField($oField) {
return $this->oMapper->addUserField($oField);
}
/**
* Изменить поле
* @param type $sName
* @return type
*
* @param ModuleUser_EntityField $oField Объект пользовательского поля
* @return bool
*/
public function updateUserField($oField) {
return $this->oMapper->updateUserField($oField);
}
/**
* Удалить поле
* @param type $iId
* @return type
*
* @param int $iId ID пользовательского поля
* @return bool
*/
public function deleteUserField($iId) {
return $this->oMapper->deleteUserField($iId);
}
/**
* Проверяет существует ли поле с таким именем
*
* @param unknown_type $sName
* @param unknown_type $iId
* @return unknown
* @param string $sName Имя поля
* @param int|null $iId ID поля
* @return bool
*/
public function userFieldExistsByName($sName, $iId = null) {
return $this->oMapper->userFieldExistsByName($sName, $iId);
}
/**
* Проверяет существует ли поле с таким ID
*
* @param unknown_type $iId
* @return unknown
* @param int $iId ID поля
* @return bool
*/
public function userFieldExistsById($iId) {
return $this->oMapper->userFieldExistsById($iId);
}
/**
* Удаляет у пользователя значения полей
*
* @param int $iUserId ID пользователя
* @param array|null $aType Список типов для удаления
* @return bool
*/
public function DeleteUserFieldValues($iUserId,$aType=null) {
return $this->oMapper->DeleteUserFieldValues($iUserId,$aType);
}
/**
* Возвращает список заметок пользователя
*
* @param $iUserId
* @param $iCurrPage
* @param $iPerPage
* @return array
* @param int $iUserId ID пользователя
* @param int $iCurrPage Номер страницы
* @param int $iPerPage Количество элементов на страницу
* @return array('collection'=>array,'count'=>int)
*/
public function GetUserNotesByUserId($iUserId,$iCurrPage,$iPerPage) {
$aResult=$this->oMapper->GetUserNotesByUserId($iUserId,$iCount,$iCurrPage,$iPerPage);
@ -1331,12 +1362,11 @@ class ModuleUser extends Module {
}
return array('collection'=>$aResult,'count'=>$iCount);
}
/**
* Возвращает количество заметок у пользователя
*
* @param $iUserId
* @return mixed
* @param int $iUserId ID пользователя
* @return int
*/
public function GetCountUserNotesByUserId($iUserId) {
return $this->oMapper->GetCountUserNotesByUserId($iUserId);
@ -1345,38 +1375,35 @@ class ModuleUser extends Module {
/**
* Возвращет заметку по автору и пользователю
*
* @param $iTargetUserId
* @param $iUserId
* @param int $iTargetUserId ID пользователя о ком заметка
* @param int $iUserId ID пользователя автора заметки
* @return ModuleUser_EntityNote
*/
public function GetUserNote($iTargetUserId,$iUserId) {
return $this->oMapper->GetUserNote($iTargetUserId,$iUserId);
}
/**
* Врзвращает заметку по ID
* Возвращает заметку по ID
*
* @param $iId
* @param int $iId ID заметки
* @return ModuleUser_EntityNote
*/
public function GetUserNoteById($iId) {
return $this->oMapper->GetUserNoteById($iId);
}
/**
* Удаляет заметку по ID
*
* @param $iId
* @param int $iId ID заметки
* @return bool
*/
public function DeleteUserNoteById($iId) {
return $this->oMapper->DeleteUserNoteById($iId);
}
/**
* Сохраняет заметку в БД, если ее нет то создает новую
*
* @param $oNote
* @param ModuleUser_EntityNote $oNote Объект заметки
* @return bool|ModuleUser_EntityNote
*/
public function SaveNote($oNote) {
@ -1396,11 +1423,10 @@ class ModuleUser extends Module {
}
return false;
}
/**
* Возвращает список префиксов логинов пользователей (для алфавитного указателя)
*
* @param int $iPrefixLength
* @param int $iPrefixLength Длина префикса
* @return array
*/
public function GetGroupPrefixUser($iPrefixLength=1) {

View file

@ -15,22 +15,60 @@
---------------------------------------------------------
*/
/**
* Сущность пользовательского поля у пользователя
*
* @package modules.user
* @since 1.0
*/
class ModuleUser_EntityField extends Entity {
/**
* Возвращает ID поля
*
* @return int|null
*/
public function getId() {
return $this->_getDataOne('id');
}
/**
* Возвращает имя поля(уникальное)
*
* @return string|null
*/
public function getName(){
return $this->_getDataOne('name');
}
/**
* Возвращает тип поля
*
* @return string|null
*/
public function getType(){
return $this->_getDataOne('type');
}
/**
* Возвращает заголовок/описание поля
*
* @return string|null
*/
public function getTitle(){
return $this->_getDataOne('title');
}
/**
* Возвращает паттерн подстановки поля
*
* @return string|null
*/
public function getPattern(){
return $this->_getDataOne('pattern');
}
/**
* Возвращает значение поля у пользователя
*
* @param bool $bEscapeValue Экранировать значение
* @param bool $bTransformed Применять паттерн или нет
* @return string
*/
public function getValue($bEscapeValue = false, $bTransformed = false){
if (!isset($this->_aData['value']) || !$this->_aData['value']) return '';
if ($bEscapeValue) $this->_aData['value'] = htmlspecialchars($this->_aData['value']);
@ -52,22 +90,51 @@ class ModuleUser_EntityField extends Entity {
}
/**
* Устанавливает ID поля
*
* @param int $iId
*/
public function setId($iId) {
$this->_aData['id']=$iId;
}
/**
* Устанавливает имя поля(уникальное)
*
* @param string $sName
*/
public function setName($sName) {
$this->_aData['name']=$sName;
}
/**
* Устанавливает тип поля
*
* @param string $sName
*/
public function setType($sName) {
$this->_aData['type']=$sName;
}
/**
* Устанавливает заголовок/описание поля
*
* @param string $sTitle
*/
public function setTitle($sTitle) {
$this->_aData['title']=$sTitle;
}
/**
* Устанавливает паттерн подстановки поля
*
* @param string $sPattern
*/
public function setPattern($sPattern) {
$this->_aData['pattern']=$sPattern;
}
/**
* Устанавливает значение поля у пользователя
*
* @param string $sValue
*/
public function setValue($sValue) {
$this->_aData['value']=$sValue;
}

View file

@ -15,87 +15,154 @@
---------------------------------------------------------
*/
class ModuleUser_EntityFriend extends Entity
{
/**
* При переданном параметре $sUserId возвращает тот идентификатор,
* который не равен переданному
*
* @param ( string|null )
* @return string
*/
public function getFriendId($sUserId=null) {
if(!$sUserId) {
$sUserId=$this->getUserId();
}
if($this->_getDataOne('user_from')==$sUserId) {
return $this->_aData['user_to'];
}
if($this->_getDataOne('user_to')==$sUserId) {
return $this->_aData['user_from'];
}
return false;
}
/**
* Получает идентификатор пользователя,
* относительно которого был сделан запрос
*
* @return int
*/
public function getUserId() {
/**
* Сущность дружбу - связи пользователей друг с другом
*
* @package modules.user
* @since 1.0
*/
class ModuleUser_EntityFriend extends Entity {
/**
* При переданном параметре $sUserId возвращает тот идентификатор,
* который не равен переданному
*
* @param string|null $sUserId ID пользователя
* @return string
*/
public function getFriendId($sUserId=null) {
if(!$sUserId) {
$sUserId=$this->getUserId();
}
if($this->_getDataOne('user_from')==$sUserId) {
return $this->_aData['user_to'];
}
if($this->_getDataOne('user_to')==$sUserId) {
return $this->_aData['user_from'];
}
return false;
}
/**
* Получает идентификатор пользователя,
* относительно которого был сделан запрос
*
* @return int
*/
public function getUserId() {
return $this->_getDataOne('user');
}
public function getUserFrom() {
return $this->_getDataOne('user_from');
}
public function getUserTo() {
return $this->_getDataOne('user_to');
}
public function getStatusFrom() {
return $this->_getDataOne('status_from');
}
public function getStatusTo() {
}
/**
* Возвращает ID пользователя, который приглашает в друзья
*
* @return int|null
*/
public function getUserFrom() {
return $this->_getDataOne('user_from');
}
/**
* Возвращает ID пользователя, которого пришлашаем в друзья
*
* @return int|null
*/
public function getUserTo() {
return $this->_getDataOne('user_to');
}
/**
* Возвращает статус заявки на добавления в друзья у отправителя
*
* @return int|null
*/
public function getStatusFrom() {
return $this->_getDataOne('status_from');
}
/**
* Возвращает статус заявки на добавления в друзья у получателя
*
* @return int|null
*/
public function getStatusTo() {
return $this->_getDataOne('status_to') ? $this->_getDataOne('status_to') : ModuleUser::USER_FRIEND_NULL;
}
public function getFriendStatus() {
return $this->getStatusFrom()+$this->getStatusTo();
}
public function getStatusByUserId($sUserId) {
if($sUserId==$this->getUserFrom()) {
return $this->getStatusFrom();
}
if($sUserId==$this->getUserTo()) {
return $this->getStatusTo();
}
return false;
}
public function setUserFrom($data) {
$this->_aData['user_from']=$data;
}
public function setUserTo($data) {
$this->_aData['user_to']=$data;
}
public function setStatusFrom($data) {
$this->_aData['status_from']=$data;
}
public function setStatusTo($data) {
$this->_aData['status_to']=$data;
}
public function setUserId($data) {
$this->_aData['user']=$data;
}
public function setStatusByUserId($data,$sUserId) {
if($sUserId==$this->getUserFrom()) {
$this->setStatusFrom($data);
return true;
}
if($sUserId==$this->getUserTo()) {
$this->setStatusTo($data);
return true;
}
return false;
}
}
/**
* Возвращает статус дружбы
*
* @return int|null
*/
public function getFriendStatus() {
return $this->getStatusFrom()+$this->getStatusTo();
}
/**
* Возвращает статус дружбы для конкретного пользователя
*
* @param int $sUserId ID пользователя
* @return bool|int
*/
public function getStatusByUserId($sUserId) {
if($sUserId==$this->getUserFrom()) {
return $this->getStatusFrom();
}
if($sUserId==$this->getUserTo()) {
return $this->getStatusTo();
}
return false;
}
/**
* Устанавливает ID пользователя, который приглашает в друзья
*
* @param int $data
*/
public function setUserFrom($data) {
$this->_aData['user_from']=$data;
}
/**
* Устанавливает ID пользователя, которого пришлашаем в друзья
*
* @param int $data
*/
public function setUserTo($data) {
$this->_aData['user_to']=$data;
}
/**
* Устанавливает статус заявки на добавления в друзья у отправителя
*
* @param int $data
*/
public function setStatusFrom($data) {
$this->_aData['status_from']=$data;
}
/**
* Возвращает статус заявки на добавления в друзья у получателя
*
* @param int $data
*/
public function setStatusTo($data) {
$this->_aData['status_to']=$data;
}
/**
* Устанавливает ID пользователя
*
* @param int $data
*/
public function setUserId($data) {
$this->_aData['user']=$data;
}
/**
* Возвращает статус дружбы для конкретного пользователя
*
* @param int $data Статус
* @param int $sUserId ID пользователя
* @return bool
*/
public function setStatusByUserId($data,$sUserId) {
if($sUserId==$this->getUserFrom()) {
$this->setStatusFrom($data);
return true;
}
if($sUserId==$this->getUserTo()) {
$this->setStatusTo($data);
return true;
}
return false;
}
}
?>

View file

@ -15,53 +15,126 @@
---------------------------------------------------------
*/
class ModuleUser_EntityInvite extends Entity
{
public function getId() {
return $this->_getDataOne('invite_id');
}
public function getCode() {
return $this->_getDataOne('invite_code');
}
public function getUserFromId() {
return $this->_getDataOne('user_from_id');
}
public function getUserToId() {
return $this->_getDataOne('user_to_id');
}
public function getDateAdd() {
return $this->_getDataOne('invite_date_add');
}
public function getDateUsed() {
return $this->_getDataOne('invite_date_used');
}
public function getUsed() {
return $this->_getDataOne('invite_used');
}
/**
* Сущность инвайта(приглашения)
*
* @package modules.user
* @since 1.0
*/
class ModuleUser_EntityInvite extends Entity {
/**
* Возвращает ID инвайта
*
* @return int|null
*/
public function getId() {
return $this->_getDataOne('invite_id');
}
/**
* Возвращает код инвайта
*
* @return string|null
*/
public function getCode() {
return $this->_getDataOne('invite_code');
}
/**
* Возвращает ID пользователя, который отправляет инвайт
*
* @return int|null
*/
public function getUserFromId() {
return $this->_getDataOne('user_from_id');
}
/**
* Возвращает ID пользователя, которому отправляем инвайт
*
* @return int|null
*/
public function getUserToId() {
return $this->_getDataOne('user_to_id');
}
/**
* Возвращает дату выдачи инвайта
*
* @return string|null
*/
public function getDateAdd() {
return $this->_getDataOne('invite_date_add');
}
/**
* Возвращает дату использования инвайта
*
* @return string|null
*/
public function getDateUsed() {
return $this->_getDataOne('invite_date_used');
}
/**
* Возвращает статус использованости инвайта
*
* @return int|null
*/
public function getUsed() {
return $this->_getDataOne('invite_used');
}
/**
* Устанавливает ID инвайта
*
* @param int $data
*/
public function setId($data) {
$this->_aData['invite_id']=$data;
}
public function setCode($data) {
$this->_aData['invite_code']=$data;
}
public function setUserFromId($data) {
$this->_aData['user_from_id']=$data;
}
public function setUserToId($data) {
$this->_aData['user_to_id']=$data;
}
public function setDateAdd($data) {
$this->_aData['invite_date_add']=$data;
}
public function setDateUsed($data) {
$this->_aData['invite_date_used']=$data;
}
public function setUsed($data) {
$this->_aData['invite_used']=$data;
}
$this->_aData['invite_id']=$data;
}
/**
* Устанавливает код инвайта
*
* @param string $data
*/
public function setCode($data) {
$this->_aData['invite_code']=$data;
}
/**
* Устанавливает ID пользователя, который отправляет инвайт
*
* @param int $data
*/
public function setUserFromId($data) {
$this->_aData['user_from_id']=$data;
}
/**
* Устанавливает ID пользователя, которому отправляем инвайт
*
* @param int $data
*/
public function setUserToId($data) {
$this->_aData['user_to_id']=$data;
}
/**
* Устанавливает дату выдачи инвайта
*
* @param string $data
*/
public function setDateAdd($data) {
$this->_aData['invite_date_add']=$data;
}
/**
* Устанавливает дату использования инвайта
*
* @param string $data
*/
public function setDateUsed($data) {
$this->_aData['invite_date_used']=$data;
}
/**
* Устанавливает статус использованости инвайта
*
* @param int $data
*/
public function setUsed($data) {
$this->_aData['invite_used']=$data;
}
}
?>

View file

@ -15,25 +15,34 @@
---------------------------------------------------------
*/
/**
* Сущность заметки о пользователе
*
* @package modules.user
* @since 1.0
*/
class ModuleUser_EntityNote extends Entity {
/**
* Определяем правила валидации
*
* @var array
*/
protected $aValidateRules=array(
array('target_user_id','target'),
);
/**
* Инициализация
*/
public function Init() {
parent::Init();
$this->aValidateRules[]=array('text','string','max'=>Config::Get('module.user.usernote_text_max'),'min'=>1,'allowEmpty'=>false);
}
/**
* Валидация пользователя
*
* @param $sValue
* @param $aParams
* @param string $sValue Значение
* @param array $aParams Параметры
* @return bool
*/
public function ValidateTarget($sValue,$aParams) {

View file

@ -15,45 +15,109 @@
---------------------------------------------------------
*/
class ModuleUser_EntityReminder extends Entity
{
public function getCode() {
return $this->_getDataOne('reminder_code');
}
public function getUserId() {
return $this->_getDataOne('user_id');
}
public function getDateAdd() {
return $this->_getDataOne('reminder_date_add');
}
public function getDateUsed() {
return $this->_getDataOne('reminder_date_used');
}
public function getDateExpire() {
return $this->_getDataOne('reminder_date_expire');
}
public function getIsUsed() {
return $this->_getDataOne('reminde_is_used');
}
/**
* Сущность восстановления пароля
*
* @package modules.user
* @since 1.0
*/
class ModuleUser_EntityReminder extends Entity {
/**
* Возвращает код восстановления
*
* @return string|null
*/
public function getCode() {
return $this->_getDataOne('reminder_code');
}
/**
* Возвращает ID пользователя
*
* @return int|null
*/
public function getUserId() {
return $this->_getDataOne('user_id');
}
/**
* Возвращает дату создания
*
* @return string|null
*/
public function getDateAdd() {
return $this->_getDataOne('reminder_date_add');
}
/**
* Возвращает дату использования
*
* @return string|null
*/
public function getDateUsed() {
return $this->_getDataOne('reminder_date_used');
}
/**
* Возвращает дату завершения срока действия кода
*
* @return string|null
*/
public function getDateExpire() {
return $this->_getDataOne('reminder_date_expire');
}
/**
* Возвращает статус использованости кода
*
* @return int|null
*/
public function getIsUsed() {
return $this->_getDataOne('reminde_is_used');
}
/**
* Устанавливает код восстановления
*
* @param string $data
*/
public function setCode($data) {
$this->_aData['reminder_code']=$data;
}
public function setUserId($data) {
$this->_aData['user_id']=$data;
}
public function setDateAdd($data) {
$this->_aData['reminder_date_add']=$data;
}
public function setDateUsed($data) {
$this->_aData['reminder_date_used']=$data;
}
public function setDateExpire($data) {
$this->_aData['reminder_date_expire']=$data;
}
public function setIsUsed($data) {
$this->_aData['reminde_is_used']=$data;
}
$this->_aData['reminder_code']=$data;
}
/**
* Устанавливает ID пользователя
*
* @param int $data
*/
public function setUserId($data) {
$this->_aData['user_id']=$data;
}
/**
* Устанавливает дату создания
*
* @param string $data
*/
public function setDateAdd($data) {
$this->_aData['reminder_date_add']=$data;
}
/**
* Устанавливает дату использования
*
* @param string $data
*/
public function setDateUsed($data) {
$this->_aData['reminder_date_used']=$data;
}
/**
* Устанавливает дату завершения срока действия кода
*
* @param string $data
*/
public function setDateExpire($data) {
$this->_aData['reminder_date_expire']=$data;
}
/**
* Устанавливает статус использованости кода
*
* @param int $data
*/
public function setIsUsed($data) {
$this->_aData['reminde_is_used']=$data;
}
}
?>

View file

@ -15,45 +15,110 @@
---------------------------------------------------------
*/
class ModuleUser_EntitySession extends Entity
{
public function getKey() {
return $this->_getDataOne('session_key');
}
public function getUserId() {
return $this->_getDataOne('user_id');
}
public function getIpCreate() {
return $this->_getDataOne('session_ip_create');
}
public function getIpLast() {
return $this->_getDataOne('session_ip_last');
}
public function getDateCreate() {
return $this->_getDataOne('session_date_create');
}
public function getDateLast() {
return $this->_getDataOne('session_date_last');
}
/**
* Сущность сессии
*
* @package modules.user
* @since 1.0
*/
class ModuleUser_EntitySession extends Entity {
/**
* Возвращает ключ сессии
*
* @return string|null
*/
public function getKey() {
return $this->_getDataOne('session_key');
}
/**
* Возвращает ID пользователя
*
* @return int|null
*/
public function getUserId() {
return $this->_getDataOne('user_id');
}
/**
* Возвращает IP создания сессии
*
* @return string|null
*/
public function getIpCreate() {
return $this->_getDataOne('session_ip_create');
}
/**
* Возвращает последний IP сессии
*
* @return string|null
*/
public function getIpLast() {
return $this->_getDataOne('session_ip_last');
}
/**
* Возвращает дату создания сессии
*
* @return string|null
*/
public function getDateCreate() {
return $this->_getDataOne('session_date_create');
}
/**
* Возвращает последную дату сессии
*
* @return string|null
*/
public function getDateLast() {
return $this->_getDataOne('session_date_last');
}
/**
* Устанавливает ключ сессии
*
* @param string $data
*/
public function setKey($data) {
$this->_aData['session_key']=$data;
}
public function setUserId($data) {
$this->_aData['user_id']=$data;
}
public function setIpCreate($data) {
$this->_aData['session_ip_create']=$data;
}
public function setIpLast($data) {
$this->_aData['session_ip_last']=$data;
}
public function setDateCreate($data) {
$this->_aData['session_date_create']=$data;
}
public function setDateLast($data) {
$this->_aData['session_date_last']=$data;
}
$this->_aData['session_key']=$data;
}
/**
* Устанавливает ID пользователя
*
* @param int $data
*/
public function setUserId($data) {
$this->_aData['user_id']=$data;
}
/**
* Устанавливает IP создания сессии
*
* @param string $data
*/
public function setIpCreate($data) {
$this->_aData['session_ip_create']=$data;
}
/**
* Устанавливает последний IP сессии
*
* @param string $data
*/
public function setIpLast($data) {
$this->_aData['session_ip_last']=$data;
}
/**
* Устанавливает дату создания сессии
*
* @param string $data
*/
public function setDateCreate($data) {
$this->_aData['session_date_create']=$data;
}
/**
* Устанавливает последную дату сессии
*
* @param string $data
*/
public function setDateLast($data) {
$this->_aData['session_date_last']=$data;
}
}
?>

View file

@ -15,10 +15,17 @@
---------------------------------------------------------
*/
/**
* Сущность пользователя
*
* @package modules.user
* @since 1.0
*/
class ModuleUser_EntityUser extends Entity {
/**
* Определяем правила валидации
*
* @var array
*/
protected $aValidateRules=array(
array('login','login','on'=>array('registration','')), // '' - означает дефолтный сценарий
@ -33,8 +40,8 @@ class ModuleUser_EntityUser extends Entity {
/**
* Валидация пользователя
*
* @param $sValue
* @param $aParams
* @param string $sValue Валидируемое значение
* @param array $aParams Параметры
* @return bool
*/
public function ValidateLogin($sValue,$aParams) {
@ -46,8 +53,8 @@ class ModuleUser_EntityUser extends Entity {
/**
* Проверка логина на существование
*
* @param $sValue
* @param $aParams
* @param string $sValue Валидируемое значение
* @param array $aParams Параметры
* @return bool
*/
public function ValidateLoginExists($sValue,$aParams) {
@ -59,8 +66,8 @@ class ModuleUser_EntityUser extends Entity {
/**
* Проверка емайла на существование
*
* @param $sValue
* @param $aParams
* @param string $sValue Валидируемое значение
* @param array $aParams Параметры
* @return bool
*/
public function ValidateMailExists($sValue,$aParams) {
@ -70,106 +77,265 @@ class ModuleUser_EntityUser extends Entity {
return $this->Lang_Get('registration_mail_error_used');
}
/**
* Возвращает ID пользователя
*
* @return int|null
*/
public function getId() {
return $this->_getDataOne('user_id');
}
/**
* Возвращает логин
*
* @return string|null
*/
public function getLogin() {
return $this->_getDataOne('user_login');
}
/**
* Возвращает пароль (ввиде хеша)
*
* @return string|null
*/
public function getPassword() {
return $this->_getDataOne('user_password');
}
/**
* Возвращает емайл
*
* @return string|null
*/
public function getMail() {
return $this->_getDataOne('user_mail');
}
/**
* Возвращает силу
*
* @return string
*/
public function getSkill() {
return number_format(round($this->_getDataOne('user_skill'),2), 2, '.', '');
}
/**
* Возвращает дату регистрации
*
* @return string|null
*/
public function getDateRegister() {
return $this->_getDataOne('user_date_register');
}
/**
* Возвращает дату активации
*
* @return string|null
*/
public function getDateActivate() {
return $this->_getDataOne('user_date_activate');
}
/**
* Возвращает дату последнего комментирования
*
* @return mixed|null
*/
public function getDateCommentLast() {
return $this->_getDataOne('user_date_comment_last');
}
/**
* Возвращает IP регистрации
*
* @return string|null
*/
public function getIpRegister() {
return $this->_getDataOne('user_ip_register');
}
/**
* Возвращает рейтинг
*
* @return string
*/
public function getRating() {
return number_format(round($this->_getDataOne('user_rating'),2), 2, '.', '');
}
/**
* Вовзращает количество проголосовавших
*
* @return int|null
*/
public function getCountVote() {
return $this->_getDataOne('user_count_vote');
}
/**
* Возвращает статус активированности
*
* @return int|null
*/
public function getActivate() {
return $this->_getDataOne('user_activate');
}
/**
* Возвращает ключ активации
*
* @return string|null
*/
public function getActivateKey() {
return $this->_getDataOne('user_activate_key');
}
/**
* Возвращает имя
*
* @return string|null
*/
public function getProfileName() {
return $this->_getDataOne('user_profile_name');
}
/**
* Возвращает пол
*
* @return string|null
*/
public function getProfileSex() {
return $this->_getDataOne('user_profile_sex');
}
/**
* Возвращает название страны
*
* @return string|null
*/
public function getProfileCountry() {
return $this->_getDataOne('user_profile_country');
}
/**
* Возвращает название региона
*
* @return string|null
*/
public function getProfileRegion() {
return $this->_getDataOne('user_profile_region');
}
/**
* Возвращает название города
*
* @return string|null
*/
public function getProfileCity() {
return $this->_getDataOne('user_profile_city');
}
/**
* Возвращает дату рождения
*
* @return string|null
*/
public function getProfileBirthday() {
return $this->_getDataOne('user_profile_birthday');
}
/**
* Возвращает информацию о себе
*
* @return string|null
*/
public function getProfileAbout() {
return $this->_getDataOne('user_profile_about');
}
/**
* Возвращает дату редактирования профиля
*
* @return string|null
*/
public function getProfileDate() {
return $this->_getDataOne('user_profile_date');
}
/**
* Возвращает полный веб путь до аватра
*
* @return string|null
*/
public function getProfileAvatar() {
return $this->_getDataOne('user_profile_avatar');
}
/**
* Возвращает расширение автара
*
* @return string|null
*/
public function getProfileAvatarType() {
return ($sPath=$this->getProfileAvatarPath()) ? pathinfo($sPath,PATHINFO_EXTENSION) : null;
}
/**
* Возвращает полный веб путь до фото
*
* @return string|null
*/
public function getProfileFoto() {
return $this->_getDataOne('user_profile_foto');
}
/**
* Возвращает статус уведомления о новых топиках
*
* @return int|null
*/
public function getSettingsNoticeNewTopic() {
return $this->_getDataOne('user_settings_notice_new_topic');
}
/**
* Возвращает статус уведомления о новых комментариях
*
* @return int|null
*/
public function getSettingsNoticeNewComment() {
return $this->_getDataOne('user_settings_notice_new_comment');
}
/**
* Возвращает статус уведомления о новых письмах
*
* @return int|null
*/
public function getSettingsNoticeNewTalk() {
return $this->_getDataOne('user_settings_notice_new_talk');
}
/**
* Возвращает статус уведомления о новых ответах в комментариях
*
* @return int|null
*/
public function getSettingsNoticeReplyComment() {
return $this->_getDataOne('user_settings_notice_reply_comment');
}
/**
* Возвращает статус уведомления о новых друзьях
*
* @return int|null
*/
public function getSettingsNoticeNewFriend() {
return $this->_getDataOne('user_settings_notice_new_friend');
}
/**
* Возвращает значения пользовательских полей
*
* @param bool $bOnlyNoEmpty Возвращать или нет только не пустые
* @param string $sType Тип полей
* @return array
*/
public function getUserFieldValues($bOnlyNoEmpty = true, $sType='') {
return $this->User_getUserFieldsValues($this->getId(), $bOnlyNoEmpty,$sType);
}
/**
* Возвращает объект сессии
*
* @return ModuleUser_EntitySession|null
*/
public function getSession() {
if (!$this->_getDataOne('session')) {
$this->_aData['session']=$this->User_GetSessionByUserId($this->getId());
}
return $this->_getDataOne('session');
}
/**
* Возвращает статус онлайн пользователь или нет
*
* @return bool
*/
public function isOnline() {
if ($oSession=$this->getSession()) {
if (time()-strtotime($oSession->getDateLast())<60*10) { // 10 минут
@ -178,6 +344,12 @@ class ModuleUser_EntityUser extends Entity {
}
return false;
}
/**
* Возвращает полный веб путь до аватара нужного размера
*
* @param int $iSize Размер
* @return string
*/
public function getProfileAvatarPath($iSize=100) {
if ($sPath=$this->getProfileAvatar()) {
return str_replace('_100x100',(($iSize==0)?"":"_{$iSize}x{$iSize}"),$sPath."?".date('His',strtotime($this->getProfileDate())));
@ -185,31 +357,61 @@ class ModuleUser_EntityUser extends Entity {
return Config::Get('path.static.skin').'/images/avatar_'.$iSize.'x'.$iSize.'.jpg';
}
}
/**
* Возвращает полный веб путь до фото
*
* @return null|string
*/
public function getProfileFotoPath() {
if ($this->getProfileFoto()) {
return $this->getProfileFoto();
}
return $this->getProfileFotoDefault();
}
/**
* Возвращает дефолтную фото
*
* @return string
*/
public function getProfileFotoDefault() {
return Config::Get('path.static.skin').'/images/user_foto_250.png';
}
/**
* Возвращает объект голосования за пользователя текущего пользователя
*
* @return ModuleVote_EntityVote|null
*/
public function getVote() {
return $this->_getDataOne('vote');
}
/**
* Возвращает статус дружбы
*
* @return bool|null
*/
public function getUserIsFriend() {
return $this->_getDataOne('user_is_friend');
}
/**
* Возвращает статус администратора сайта
*
* @return bool|null
*/
public function isAdministrator() {
return $this->_getDataOne('user_is_administrator');
}
/**
* Возвращает веб путь до профиля пользователя
*
* @return string
*/
public function getUserWebPath() {
return Router::GetPath('profile').$this->getLogin().'/';
}
/**
* Возвращает статус дружбы с текущим пользователем
* Возвращает объект дружбы с текущим пользователем
*
* @return int
* @return ModuleUser_EntityFriend|null
*/
public function getUserFriend() {
return $this->_getDataOne('user_friend');
@ -225,98 +427,252 @@ class ModuleUser_EntityUser extends Entity {
}
}
/**
* Устанавливает ID пользователя
*
* @param int $data
*/
public function setId($data) {
$this->_aData['user_id']=$data;
}
/**
* Устанавливает логин
*
* @param string $data
*/
public function setLogin($data) {
$this->_aData['user_login']=$data;
}
/**
* Устанавливает пароль (ввиде хеша)
*
* @param string $data
*/
public function setPassword($data) {
$this->_aData['user_password']=$data;
}
/**
* Устанавливает емайл
*
* @param string $data
*/
public function setMail($data) {
$this->_aData['user_mail']=$data;
}
/**
* Устанавливает силу
*
* @param float $data
*/
public function setSkill($data) {
$this->_aData['user_skill']=$data;
}
/**
* Устанавливает дату регистрации
*
* @param string $data
*/
public function setDateRegister($data) {
$this->_aData['user_date_register']=$data;
}
/**
* Устанавливает дату активации
*
* @param string $data
*/
public function setDateActivate($data) {
$this->_aData['user_date_activate']=$data;
}
/**
* Устанавливает дату последнего комментирования
*
* @param string $data
*/
public function setDateCommentLast($data) {
$this->_aData['user_date_comment_last']=$data;
}
/**
* Устанавливает IP регистрации
*
* @param string $data
*/
public function setIpRegister($data) {
$this->_aData['user_ip_register']=$data;
}
/**
* Устанавливает рейтинг
*
* @param float $data
*/
public function setRating($data) {
$this->_aData['user_rating']=$data;
}
/**
* Устанавливает количество проголосовавших
*
* @param int $data
*/
public function setCountVote($data) {
$this->_aData['user_count_vote']=$data;
}
/**
* Устанавливает статус активированности
*
* @param int $data
*/
public function setActivate($data) {
$this->_aData['user_activate']=$data;
}
/**
* Устанавливает ключ активации
*
* @param string $data
*/
public function setActivateKey($data) {
$this->_aData['user_activate_key']=$data;
}
/**
* Устанавливает имя
*
* @param string $data
*/
public function setProfileName($data) {
$this->_aData['user_profile_name']=$data;
}
/**
* Устанавливает пол
*
* @param string $data
*/
public function setProfileSex($data) {
$this->_aData['user_profile_sex']=$data;
}
/**
* Устанавливает название страны
*
* @param string $data
*/
public function setProfileCountry($data) {
$this->_aData['user_profile_country']=$data;
}
/**
* Устанавливает название региона
*
* @param string $data
*/
public function setProfileRegion($data) {
$this->_aData['user_profile_region']=$data;
}
/**
* Устанавливает название города
*
* @param string $data
*/
public function setProfileCity($data) {
$this->_aData['user_profile_city']=$data;
}
/**
* Устанавливает дату рождения
*
* @param string $data
*/
public function setProfileBirthday($data) {
$this->_aData['user_profile_birthday']=$data;
}
/**
* Устанавливает информацию о себе
*
* @param string $data
*/
public function setProfileAbout($data) {
$this->_aData['user_profile_about']=$data;
}
/**
* Устанавливает дату редактирования профиля
*
* @param string $data
*/
public function setProfileDate($data) {
$this->_aData['user_profile_date']=$data;
}
/**
* Устанавливает полный веб путь до аватра
*
* @param string $data
*/
public function setProfileAvatar($data) {
$this->_aData['user_profile_avatar']=$data;
}
/**
* Устанавливает полный веб путь до фото
*
* @param string $data
*/
public function setProfileFoto($data) {
$this->_aData['user_profile_foto']=$data;
}
/**
* Устанавливает статус уведомления о новых топиках
*
* @param int $data
*/
public function setSettingsNoticeNewTopic($data) {
$this->_aData['user_settings_notice_new_topic']=$data;
}
/**
* Устанавливает статус уведомления о новых комментариях
*
* @param int $data
*/
public function setSettingsNoticeNewComment($data) {
$this->_aData['user_settings_notice_new_comment']=$data;
}
/**
* Устанавливает статус уведомления о новых письмах
*
* @param int $data
*/
public function setSettingsNoticeNewTalk($data) {
$this->_aData['user_settings_notice_new_talk']=$data;
}
/**
* Устанавливает статус уведомления о новых ответах в комментариях
*
* @param int $data
*/
public function setSettingsNoticeReplyComment($data) {
$this->_aData['user_settings_notice_reply_comment']=$data;
}
/**
* Устанавливает статус уведомления о новых друзьях
*
* @param int $data
*/
public function setSettingsNoticeNewFriend($data) {
$this->_aData['user_settings_notice_new_friend']=$data;
}
/**
* Устанавливает объект сессии
*
* @param ModuleUser_EntitySession $data
*/
public function setSession($data) {
$this->_aData['session']=$data;
}
/**
* Устанавливает статус дружбы
*
* @param int $data
*/
public function setUserIsFriend($data) {
$this->_aData['user_is_friend']=$data;
}
/**
* Устанавливает объект голосования за пользователя текущего пользователя
*
* @param ModuleVote_EntityVote $data
*/
public function setVote($data) {
$this->_aData['vote']=$data;
}