ModuleUserfeed_MapperUserfeed
Package | modules.userfeed |
---|---|
Inheritance | class ModuleUserfeed_MapperUserfeed » Mapper » LsObject |
Since | 1.0 |
Source Code | /classes/modules/userfeed/mapper/Userfeed.mapper.class.php |
Маппер для работы с БД
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
oDb | DbSimple_Generic_Database | Объект подключения к базе данных | Mapper |
Public Methods
Method | Description | Defined By |
---|---|---|
__construct() | Передаем коннект к БД | Mapper |
getUserSubscribes() | Получить список подписок пользователя | ModuleUserfeed_MapperUserfeed |
readFeed() | Получить ленту топиков по подписке | ModuleUserfeed_MapperUserfeed |
subscribeUser() | Подписать пользователя | ModuleUserfeed_MapperUserfeed |
unsubscribeUser() | Отписать пользователя | ModuleUserfeed_MapperUserfeed |
Method Details
getUserSubscribes()
method
public array getUserSubscribes(int $iUserId)
| ||
$iUserId | int | ID пользователя, для которого загружаются подписки |
{return} | array |
Source Code: /classes/modules/userfeed/mapper/Userfeed.mapper.class.php#64 (show)
public function getUserSubscribes($iUserId) {
$sql = 'SELECT subscribe_type, target_id FROM ' . Config::Get('db.table.userfeed_subscribe') . ' WHERE user_id = ?d';
$aSubscribes = $this->oDb->select($sql, $iUserId);
$aResult = array('blogs' => array(), 'users' => array());
if (!count($aSubscribes)) return $aResult;
foreach ($aSubscribes as $aSubscribe) {
if($aSubscribe['subscribe_type'] == ModuleUserfeed::SUBSCRIBE_TYPE_BLOG) {
$aResult['blogs'][] = $aSubscribe['target_id'];
} elseif ($aSubscribe['subscribe_type'] == ModuleUserfeed::SUBSCRIBE_TYPE_USER) {
$aResult['users'][] = $aSubscribe['target_id'];
}
}
return $aResult;
}
Получить список подписок пользователя
readFeed()
method
public array readFeed(array $aUserSubscribes, int $iCount, int $iFromId)
| ||
$aUserSubscribes | array | Список подписок пользователя |
$iCount | int | Число получаемых записей (если null, из конфига) |
$iFromId | int | Получить записи, начиная с указанной |
{return} | array |
Source Code: /classes/modules/userfeed/mapper/Userfeed.mapper.class.php#88 (show)
public function readFeed($aUserSubscribes, $iCount, $iFromId) {
$sql = "
SELECT
t.topic_id
FROM
".Config::Get('db.table.topic')." as t,
".Config::Get('db.table.blog')." as b
WHERE
t.topic_publish = 1
AND t.blog_id=b.blog_id
AND b.blog_type!='close'
{ AND t.topic_id < ?d }
AND ( 1=0 { OR t.blog_id IN (?a) } { OR t.user_id IN (?a) } )
ORDER BY t.topic_id DESC
{ LIMIT 0, ?d }";
$aTopics=$aTopics=$this->oDb->selectCol($sql,
$iFromId ? $iFromId : DBSIMPLE_SKIP,
count($aUserSubscribes['blogs']) ? $aUserSubscribes['blogs'] : DBSIMPLE_SKIP,
count($aUserSubscribes['users']) ? $aUserSubscribes['users'] : DBSIMPLE_SKIP,
$iCount ? $iCount : DBSIMPLE_SKIP
);
return $aTopics;
}
Получить ленту топиков по подписке
subscribeUser()
method
public bool subscribeUser(int $iUserId, int $iSubscribeType, int $iTargetId)
| ||
$iUserId | int | ID подписываемого пользователя |
$iSubscribeType | int | Тип подписки (см. константы класса) |
$iTargetId | int | ID цели подписки |
{return} | bool |
Source Code: /classes/modules/userfeed/mapper/Userfeed.mapper.class.php#33 (show)
public function subscribeUser($iUserId, $iSubscribeType, $iTargetId) {
$sql = 'SELECT * FROM ' . Config::Get('db.table.userfeed_subscribe') . ' WHERE
user_id = ?d AND subscribe_type = ?d AND target_id = ?d';
if (!$this->oDb->select($sql, $iUserId, $iSubscribeType, $iTargetId)) {
$sql = 'INSERT INTO ' . Config::Get('db.table.userfeed_subscribe') . ' SET
user_id = ?d, subscribe_type = ?d, target_id = ?d';
$this->oDb->query($sql, $iUserId, $iSubscribeType, $iTargetId);
return true;
}
return false;
}
Подписать пользователя
unsubscribeUser()
method
public bool unsubscribeUser(int $iUserId, int $iSubscribeType, int $iTargetId)
| ||
$iUserId | int | ID подписываемого пользователя |
$iSubscribeType | int | Тип подписки (см. константы класса) |
$iTargetId | int | ID цели подписки |
{return} | bool |
Source Code: /classes/modules/userfeed/mapper/Userfeed.mapper.class.php#52 (show)
public function unsubscribeUser($iUserId, $iSubscribeType, $iTargetId) {
$sql = 'DELETE FROM ' . Config::Get('db.table.userfeed_subscribe') . ' WHERE
user_id = ?d AND subscribe_type = ?d AND target_id = ?d';
$this->oDb->query($sql, $iUserId, $iSubscribeType, $iTargetId);
return true;
}
Отписать пользователя