mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-05-19 09:18:18 +03:00
Документация классов
This commit is contained in:
parent
d630dd12c7
commit
ecef3721a0
|
@ -165,7 +165,7 @@ class ModuleSubscribe extends Module {
|
|||
/**
|
||||
* Обновление подписки
|
||||
*
|
||||
* @param ModuleSubscribe_EntitySubscribe $oSubscribe
|
||||
* @param ModuleSubscribe_EntitySubscribe $oSubscribe Объект подписки
|
||||
* @return int
|
||||
*/
|
||||
public function UpdateSubscribe($oSubscribe) {
|
||||
|
|
|
@ -52,7 +52,7 @@ class ModuleSubscribe_MapperSubscribe extends Mapper {
|
|||
/**
|
||||
* Обновление подписки
|
||||
*
|
||||
* @param ModuleSubscribe_EntitySubscribe $oSubscribe
|
||||
* @param ModuleSubscribe_EntitySubscribe $oSubscribe Объект подписки
|
||||
* @return int
|
||||
*/
|
||||
public function UpdateSubscribe($oSubscribe) {
|
||||
|
|
|
@ -18,16 +18,35 @@
|
|||
/**
|
||||
* Модуль разговоров(почта)
|
||||
*
|
||||
* @package modules.talk
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleTalk extends Module {
|
||||
/**
|
||||
* Статус TalkUser в базе данных
|
||||
* Пользователь активен в разговоре
|
||||
*/
|
||||
const TALK_USER_ACTIVE = 1;
|
||||
/**
|
||||
* Пользователь удалил разговор
|
||||
*/
|
||||
const TALK_USER_DELETE_BY_SELF = 2;
|
||||
/**
|
||||
* Пользователя удалил из разговора автор письма
|
||||
*/
|
||||
const TALK_USER_DELETE_BY_AUTHOR = 4;
|
||||
|
||||
/**
|
||||
* Объект маппера
|
||||
*
|
||||
* @var ModuleTalk_MapperTalk
|
||||
*/
|
||||
protected $oMapper;
|
||||
/**
|
||||
* Объект текущего пользователя
|
||||
*
|
||||
* @var ModuleUser_EntityUser|null
|
||||
*/
|
||||
protected $oUserCurrent=null;
|
||||
|
||||
/**
|
||||
|
@ -41,11 +60,13 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Формирует и отправляет личное сообщение
|
||||
*
|
||||
* @param string $sTitle
|
||||
* @param string $sText
|
||||
* @param int | ModuleUser_EntityUser $oUserFrom
|
||||
* @param array | int | ModuleUser_EntityUser $aUserTo
|
||||
* @param bool $bSendNotify
|
||||
* @param string $sTitle Заголовок сообщения
|
||||
* @param string $sText Текст сообщения
|
||||
* @param int|ModuleUser_EntityUser $oUserFrom Пользователь от которого отправляем
|
||||
* @param array|int|ModuleUser_EntityUser $aUserTo Пользователь которому отправляем
|
||||
* @param bool $bSendNotify Отправлять или нет уведомление на емайл
|
||||
* @param bool $bUseBlacklist Исклюать или нет пользователей из блэклиста
|
||||
* @return ModuleTalk_EntityTalk|bool
|
||||
*/
|
||||
public function SendTalk($sTitle,$sText,$oUserFrom,$aUserTo,$bSendNotify=true,$bUseBlacklist=true) {
|
||||
$iUserIdFrom=$oUserFrom instanceof ModuleUser_EntityUser ? $oUserFrom->getId() : (int)$oUserFrom;
|
||||
|
@ -101,8 +122,8 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Добавляет новую тему разговора
|
||||
*
|
||||
* @param ModuleTopic_EntityTopic $oTalk
|
||||
* @return unknown
|
||||
* @param ModuleTalk_EntityTalk $oTalk Объект сообщения
|
||||
* @return ModuleTalk_EntityTalk|bool
|
||||
*/
|
||||
public function AddTalk(ModuleTalk_EntityTalk $oTalk) {
|
||||
if ($sId=$this->oMapper->AddTalk($oTalk)) {
|
||||
|
@ -116,17 +137,19 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Обновление разговора
|
||||
*
|
||||
* @param ModuleTalk_EntityTalk $oTalk
|
||||
* @param ModuleTalk_EntityTalk $oTalk Объект сообщения
|
||||
* @return int
|
||||
*/
|
||||
public function UpdateTalk(ModuleTalk_EntityTalk $oTalk) {
|
||||
$this->Cache_Delete("talk_{$oTalk->getId()}");
|
||||
return $this->oMapper->UpdateTalk($oTalk);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Получает дополнительные данные(объекты) для разговоров по их ID
|
||||
*
|
||||
* @param array $aTalkId Список ID сообщений
|
||||
* @param array|null $aAllowData Список дополнительных типов подгружаемых в объект
|
||||
* @return array
|
||||
*/
|
||||
public function GetTalksAdditionalData($aTalkId,$aAllowData=null) {
|
||||
if (is_null($aAllowData)) {
|
||||
|
@ -205,7 +228,8 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Получить список разговоров по списку айдишников
|
||||
*
|
||||
* @param unknown_type $aTalkId
|
||||
* @param array $aTalkId Список ID сообщений
|
||||
* @return array
|
||||
*/
|
||||
public function GetTalksByArrayId($aTalkId) {
|
||||
if (Config::Get('sys.cache.solid')) {
|
||||
|
@ -263,6 +287,12 @@ class ModuleTalk extends Module {
|
|||
$aTalks=func_array_sort_by_keys($aTalks,$aTalkId);
|
||||
return $aTalks;
|
||||
}
|
||||
/**
|
||||
* Получить список разговоров по списку айдишников, используя общий кеш
|
||||
*
|
||||
* @param array $aTalkId Список ID сообщений
|
||||
* @return array
|
||||
*/
|
||||
public function GetTalksByArrayIdSolid($aTalkId) {
|
||||
if (!is_array($aTalkId)) {
|
||||
$aTalkId=array($aTalkId);
|
||||
|
@ -283,7 +313,9 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Получить список отношений разговор-юзер по списку айдишников
|
||||
*
|
||||
* @param unknown_type $aTalkId
|
||||
* @param array $aTalkId Список ID сообщений
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetTalkUsersByArray($aTalkId,$sUserId) {
|
||||
if (!is_array($aTalkId)) {
|
||||
|
@ -341,8 +373,8 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Получает тему разговора по айдишнику
|
||||
*
|
||||
* @param unknown_type $sId
|
||||
* @return unknown
|
||||
* @param int $sId ID сообщения
|
||||
* @return ModuleTalk_EntityTalk|null
|
||||
*/
|
||||
public function GetTalkById($sId) {
|
||||
$aTalks=$this->GetTalksAdditionalData($sId);
|
||||
|
@ -359,8 +391,8 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Добавляет юзера к разговору(теме)
|
||||
*
|
||||
* @param ModuleTalk_EntityTalkUser $oTalkUser
|
||||
* @return unknown
|
||||
* @param ModuleTalk_EntityTalkUser $oTalkUser Объект связи пользователя и сообщения(разговора)
|
||||
* @return bool
|
||||
*/
|
||||
public function AddTalkUser(ModuleTalk_EntityTalkUser $oTalkUser) {
|
||||
$this->Cache_Delete("talk_{$oTalkUser->getTalkId()}");
|
||||
|
@ -375,8 +407,8 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Помечает разговоры как прочитанные
|
||||
*
|
||||
* @param $aTalkId
|
||||
* @param $iUserId
|
||||
* @param array $aTalkId Список ID сообщений
|
||||
* @param int $iUserId ID пользователя
|
||||
*/
|
||||
public function MarkReadTalkUserByArray($aTalkId,$iUserId) {
|
||||
if(!is_array($aTalkId)){
|
||||
|
@ -398,10 +430,12 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Удаляет юзера из разговора
|
||||
*
|
||||
* @param ModuleTalk_EntityTalkUser $oTalkUser
|
||||
* @return unknown
|
||||
* @param array $aTalkId Список ID сообщений
|
||||
* @param int $sUserId ID пользователя
|
||||
* @param int $iActive Статус связи
|
||||
* @return bool
|
||||
*/
|
||||
public function DeleteTalkUserByArray($aTalkId,$sUserId,$iAcitve=self::TALK_USER_DELETE_BY_SELF) {
|
||||
public function DeleteTalkUserByArray($aTalkId,$sUserId,$iActive=self::TALK_USER_DELETE_BY_SELF) {
|
||||
if(!is_array($aTalkId)){
|
||||
$aTalkId=array($aTalkId);
|
||||
}
|
||||
|
@ -425,7 +459,7 @@ class ModuleTalk extends Module {
|
|||
);
|
||||
}
|
||||
$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array("update_talk_user"));
|
||||
$ret = $this->oMapper->DeleteTalkUserByArray($aTalkId,$sUserId,$iAcitve);
|
||||
$ret = $this->oMapper->DeleteTalkUserByArray($aTalkId,$sUserId,$iActive);
|
||||
|
||||
// Удаляем пустые беседы, если в них нет пользователей
|
||||
foreach ($aTalkId as $sTalkId) {
|
||||
|
@ -438,9 +472,9 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Есть ли юзер в этом разговоре
|
||||
*
|
||||
* @param unknown_type $sTalkId
|
||||
* @param unknown_type $sUserId
|
||||
* @return unknown
|
||||
* @param int $sTalkId ID разговора
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return ModuleTalk_EntityTalkUser|null
|
||||
*/
|
||||
public function GetTalkUser($sTalkId,$sUserId) {
|
||||
$aTalkUser=$this->GetTalkUsersByArray($sTalkId,$sUserId);
|
||||
|
@ -452,10 +486,10 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Получить все темы разговора где есть юзер
|
||||
*
|
||||
* @param string $sUserId
|
||||
* @param int $iPage
|
||||
* @param int $iPerPage
|
||||
* @return array
|
||||
* @param int $sUserId ID пользователя
|
||||
* @param int $iPage Номер страницы
|
||||
* @param int $iPerPage Количество элементов на страницу
|
||||
* @return array('collection'=>array,'count'=>int)
|
||||
*/
|
||||
public function GetTalksByUserId($sUserId,$iPage,$iPerPage) {
|
||||
$data=array(
|
||||
|
@ -463,7 +497,6 @@ class ModuleTalk extends Module {
|
|||
'count'=>$iCount
|
||||
);
|
||||
$aTalks=$this->GetTalksAdditionalData($data['collection']);
|
||||
|
||||
/**
|
||||
* Добавляем данные об участниках разговора
|
||||
*/
|
||||
|
@ -477,14 +510,13 @@ class ModuleTalk extends Module {
|
|||
$data['collection']=$aTalks;
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить все темы разговора по фильтру
|
||||
*
|
||||
* @param array $aFilter
|
||||
* @param int $iPage
|
||||
* @param int $iPerPage
|
||||
* @return array
|
||||
* @param array $aFilter Фильтр
|
||||
* @param int $iPage Номер страницы
|
||||
* @param int $iPerPage Количество элементов на страницу
|
||||
* @return array('collection'=>array,'count'=>int)
|
||||
*/
|
||||
public function GetTalksByFilter($aFilter,$iPage,$iPerPage) {
|
||||
$data=array(
|
||||
|
@ -506,12 +538,11 @@ class ModuleTalk extends Module {
|
|||
$data['collection']=$aTalks;
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновляет связку разговор-юзер
|
||||
*
|
||||
* @param ModuleTalk_EntityTalkUser $oTalkUser
|
||||
* @return unknown
|
||||
* @param ModuleTalk_EntityTalkUser $oTalkUser Объект связи пользователя с разговором
|
||||
* @return bool
|
||||
*/
|
||||
public function UpdateTalkUser(ModuleTalk_EntityTalkUser $oTalkUser) {
|
||||
//чистим зависимые кеши
|
||||
|
@ -519,12 +550,11 @@ class ModuleTalk extends Module {
|
|||
$this->Cache_Delete("talk_user_{$oTalkUser->getTalkId()}_{$oTalkUser->getUserId()}");
|
||||
return $this->oMapper->UpdateTalkUser($oTalkUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает число новых тем и комментов где есть юзер
|
||||
*
|
||||
* @param unknown_type $sUserId
|
||||
* @return unknown
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return int
|
||||
*/
|
||||
public function GetCountTalkNew($sUserId) {
|
||||
if (false === ($data = $this->Cache_Get("talk_count_all_new_user_{$sUserId}"))) {
|
||||
|
@ -533,13 +563,11 @@ class ModuleTalk extends Module {
|
|||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Получает список юзеров в теме разговора
|
||||
*
|
||||
* @param string $sTalkId
|
||||
* @param array $aActive
|
||||
* @param int $sTalkId ID разговора
|
||||
* @param array $aActive Список статусов
|
||||
* @return array
|
||||
*/
|
||||
public function GetUsersTalk($sTalkId,$aActive=array()) {
|
||||
|
@ -548,11 +576,10 @@ class ModuleTalk extends Module {
|
|||
$data=$this->oMapper->GetUsersTalk($sTalkId,$aActive);
|
||||
return $this->User_GetUsersAdditionalData($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает массив пользователей, участвующих в разговоре
|
||||
*
|
||||
* @param string $sTalkId
|
||||
* @param int $sTalkId ID разговора
|
||||
* @return array
|
||||
*/
|
||||
public function GetTalkUsersByTalkId($sTalkId) {
|
||||
|
@ -578,59 +605,55 @@ class ModuleTalk extends Module {
|
|||
}
|
||||
return $aTalkUsers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Увеличивает число новых комментов у юзеров
|
||||
*
|
||||
* @param unknown_type $sTalkId
|
||||
* @param unknown_type $aExcludeId
|
||||
* @return unknown
|
||||
* @param int $sTalkId ID разговора
|
||||
* @param array $aExcludeId Список ID пользователей для исключения
|
||||
* @return int
|
||||
*/
|
||||
public function increaseCountCommentNew($sTalkId,$aExcludeId=null) {
|
||||
$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array("update_talk_user_{$sTalkId}"));
|
||||
$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array("update_talk_user"));
|
||||
return $this->oMapper->increaseCountCommentNew($sTalkId,$aExcludeId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает привязку письма к ибранному(добавлено ли письмо в избранное у юзера)
|
||||
*
|
||||
* @param string $sTalkId
|
||||
* @param string $sUserId
|
||||
* @param int $sTalkId ID разговора
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return ModuleFavourite_EntityFavourite|null
|
||||
*/
|
||||
public function GetFavouriteTalk($sTalkId,$sUserId) {
|
||||
return $this->Favourite_GetFavourite($sTalkId,'talk',$sUserId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список избранного по списку айдишников
|
||||
*
|
||||
* @param array $aTalkId
|
||||
* @param array $aTalkId Список ID разговоров
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetFavouriteTalkByArray($aTalkId,$sUserId) {
|
||||
return $this->Favourite_GetFavouritesByArray($aTalkId,'talk',$sUserId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список избранного по списку айдишников, но используя единый кеш
|
||||
*
|
||||
* @param array $aTalkId
|
||||
* @param int $sUserId
|
||||
* @param array $aTalkId Список ID разговоров
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetFavouriteTalksByArraySolid($aTalkId,$sUserId) {
|
||||
return $this->Favourite_GetFavouritesByArraySolid($aTalkId,'talk',$sUserId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает список писем из избранного пользователя
|
||||
*
|
||||
* @param string $sUserId
|
||||
* @param int $iCount
|
||||
* @param int $iCurrPage
|
||||
* @param int $iPerPage
|
||||
* @return array
|
||||
* @param int $sUserId ID пользователя
|
||||
* @param int $iCurrPage Номер текущей страницы
|
||||
* @param int $iPerPage Количество элементов на страницу
|
||||
* @return array('collection'=>array,'count'=>int)
|
||||
*/
|
||||
public function GetTalksFavouriteByUserId($sUserId,$iCurrPage,$iPerPage) {
|
||||
// Получаем список идентификаторов избранных комментов
|
||||
|
@ -655,7 +678,7 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Возвращает число писем в избранном
|
||||
*
|
||||
* @param string $sUserId
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return int
|
||||
*/
|
||||
public function GetCountTalksFavouriteByUserId($sUserId) {
|
||||
|
@ -664,7 +687,7 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Добавляет письмо в избранное
|
||||
*
|
||||
* @param ModuleFavourite_EntityFavourite $oFavourite
|
||||
* @param ModuleFavourite_EntityFavourite $oFavourite Объект избранного
|
||||
* @return bool
|
||||
*/
|
||||
public function AddFavouriteTalk(ModuleFavourite_EntityFavourite $oFavourite) {
|
||||
|
@ -675,7 +698,7 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Удаляет письмо из избранного
|
||||
*
|
||||
* @param ModuleFavourite_EntityFavourite $oFavourite
|
||||
* @param ModuleFavourite_EntityFavourite $oFavourite Объект избранного
|
||||
* @return bool
|
||||
*/
|
||||
public function DeleteFavouriteTalk(ModuleFavourite_EntityFavourite $oFavourite) {
|
||||
|
@ -686,29 +709,27 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Получает информацию о пользователях, занесенных в блеклист
|
||||
*
|
||||
* @param string $sUserId
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetBlacklistByUserId($sUserId) {
|
||||
$data=$this->oMapper->GetBlacklistByUserId($sUserId);
|
||||
return $this->User_GetUsersAdditionalData($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает пользователей, у которых данный занесен в Blacklist
|
||||
*
|
||||
* @param string $sUserId
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetBlacklistByTargetId($sUserId) {
|
||||
return $this->oMapper->GetBlacklistByTargetId($sUserId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Добавление пользователя в блеклист по переданному идентификатору
|
||||
*
|
||||
* @param string $sTargetId
|
||||
* @param string $sUserId
|
||||
* @param int $sTargetId ID пользователя, которого добавляем в блэклист
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return bool
|
||||
*/
|
||||
public function AddUserToBlacklist($sTargetId, $sUserId) {
|
||||
|
@ -717,8 +738,8 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Добавление пользователя в блеклист по списку идентификаторов
|
||||
*
|
||||
* @param array $aTargetId
|
||||
* @param string $sUserId
|
||||
* @param array $aTargetId Список ID пользователей, которых добавляем в блэклист
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return bool
|
||||
*/
|
||||
public function AddUserArrayToBlacklist($aTargetId, $sUserId) {
|
||||
|
@ -730,21 +751,20 @@ class ModuleTalk extends Module {
|
|||
/**
|
||||
* Удаляем пользователя из блеклиста
|
||||
*
|
||||
* @param string $sTargetId
|
||||
* @param string $sUserId
|
||||
* @param int $sTargetId ID пользователя, которого удаляем из блэклиста
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return bool
|
||||
*/
|
||||
public function DeleteUserFromBlacklist($sTargetId, $sUserId) {
|
||||
return $this->oMapper->DeleteUserFromBlacklist($sTargetId, $sUserId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает список последних инбоксов пользователя,
|
||||
* отправленных не более чем $iTimeLimit секунд назад
|
||||
*
|
||||
* @param string $sUserId
|
||||
* @param int $iTimeLimit
|
||||
* @param int $iCountLimit
|
||||
* @param int $sUserId ID пользователя
|
||||
* @param int $iTimeLimit Количество секунд
|
||||
* @param int $iCountLimit Количество
|
||||
* @return array
|
||||
*/
|
||||
public function GetLastTalksByUserId($sUserId,$iTimeLimit,$iCountLimit=1) {
|
||||
|
@ -756,11 +776,10 @@ class ModuleTalk extends Module {
|
|||
|
||||
return $aTalks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаление письма из БД
|
||||
*
|
||||
* @param unknown_type $iTalkId
|
||||
* @param int $iTalkId ID разговора
|
||||
*/
|
||||
public function DeleteTalk($iTalkId) {
|
||||
$this->oMapper->deleteTalk($iTalkId);
|
||||
|
|
|
@ -15,40 +15,95 @@
|
|||
---------------------------------------------------------
|
||||
*/
|
||||
|
||||
class ModuleTalk_EntityTalk extends Entity
|
||||
{
|
||||
public function getId() {
|
||||
return $this->_getDataOne('talk_id');
|
||||
}
|
||||
public function getUserId() {
|
||||
return $this->_getDataOne('user_id');
|
||||
}
|
||||
public function getTitle() {
|
||||
return $this->_getDataOne('talk_title');
|
||||
}
|
||||
public function getText() {
|
||||
return $this->_getDataOne('talk_text');
|
||||
}
|
||||
public function getDate() {
|
||||
return $this->_getDataOne('talk_date');
|
||||
}
|
||||
public function getDateLast() {
|
||||
return $this->_getDataOne('talk_date_last');
|
||||
}
|
||||
/**
|
||||
* Объект сущности сообщения
|
||||
*
|
||||
* @package modules.talk
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleTalk_EntityTalk extends Entity {
|
||||
/**
|
||||
* Возвращает ID сообщения
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getId() {
|
||||
return $this->_getDataOne('talk_id');
|
||||
}
|
||||
/**
|
||||
* Возвращает ID пользователя
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getUserId() {
|
||||
return $this->_getDataOne('user_id');
|
||||
}
|
||||
/**
|
||||
* Вовзращает заголовок сообщения
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getTitle() {
|
||||
return $this->_getDataOne('talk_title');
|
||||
}
|
||||
/**
|
||||
* Возвращает текст сообщения
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getText() {
|
||||
return $this->_getDataOne('talk_text');
|
||||
}
|
||||
/**
|
||||
* Возвращает дату сообщения
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getDate() {
|
||||
return $this->_getDataOne('talk_date');
|
||||
}
|
||||
/**
|
||||
* Возвращает дату последнего сообщения
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getDateLast() {
|
||||
return $this->_getDataOne('talk_date_last');
|
||||
}
|
||||
/**
|
||||
* Возвращает ID последнего пользователя
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getUserIdLast() {
|
||||
return $this->_getDataOne('talk_user_id_last');
|
||||
}
|
||||
public function getUserIp() {
|
||||
return $this->_getDataOne('talk_user_ip');
|
||||
}
|
||||
/**
|
||||
* Вовзращает IP пользователя
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getUserIp() {
|
||||
return $this->_getDataOne('talk_user_ip');
|
||||
}
|
||||
/**
|
||||
* Возвращает ID последнего комментария
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getCommentIdLast() {
|
||||
return $this->_getDataOne('talk_comment_id_last');
|
||||
}
|
||||
public function getCountComment() {
|
||||
return $this->_getDataOne('talk_count_comment');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает количество комментариев
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getCountComment() {
|
||||
return $this->_getDataOne('talk_count_comment');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает последний текст(коммент) из письма, если комментов нет, то текст исходного сообщения
|
||||
*
|
||||
|
@ -60,80 +115,168 @@ class ModuleTalk_EntityTalk extends Entity
|
|||
}
|
||||
return $this->getText();
|
||||
}
|
||||
public function getUsers() {
|
||||
return $this->_getDataOne('users');
|
||||
}
|
||||
public function getUser() {
|
||||
return $this->_getDataOne('user');
|
||||
}
|
||||
public function getTalkUser() {
|
||||
return $this->_getDataOne('talk_user');
|
||||
}
|
||||
/**
|
||||
* Возращает true, если разговор занесен в избранное
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsFavourite() {
|
||||
return $this->_getDataOne('talk_is_favourite');
|
||||
}
|
||||
/**
|
||||
* Получает пользователей разговора
|
||||
* Возвращает список пользователей
|
||||
*
|
||||
* @return array|null
|
||||
*/
|
||||
public function getUsers() {
|
||||
return $this->_getDataOne('users');
|
||||
}
|
||||
/**
|
||||
* Возвращает объект пользователя
|
||||
*
|
||||
* @return ModuleUser_EntityUser|null
|
||||
*/
|
||||
public function getUser() {
|
||||
return $this->_getDataOne('user');
|
||||
}
|
||||
/**
|
||||
* Возвращает объект связи пользователя с сообщением
|
||||
*
|
||||
* @return ModuleTalk_EntityTalkUser|null
|
||||
*/
|
||||
public function getTalkUser() {
|
||||
return $this->_getDataOne('talk_user');
|
||||
}
|
||||
/**
|
||||
* Возращает true, если разговор занесен в избранное
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getIsFavourite() {
|
||||
return $this->_getDataOne('talk_is_favourite');
|
||||
}
|
||||
/**
|
||||
* Возращает пользователей разговора
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getTalkUsers() {
|
||||
return $this->_getDataOne('talk_users');
|
||||
}
|
||||
|
||||
|
||||
public function getTalkUsers() {
|
||||
return $this->_getDataOne('talk_users');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Устанавливает ID сообщения
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setId($data) {
|
||||
$this->_aData['talk_id']=$data;
|
||||
}
|
||||
public function setUserId($data) {
|
||||
$this->_aData['user_id']=$data;
|
||||
}
|
||||
public function setTitle($data) {
|
||||
$this->_aData['talk_title']=$data;
|
||||
}
|
||||
public function setText($data) {
|
||||
$this->_aData['talk_text']=$data;
|
||||
}
|
||||
public function setDate($data) {
|
||||
$this->_aData['talk_date']=$data;
|
||||
}
|
||||
public function setDateLast($data) {
|
||||
$this->_aData['talk_date_last']=$data;
|
||||
}
|
||||
$this->_aData['talk_id']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает ID пользователя
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setUserId($data) {
|
||||
$this->_aData['user_id']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает заголовок сообщения
|
||||
*
|
||||
* @param string $data
|
||||
*/
|
||||
public function setTitle($data) {
|
||||
$this->_aData['talk_title']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает текст сообщения
|
||||
*
|
||||
* @param string $data
|
||||
*/
|
||||
public function setText($data) {
|
||||
$this->_aData['talk_text']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает дату разговора
|
||||
*
|
||||
* @param string $data
|
||||
*/
|
||||
public function setDate($data) {
|
||||
$this->_aData['talk_date']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает дату последнего сообщения в разговоре
|
||||
*
|
||||
* @param string $data
|
||||
*/
|
||||
public function setDateLast($data) {
|
||||
$this->_aData['talk_date_last']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает ID последнего пользователя
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setUserIdLast($data) {
|
||||
$this->_aData['talk_user_id_last']=$data;
|
||||
}
|
||||
public function setUserIp($data) {
|
||||
$this->_aData['talk_user_ip']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает IP пользователя
|
||||
*
|
||||
* @param string $data
|
||||
*/
|
||||
public function setUserIp($data) {
|
||||
$this->_aData['talk_user_ip']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает ID последнего комментария
|
||||
*
|
||||
* @param string $data
|
||||
*/
|
||||
public function setCommentIdLast($data) {
|
||||
$this->_aData['talk_comment_id_last']=$data;
|
||||
}
|
||||
public function setCountComment($data) {
|
||||
$this->_aData['talk_count_comment']=$data;
|
||||
}
|
||||
|
||||
|
||||
public function setUsers($data) {
|
||||
$this->_aData['users']=$data;
|
||||
}
|
||||
public function setUser($data) {
|
||||
$this->_aData['user']=$data;
|
||||
}
|
||||
public function setTalkUser($data) {
|
||||
$this->_aData['talk_user']=$data;
|
||||
}
|
||||
|
||||
public function setIsFavourite($data) {
|
||||
$this->_aData['talk_is_favourite']=$data;
|
||||
}
|
||||
public function setTalkUsers($data) {
|
||||
$this->_aData['talk_users']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает количество комментариев
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setCountComment($data) {
|
||||
$this->_aData['talk_count_comment']=$data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Устанавливает список пользователей
|
||||
*
|
||||
* @param array $data
|
||||
*/
|
||||
public function setUsers($data) {
|
||||
$this->_aData['users']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает объект пользователя
|
||||
*
|
||||
* @param ModuleUser_EntityUser $data
|
||||
*/
|
||||
public function setUser($data) {
|
||||
$this->_aData['user']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает объект связи
|
||||
*
|
||||
* @param ModuleTalk_EntityTalkUser $data
|
||||
*/
|
||||
public function setTalkUser($data) {
|
||||
$this->_aData['talk_user']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает факт налиция разговора в избранном текущего пользователя
|
||||
*
|
||||
* @param bool $data
|
||||
*/
|
||||
public function setIsFavourite($data) {
|
||||
$this->_aData['talk_is_favourite']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает список связей
|
||||
*
|
||||
* @param array $data
|
||||
*/
|
||||
public function setTalkUsers($data) {
|
||||
$this->_aData['talk_users']=$data;
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -15,63 +15,127 @@
|
|||
---------------------------------------------------------
|
||||
*/
|
||||
|
||||
class ModuleTalk_EntityTalkUser extends Entity
|
||||
{
|
||||
public function getTalkId() {
|
||||
return $this->_getDataOne('talk_id');
|
||||
}
|
||||
public function getUserId() {
|
||||
return $this->_getDataOne('user_id');
|
||||
}
|
||||
public function getDateLast() {
|
||||
return $this->_getDataOne('date_last');
|
||||
}
|
||||
public function getCommentIdLast() {
|
||||
return $this->_getDataOne('comment_id_last');
|
||||
}
|
||||
public function getCommentCountNew() {
|
||||
return $this->_getDataOne('comment_count_new');
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает статус активности пользователя
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getUserActive(){
|
||||
/**
|
||||
* Объект связи пользователя с разовором
|
||||
*
|
||||
* @package modules.talk
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleTalk_EntityTalkUser extends Entity {
|
||||
/**
|
||||
* Возвращает ID разговора
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getTalkId() {
|
||||
return $this->_getDataOne('talk_id');
|
||||
}
|
||||
/**
|
||||
* Возвращает ID пользователя
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getUserId() {
|
||||
return $this->_getDataOne('user_id');
|
||||
}
|
||||
/**
|
||||
* Возвращает дату последнего сообщения
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getDateLast() {
|
||||
return $this->_getDataOne('date_last');
|
||||
}
|
||||
/**
|
||||
* Возвращает ID последнего комментария
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getCommentIdLast() {
|
||||
return $this->_getDataOne('comment_id_last');
|
||||
}
|
||||
/**
|
||||
* Возвращает количество новых сообщений
|
||||
*
|
||||
* @return int|null
|
||||
*/
|
||||
public function getCommentCountNew() {
|
||||
return $this->_getDataOne('comment_count_new');
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает статус активности пользователя
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getUserActive(){
|
||||
return $this->_getDataOne('talk_user_active') ? $this->_getDataOne('talk_user_active') : ModuleTalk::TALK_USER_ACTIVE;
|
||||
}
|
||||
/**
|
||||
* Возвращает соответствующий пользователю объект UserEntity
|
||||
*
|
||||
* @return UserEntity | null
|
||||
*/
|
||||
public function getUser() {
|
||||
return $this->_getDataOne('user');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
* Возвращает соответствующий пользователю объект
|
||||
*
|
||||
* @return ModuleUser_EntityUser | null
|
||||
*/
|
||||
public function getUser() {
|
||||
return $this->_getDataOne('user');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Устанавливает ID разговора
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setTalkId($data) {
|
||||
$this->_aData['talk_id']=$data;
|
||||
}
|
||||
public function setUserId($data) {
|
||||
$this->_aData['user_id']=$data;
|
||||
}
|
||||
public function setDateLast($data) {
|
||||
$this->_aData['date_last']=$data;
|
||||
}
|
||||
public function setCommentIdLast($data) {
|
||||
$this->_aData['comment_id_last']=$data;
|
||||
}
|
||||
public function setCommentCountNew($data) {
|
||||
$this->_aData['comment_count_new']=$data;
|
||||
}
|
||||
|
||||
public function setUserActive($data) {
|
||||
$this->_aData['talk_user_active']=$data;
|
||||
}
|
||||
public function setUser($data) {
|
||||
$this->_aData['user']=$data;
|
||||
}
|
||||
$this->_aData['talk_id']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает ID пользователя
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setUserId($data) {
|
||||
$this->_aData['user_id']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает последнюю дату
|
||||
*
|
||||
* @param string $data
|
||||
*/
|
||||
public function setDateLast($data) {
|
||||
$this->_aData['date_last']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает ID последнее комментария
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setCommentIdLast($data) {
|
||||
$this->_aData['comment_id_last']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает количество новых комментариев
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setCommentCountNew($data) {
|
||||
$this->_aData['comment_count_new']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает статус связи
|
||||
*
|
||||
* @param int $data
|
||||
*/
|
||||
public function setUserActive($data) {
|
||||
$this->_aData['talk_user_active']=$data;
|
||||
}
|
||||
/**
|
||||
* Устанавливает объект пользователя
|
||||
*
|
||||
* @param ModuleUser_EntityUser $data
|
||||
*/
|
||||
public function setUser($data) {
|
||||
$this->_aData['user']=$data;
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -15,7 +15,19 @@
|
|||
---------------------------------------------------------
|
||||
*/
|
||||
|
||||
class ModuleTalk_MapperTalk extends Mapper {
|
||||
/**
|
||||
* Объект маппера для работы с БД
|
||||
*
|
||||
* @package modules.talk
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleTalk_MapperTalk extends Mapper {
|
||||
/**
|
||||
* Добавляет новую тему разговора
|
||||
*
|
||||
* @param ModuleTalk_EntityTalk $oTalk Объект сообщения
|
||||
* @return int|bool
|
||||
*/
|
||||
public function AddTalk(ModuleTalk_EntityTalk $oTalk) {
|
||||
$sql = "INSERT INTO ".Config::Get('db.table.talk')."
|
||||
(user_id,
|
||||
|
@ -27,14 +39,18 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
talk_user_ip
|
||||
)
|
||||
VALUES(?d, ?, ?, ?, ?, ?, ?)
|
||||
";
|
||||
";
|
||||
if ($iId=$this->oDb->query($sql,$oTalk->getUserId(),$oTalk->getTitle(),$oTalk->getText(),$oTalk->getDate(),$oTalk->getDateLast(),$oTalk->getUserIdLast(),$oTalk->getUserIp()))
|
||||
{
|
||||
return $iId;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаление письма из БД
|
||||
*
|
||||
* @param int $iTalkId ID разговора
|
||||
*/
|
||||
public function DeleteTalk($iTalkId) {
|
||||
// Удаление беседы
|
||||
$sql = 'DELETE FROM '.Config::Get('db.table.talk').' WHERE talk_id = ?d';
|
||||
|
@ -43,7 +59,12 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
$sql = 'DELETE FROM '.Config::Get('db.table.talk_user').' WHERE talk_id = ?d';
|
||||
$this->oDb->query($sql,$iTalkId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновление разговора
|
||||
*
|
||||
* @param ModuleTalk_EntityTalk $oTalk Объект сообщения
|
||||
* @return int
|
||||
*/
|
||||
public function UpdateTalk(ModuleTalk_EntityTalk $oTalk) {
|
||||
$sql = "UPDATE ".Config::Get('db.table.talk')." SET
|
||||
talk_date_last = ? ,
|
||||
|
@ -52,15 +73,20 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
talk_count_comment = ?
|
||||
WHERE
|
||||
talk_id = ?d
|
||||
";
|
||||
";
|
||||
return $this->oDb->query($sql,$oTalk->getDateLast(),$oTalk->getUserIdLast(),$oTalk->getCommentIdLast(),$oTalk->getCountComment(),$oTalk->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список разговоров по списку айдишников
|
||||
*
|
||||
* @param array $aArrayId Список ID сообщений
|
||||
* @return array
|
||||
*/
|
||||
public function GetTalksByArrayId($aArrayId) {
|
||||
if (!is_array($aArrayId) or count($aArrayId)==0) {
|
||||
return array();
|
||||
}
|
||||
|
||||
|
||||
$sql = "SELECT
|
||||
t.*
|
||||
FROM
|
||||
|
@ -73,15 +99,21 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
foreach ($aRows as $aRow) {
|
||||
$aTalks[]=Engine::GetEntity('Talk',$aRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $aTalks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список отношений разговор-юзер по списку айдишников
|
||||
*
|
||||
* @param array $aArrayId Список ID сообщений
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetTalkUserByArray($aArrayId,$sUserId) {
|
||||
if (!is_array($aArrayId) or count($aArrayId)==0) {
|
||||
return array();
|
||||
}
|
||||
|
||||
|
||||
$sql = "SELECT
|
||||
t.*
|
||||
FROM
|
||||
|
@ -99,8 +131,13 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
}
|
||||
return $aTalkUsers;
|
||||
}
|
||||
|
||||
public function GetTalkById($sId) {
|
||||
/**
|
||||
* Получает тему разговора по айдишнику
|
||||
*
|
||||
* @param int $sId ID сообщения
|
||||
* @return ModuleTalk_EntityTalk|null
|
||||
*/
|
||||
public function GetTalkById($sId) {
|
||||
|
||||
$sql = "SELECT
|
||||
t.*,
|
||||
|
@ -113,14 +150,18 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
AND
|
||||
t.user_id=u.user_id
|
||||
";
|
||||
|
||||
|
||||
if ($aRow=$this->oDb->selectRow($sql,$sId)) {
|
||||
return Engine::GetEntity('Talk',$aRow);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Добавляет юзера к разговору(теме)
|
||||
*
|
||||
* @param ModuleTalk_EntityTalkUser $oTalkUser Объект связи пользователя и сообщения(разговора)
|
||||
* @return bool
|
||||
*/
|
||||
public function AddTalkUser(ModuleTalk_EntityTalkUser $oTalkUser) {
|
||||
$sql = "INSERT INTO ".Config::Get('db.table.talk_user')."
|
||||
(talk_id,
|
||||
|
@ -131,20 +172,25 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
VALUES(?d, ?d, ?, ?d)
|
||||
ON DUPLICATE KEY
|
||||
UPDATE talk_user_active = ?d
|
||||
";
|
||||
";
|
||||
if ($this->oDb->query($sql,
|
||||
$oTalkUser->getTalkId(),
|
||||
$oTalkUser->getUserId(),
|
||||
$oTalkUser->getDateLast(),
|
||||
$oTalkUser->getUserActive(),
|
||||
$oTalkUser->getUserActive()
|
||||
$oTalkUser->getTalkId(),
|
||||
$oTalkUser->getUserId(),
|
||||
$oTalkUser->getDateLast(),
|
||||
$oTalkUser->getUserActive(),
|
||||
$oTalkUser->getUserActive()
|
||||
)===0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function UpdateTalkUser(ModuleTalk_EntityTalkUser $oTalkUser) {
|
||||
/**
|
||||
* Обновляет связку разговор-юзер
|
||||
*
|
||||
* @param ModuleTalk_EntityTalkUser $oTalkUser Объект связи пользователя с разговором
|
||||
* @return bool
|
||||
*/
|
||||
public function UpdateTalkUser(ModuleTalk_EntityTalkUser $oTalkUser) {
|
||||
$sql = "UPDATE ".Config::Get('db.table.talk_user')."
|
||||
SET
|
||||
date_last = ?,
|
||||
|
@ -155,8 +201,8 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
talk_id = ?d
|
||||
AND
|
||||
user_id = ?d
|
||||
";
|
||||
|
||||
";
|
||||
|
||||
if (
|
||||
$this->oDb->query(
|
||||
$sql,
|
||||
|
@ -169,15 +215,21 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Удаляет юзера из разговора
|
||||
*
|
||||
* @param array $aTalkId Список ID сообщений
|
||||
* @param int $sUserId ID пользователя
|
||||
* @param int $iActive Статус связи
|
||||
* @return bool
|
||||
*/
|
||||
public function DeleteTalkUserByArray($aTalkId,$sUserId,$iActive) {
|
||||
if (!is_array($aTalkId)) {
|
||||
$aTalkId=array($aTalkId);
|
||||
}
|
||||
}
|
||||
$sql = "
|
||||
UPDATE ".Config::Get('db.table.talk_user')."
|
||||
SET
|
||||
|
@ -186,16 +238,19 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
talk_id IN (?a)
|
||||
AND
|
||||
user_id = ?d
|
||||
";
|
||||
if ($this->oDb->query($sql,$iActive,$aTalkId,$sUserId))
|
||||
";
|
||||
if ($this->oDb->query($sql,$iActive,$aTalkId,$sUserId))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает количество новых комментариев
|
||||
*
|
||||
* @param $sUserId
|
||||
* @return bool
|
||||
*/
|
||||
public function GetCountCommentNew($sUserId) {
|
||||
$sql = "
|
||||
SELECT
|
||||
|
@ -212,7 +267,12 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает число новых тем и комментов где есть юзер
|
||||
*
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return int
|
||||
*/
|
||||
public function GetCountTalkNew($sUserId) {
|
||||
$sql = "
|
||||
SELECT
|
||||
|
@ -231,8 +291,16 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function GetTalksByUserId($sUserId,&$iCount,$iCurrPage,$iPerPage) {
|
||||
/**
|
||||
* Получить все темы разговора где есть юзер
|
||||
*
|
||||
* @param int $sUserId ID пользователя
|
||||
* @param int $iCount Возвращает общее количество элементов
|
||||
* @param int $iCurrPage Номер страницы
|
||||
* @param int $iPerPage Количество элементов на страницу
|
||||
* @return array
|
||||
*/
|
||||
public function GetTalksByUserId($sUserId,&$iCount,$iCurrPage,$iPerPage) {
|
||||
$sql = "SELECT
|
||||
tu.talk_id
|
||||
FROM
|
||||
|
@ -247,7 +315,7 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
ORDER BY t.talk_date_last desc, t.talk_date desc
|
||||
LIMIT ?d, ?d
|
||||
";
|
||||
|
||||
|
||||
$aTalks=array();
|
||||
if ($aRows=$this->oDb->selectPage($iCount,$sql,$sUserId,ModuleTalk::TALK_USER_ACTIVE,($iCurrPage-1)*$iPerPage, $iPerPage)) {
|
||||
foreach ($aRows as $aRow) {
|
||||
|
@ -255,9 +323,14 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
}
|
||||
}
|
||||
return $aTalks;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
* Получает список юзеров в теме разговора
|
||||
*
|
||||
* @param int $sTalkId ID разговора
|
||||
* @param array $aUserActive Список статусов
|
||||
* @return array
|
||||
*/
|
||||
public function GetUsersTalk($sTalkId,$aUserActive=array()) {
|
||||
$sql = "
|
||||
SELECT
|
||||
|
@ -267,9 +340,9 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
WHERE
|
||||
talk_id = ?
|
||||
{ AND talk_user_active IN(?a) }
|
||||
";
|
||||
";
|
||||
$aReturn=array();
|
||||
if ($aRows=$this->oDb->select($sql,$sTalkId,
|
||||
if ($aRows=$this->oDb->select($sql,$sTalkId,
|
||||
(count($aUserActive) ? $aUserActive : DBSIMPLE_SKIP )
|
||||
)) {
|
||||
foreach ($aRows as $aRow) {
|
||||
|
@ -279,25 +352,30 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
|
||||
return $aReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Увеличивает число новых комментов у юзеров
|
||||
*
|
||||
* @param int $sTalkId ID разговора
|
||||
* @param array $aExcludeId Список ID пользователей для исключения
|
||||
* @return int
|
||||
*/
|
||||
public function increaseCountCommentNew($sTalkId,$aExcludeId) {
|
||||
if (!is_null($aExcludeId) and !is_array($aExcludeId)) {
|
||||
$aExcludeId=array($aExcludeId);
|
||||
}
|
||||
|
||||
|
||||
$sql = "UPDATE
|
||||
".Config::Get('db.table.talk_user')."
|
||||
SET comment_count_new=comment_count_new+1
|
||||
WHERE
|
||||
talk_id = ?
|
||||
{ AND user_id NOT IN (?a) }";
|
||||
{ AND user_id NOT IN (?a) }";
|
||||
return $this->oDb->select($sql,$sTalkId,!is_null($aExcludeId) ? $aExcludeId : DBSIMPLE_SKIP);
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает массив участников разговора
|
||||
* Возвращает массив пользователей, участвующих в разговоре
|
||||
*
|
||||
* @param string $sTalkId
|
||||
* @param int $sTalkId ID разговора
|
||||
* @return array
|
||||
*/
|
||||
public function GetTalkUsers($sTalkId) {
|
||||
|
@ -309,7 +387,7 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
WHERE
|
||||
talk_id = ?
|
||||
|
||||
";
|
||||
";
|
||||
$aReturn=array();
|
||||
if ($aRows=$this->oDb->select($sql,$sTalkId)) {
|
||||
foreach ($aRows as $aRow) {
|
||||
|
@ -317,16 +395,16 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
}
|
||||
}
|
||||
|
||||
return $aReturn;
|
||||
return $aReturn;
|
||||
}
|
||||
/**
|
||||
* Возвращает список идентификаторов писем, удовлетворяющих условию фильтра
|
||||
* Получить все темы разговора по фильтру
|
||||
*
|
||||
* @param array $aFilter
|
||||
* @param int $iCount
|
||||
* @param int $iCurrPage
|
||||
* @param int $iPerPage
|
||||
* @return array
|
||||
* @param array $aFilter Фильтр
|
||||
* @param int $iCount Возвращает общее количество элементов
|
||||
* @param int $iCurrPage Номер страницы
|
||||
* @param int $iPerPage Количество элементов на страницу
|
||||
* @return array('collection'=>array,'count'=>int)
|
||||
*/
|
||||
public function GetTalksByFilter($aFilter,&$iCount,$iCurrPage,$iPerPage) {
|
||||
if (isset($aFilter['id']) and !is_array($aFilter['id'])) {
|
||||
|
@ -354,7 +432,7 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
ORDER BY t.talk_date_last desc, t.talk_date desc
|
||||
LIMIT ?d, ?d
|
||||
";
|
||||
|
||||
|
||||
$aTalks=array();
|
||||
if (
|
||||
$aRows=$this->oDb->selectPage(
|
||||
|
@ -380,57 +458,53 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
}
|
||||
return $aTalks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает идентификаторы пользователей, добавленых в блеклист
|
||||
* Получает информацию о пользователях, занесенных в блеклист
|
||||
*
|
||||
* @param string $sUserId
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetBlacklistByUserId($sUserId) {
|
||||
public function GetBlacklistByUserId($sUserId) {
|
||||
$sql = "SELECT
|
||||
tb.user_target_id
|
||||
FROM
|
||||
".Config::Get('db.table.talk_blacklist')." as tb
|
||||
WHERE
|
||||
tb.user_id = ?d";
|
||||
tb.user_id = ?d";
|
||||
$aTargetId=array();
|
||||
if ($aRows=$this->oDb->select($sql,$sUserId)) {
|
||||
foreach ($aRows as $aRow) {
|
||||
$aTargetId[]=$aRow['user_target_id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
return $aTargetId;
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* Получает идентификаторы пользователей, у которых текущей
|
||||
* занесен в блеклист
|
||||
* Возвращает пользователей, у которых данный занесен в Blacklist
|
||||
*
|
||||
* @param string $sUserId
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return array
|
||||
*/
|
||||
public function GetBlacklistByTargetId($sUserId) {
|
||||
public function GetBlacklistByTargetId($sUserId) {
|
||||
$sql = "SELECT
|
||||
tb.user_id
|
||||
FROM
|
||||
".Config::Get('db.table.talk_blacklist')." as tb
|
||||
WHERE
|
||||
tb.user_target_id = ?d";
|
||||
tb.user_target_id = ?d";
|
||||
$aUserId=array();
|
||||
if ($aRows=$this->oDb->select($sql,$sUserId)) {
|
||||
foreach ($aRows as $aRow) {
|
||||
$aUserId[]=$aRow['user_id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
return $aUserId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Добавление пользователя в блеклист
|
||||
* Добавление пользователя в блеклист по переданному идентификатору
|
||||
*
|
||||
* @param string $sTargetId
|
||||
* @param string $sUserId
|
||||
* @param int $sTargetId ID пользователя, которого добавляем в блэклист
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return bool
|
||||
*/
|
||||
public function AddUserToBlacklist($sTargetId, $sUserId) {
|
||||
|
@ -439,53 +513,51 @@ class ModuleTalk_MapperTalk extends Mapper {
|
|||
( user_id, user_target_id )
|
||||
VALUES
|
||||
(?d, ?d)
|
||||
";
|
||||
";
|
||||
if ($this->oDb->query($sql,$sUserId,$sTargetId)===0) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаление пользователя из блеклиста
|
||||
* Удаляем пользователя из блеклиста
|
||||
*
|
||||
* @param string $sTargetId
|
||||
* @param stringe $sUserId
|
||||
* @param int $sTargetId ID пользователя, которого удаляем из блэклиста
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return bool
|
||||
*/
|
||||
public function DeleteUserFromBlacklist($sTargetId, $sUserId) {
|
||||
public function DeleteUserFromBlacklist($sTargetId, $sUserId) {
|
||||
$sql = "
|
||||
DELETE FROM ".Config::Get('db.table.talk_blacklist')."
|
||||
WHERE
|
||||
user_id = ?d
|
||||
AND
|
||||
user_target_id = ?d
|
||||
";
|
||||
";
|
||||
if ($this->oDb->query($sql,$sUserId,$sTargetId)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Добавление пользователей в блеклист по массиву переданных идентификаторов
|
||||
* Добавление пользователя в блеклист по списку идентификаторов
|
||||
*
|
||||
* @param array $aTargetId
|
||||
* @param string $sUserId
|
||||
* @param array $aTargetId Список ID пользователей, которых добавляем в блэклист
|
||||
* @param int $sUserId ID пользователя
|
||||
* @return bool
|
||||
*/
|
||||
public function AddUserArrayToBlacklist($aTargetId, $sUserId) {
|
||||
public function AddUserArrayToBlacklist($aTargetId, $sUserId) {
|
||||
$sql = "
|
||||
INSERT INTO ".Config::Get('db.table.talk_blacklist')."
|
||||
( user_id, user_target_id )
|
||||
VALUES
|
||||
(?d, ?d)
|
||||
";
|
||||
$bOk=true;
|
||||
";
|
||||
$bOk=true;
|
||||
foreach ($aTargetId as $sTarget) {
|
||||
$bOk = $bOk && $this->oDb->query($sql, $sUserId, $sTarget);
|
||||
}
|
||||
return $bOk;
|
||||
}
|
||||
return $bOk;
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -18,21 +18,26 @@
|
|||
/**
|
||||
* Модуль Tools - различные вспомогательные методы
|
||||
*
|
||||
* @package modules.tools
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleTools extends Module {
|
||||
|
||||
/**
|
||||
* Инициализация
|
||||
*
|
||||
*/
|
||||
public function Init() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Строит логарифмическое облако - расчитывает значение size в зависимости от count
|
||||
* У объектов в коллекции обязательно должны быть методы getCount() и setSize()
|
||||
*
|
||||
* @param array $aCollection
|
||||
* @param aray $aCollection Список тегов
|
||||
* @param int $iMinSize Минимальный размер
|
||||
* @param int $iMaxSize Максимальный размер
|
||||
* @return array
|
||||
*/
|
||||
public function MakeCloud($aCollection,$iMinSize=1,$iMaxSize=10) {
|
||||
if (count($aCollection)) {
|
||||
|
|
Loading…
Reference in a new issue