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

Hide inherited properties

PropertyTypeDescriptionDefined By
oDb DbSimple_Generic_Database Объект подключения к базе данных Mapper

Public Methods

Hide inherited methods

MethodDescriptionDefined 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;
}

Отписать пользователя