ModuleStream_MapperStream
Package | modules.stream |
---|---|
Inheritance | class ModuleStream_MapperStream » Mapper » LsObject |
Since | 1.0 |
Source Code | /classes/modules/stream/mapper/Stream.mapper.class.php |
Объект маппера для работы с БД
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
oDb | DbSimple_Generic_Database | Объект подключения к базе данных | Mapper |
Public Methods
Method | Description | Defined By |
---|---|---|
AddEvent() | Добавление события в БД | ModuleStream_MapperStream |
GetCount() | Количество событий для пользователя | ModuleStream_MapperStream |
GetEventByTarget() | Получает событие по типу и его ID | ModuleStream_MapperStream |
IsSubscribe() | Проверяет подписан ли пользователь на конкретного пользователя | ModuleStream_MapperStream |
Read() | Чтение событий | ModuleStream_MapperStream |
UpdateEvent() | Обновление события | ModuleStream_MapperStream |
__construct() | Передаем коннект к БД | Mapper |
getTypesList() | Получение типов событий, на которые подписан пользователь | ModuleStream_MapperStream |
getUserSubscribes() | Получение списка пользователей, на которых подписан пользователь | ModuleStream_MapperStream |
subscribeUser() | Подписать пользователя | ModuleStream_MapperStream |
switchUserEventType() | Редактирование списка событий, на которые подписан юзер | ModuleStream_MapperStream |
unsubscribeUser() | Отписать пользователя | ModuleStream_MapperStream |
Method Details
AddEvent()
method
public int|bool AddEvent(ModuleStream_EntityEvent $oObject)
| ||
$oObject | ModuleStream_EntityEvent | |
{return} | int|bool |
Source Code: /classes/modules/stream/mapper/Stream.mapper.class.php#31 (show)
public function AddEvent($oObject) {
$sql = "INSERT INTO ".Config::Get('db.table.stream_event')." SET ?a ";
if ($iId=$this->oDb->query($sql,$oObject->_getData())) {
return $iId;
}
return false;
}
Добавление события в БД
GetCount()
method
public int GetCount(array $aEventTypes, array|null $aUserId)
| ||
$aEventTypes | array | Список типов событий |
$aUserId | array|null | ID пользователя |
{return} | int |
Source Code: /classes/modules/stream/mapper/Stream.mapper.class.php#120 (show)
public function GetCount($aEventTypes, $aUserId) {
if (!is_null($aUserId) and !is_array($aUserId)) {
$aUserId=array($aUserId);
}
$sql = 'SELECT count(*) as c FROM ' . Config::Get('db.table.stream_event'). '
WHERE
event_type IN (?a)
{ AND user_id IN (?a) }
AND publish = 1 ';
if ($aRow=$this->oDb->selectRow($sql,$aEventTypes,(!is_null($aUserId) and count($aUserId)) ? $aUserId : DBSIMPLE_SKIP)) {
return $aRow['c'];
}
return 0;
}
Количество событий для пользователя
GetEventByTarget()
method
public ModuleStream_EntityEvent GetEventByTarget(string $sEventType, int $iTargetId, int|null $iUserId=NULL)
| ||
$sEventType | string | Тип |
$iTargetId | int | ID владельца события |
$iUserId | int|null | ID пользователя |
{return} | ModuleStream_EntityEvent |
Source Code: /classes/modules/stream/mapper/Stream.mapper.class.php#46 (show)
public function GetEventByTarget($sEventType, $iTargetId, $iUserId=null) {
$sql = "SELECT * FROM
".Config::Get('db.table.stream_event')."
WHERE target_id = ?d AND event_type = ? { AND user_id = ?d } ";
if ($aRow=$this->oDb->selectRow($sql,$iTargetId,$sEventType,is_null($iUserId) ? DBSIMPLE_SKIP : $iUserId)) {
return Engine::GetEntity('ModuleStream_EntityEvent',$aRow);
}
return null;
}
Получает событие по типу и его ID
IsSubscribe()
method
public bool IsSubscribe($iUserId $iUserId, $iTargetUserId $iTargetUserId)
| ||
$iUserId | $iUserId | ID пользователя |
$iTargetUserId | $iTargetUserId | ID пользователя на которого подписан |
{return} | bool |
Source Code: /classes/modules/stream/mapper/Stream.mapper.class.php#183 (show)
public function IsSubscribe($iUserId,$iTargetUserId) {
$sql = 'SELECT * FROM ' . Config::Get('db.table.stream_subscribe') . ' WHERE
user_id = ?d AND target_user_id = ?d LIMIT 0,1';
if ($this->oDb->selectRow($sql, $iUserId, $iTargetUserId)) {
return true;
}
return false;
}
Проверяет подписан ли пользователь на конкретного пользователя
Read()
method
public array Read(array $aEventTypes, array|null $aUsersList, int $iCount, int $iFromId)
| ||
$aEventTypes | array | Список типов событий |
$aUsersList | array|null | Список пользователей, чьи события читать |
$iCount | int | Количество |
$iFromId | int | ID события с которого начинать выборку |
{return} | array |
Source Code: /classes/modules/stream/mapper/Stream.mapper.class.php#95 (show)
public function Read($aEventTypes, $aUsersList, $iCount, $iFromId) {
$sql = 'SELECT * FROM ' . Config::Get('db.table.stream_event'). '
WHERE
event_type IN (?a)
{ AND user_id IN (?a) }
AND publish = 1
{ AND id < ?d }
ORDER BY id DESC
{ LIMIT 0,?d }';
$aReturn=array();
if ($aRows=$this->oDb->select($sql,$aEventTypes,(!is_null($aUsersList) and count($aUsersList)) ? $aUsersList : DBSIMPLE_SKIP,!is_null($iFromId) ? $iFromId : DBSIMPLE_SKIP,!is_null($iCount) ? $iCount : DBSIMPLE_SKIP)) {
foreach ($aRows as $aRow) {
$aReturn[]=Engine::GetEntity('Stream_Event',$aRow);
}
}
return $aReturn;
}
Чтение событий
UpdateEvent()
method
public int UpdateEvent(ModuleStream_EntityEvent $oObject)
| ||
$oObject | ModuleStream_EntityEvent | Объект события |
{return} | int |
Source Code: /classes/modules/stream/mapper/Stream.mapper.class.php#61 (show)
public function UpdateEvent($oObject) {
$sql = "UPDATE ".Config::Get('db.table.stream_event')." SET ?a WHERE id = ?d ";
return $this->oDb->query($sql,$oObject->_getData(array('publish')),$oObject->getId());
}
Обновление события
getTypesList()
method
public array getTypesList(int $iUserId)
| ||
$iUserId | int | ID пользователя |
{return} | array |
Source Code: /classes/modules/stream/mapper/Stream.mapper.class.php#71 (show)
public function getTypesList($iUserId) {
$sql = 'SELECT event_type FROM ' . Config::Get('db.table.stream_user_type') . ' WHERE user_id = ?d';
$aRet = $this->oDb->selectCol($sql, $iUserId);
return $aRet;
}
Получение типов событий, на которые подписан пользователь
getUserSubscribes()
method
public array getUserSubscribes(int $iUserId)
| ||
$iUserId | int | ID пользователя |
{return} | array |
Source Code: /classes/modules/stream/mapper/Stream.mapper.class.php#82 (show)
public function getUserSubscribes($iUserId) {
$sql = 'SELECT target_user_id FROM ' . Config::Get('db.table.stream_subscribe') . ' WHERE user_id = ?d';
return $this->oDb->selectCol($sql, $iUserId);
}
Получение списка пользователей, на которых подписан пользователь
subscribeUser()
method
public void subscribeUser(int $iUserId, int $iTargetUserId)
| ||
$iUserId | int | ID пользователя |
$iTargetUserId | int | ID пользователя на которого подписываем |
Source Code: /classes/modules/stream/mapper/Stream.mapper.class.php#156 (show)
public function subscribeUser($iUserId, $iTargetUserId) {
$sql = 'SELECT * FROM ' . Config::Get('db.table.stream_subscribe') . ' WHERE
user_id = ?d AND target_user_id = ?d';
if (!$this->oDb->select($sql, $iUserId, $iTargetUserId)) {
$sql = 'INSERT INTO ' . Config::Get('db.table.stream_subscribe') . ' SET
user_id = ?d, target_user_id = ?d';
$this->oDb->query($sql, $iUserId, $iTargetUserId);
}
}
Подписать пользователя
switchUserEventType()
method
public bool switchUserEventType(int $iUserId, string $sEventType)
| ||
$iUserId | int | ID пользователя |
$sEventType | string | Тип |
{return} | bool |
Source Code: /classes/modules/stream/mapper/Stream.mapper.class.php#141 (show)
public function switchUserEventType($iUserId, $sEventType) {
$sql = 'SELECT * FROM ' . Config::Get('db.table.stream_user_type') . ' WHERE user_id = ?d AND event_type = ?';
if ($this->oDb->select($sql, $iUserId, $sEventType)) {
$sql = 'DELETE FROM ' . Config::Get('db.table.stream_user_type') . ' WHERE user_id = ?d AND event_type = ?';
} else {
$sql = 'INSERT INTO '. Config::Get('db.table.stream_user_type') . ' SET user_id = ?d , event_type = ?';
}
$this->oDb->query($sql, $iUserId, $sEventType);
}
Редактирование списка событий, на которые подписан юзер
unsubscribeUser()
method
public void unsubscribeUser(int $iUserId, int $iTargetUserId)
| ||
$iUserId | int | ID пользователя |
$iTargetUserId | int | ID пользователя на которого подписываем |
Source Code: /classes/modules/stream/mapper/Stream.mapper.class.php#171 (show)
public function unsubscribeUser($iUserId, $iTargetUserId) {
$sql = 'DELETE FROM ' . Config::Get('db.table.stream_subscribe') . ' WHERE
user_id = ?d AND target_user_id = ?d';
$this->oDb->query($sql, $iUserId, $iTargetUserId);
}
Отписать пользователя