ModuleSubscribe_MapperSubscribe

Package modules.subscribe
Inheritance class ModuleSubscribe_MapperSubscribe » Mapper » LsObject
Since 1.0
Source Code /classes/modules/subscribe/mapper/Subscribe.mapper.class.php
Объект маппера для работы с БД

Protected Properties

Hide inherited properties

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

Public Methods

Hide inherited methods

MethodDescriptionDefined By
AddSubscribe() Добавляет подписку в БД ModuleSubscribe_MapperSubscribe
GetSubscribeByTypeAndMail() Получение подписки по типы и емайлу ModuleSubscribe_MapperSubscribe
GetSubscribes() Возвращает список подписок по фильтру ModuleSubscribe_MapperSubscribe
UpdateSubscribe() Обновление подписки ModuleSubscribe_MapperSubscribe
__construct() Передаем коннект к БД Mapper

Method Details

AddSubscribe() method
public int|bool AddSubscribe(ModuleSubscribe_EntitySubscribe $oSubscribe)
$oSubscribe ModuleSubscribe_EntitySubscribe Объект подписки
{return} int|bool
Source Code: /classes/modules/subscribe/mapper/Subscribe.mapper.class.php#31 (show)
public function AddSubscribe($oSubscribe) {
    
$sql "INSERT INTO ".Config::Get('db.table.subscribe')." SET ?a ";
    if (
$iId=$this->oDb->query($sql,$oSubscribe->_getData())) {
        return 
$iId;
    }
    return 
false;
}

Добавляет подписку в БД

GetSubscribeByTypeAndMail() method
public ModuleSubscribe_EntitySubscribe|null GetSubscribeByTypeAndMail(string $sType, string $sMail)
$sType string Тип
$sMail string Емайл
{return} ModuleSubscribe_EntitySubscribe|null
Source Code: /classes/modules/subscribe/mapper/Subscribe.mapper.class.php#45 (show)
public function GetSubscribeByTypeAndMail($sType,$sMail) {
    
$sql "SELECT * FROM ".Config::Get('db.table.subscribe')." WHERE target_type = ? and mail = ?";
    if (
$aRow=$this->oDb->selectRow($sql,$sType,$sMail)) {
        return 
Engine::GetEntity('Subscribe',$aRow);
    }
    return 
null;
}

Получение подписки по типы и емайлу

GetSubscribes() method
public array GetSubscribes(array $aFilter, array $aOrder, int &$iCount, int $iCurrPage, int $iPerPage)
$aFilter array Фильтр
$aOrder array Сортировка
$iCount int Возвращает общее количество элементов
$iCurrPage int Номер страницы
$iPerPage int Количество элементов на страницу
{return} array
Source Code: /classes/modules/subscribe/mapper/Subscribe.mapper.class.php#79 (show)
public function GetSubscribes($aFilter,$aOrder,&$iCount,$iCurrPage,$iPerPage) {
    
$aOrderAllow=array('id','date_add','status');
    
$sOrder='';
    foreach (
$aOrder as $key=>$value) {
        if (!
in_array($key,$aOrderAllow)) {
            unset(
$aOrder[$key]);
        } elseif (
in_array($value,array('asc','desc'))) {
            
$sOrder.={$key} {$value},";
        }
    }
    
$sOrder=trim($sOrder,',');
    if (
$sOrder=='') {
        
$sOrder=' id desc ';
    }

    if (isset(
$aFilter['exclude_mail']) and !is_array($aFilter['exclude_mail'])) {
        
$aFilter['exclude_mail']=array($aFilter['exclude_mail']);
    }

    
$sql "SELECT
                *
            FROM
                "
.Config::Get('db.table.subscribe')."
            WHERE
                1 = 1
                { AND target_type = ? }
                { AND target_id = ?d }
                { AND mail = ? }
                { AND mail not IN (?a) }
                { AND `key` = ? }
                { AND status = ?d }
            ORDER by 
{$sOrder}
            LIMIT ?d, ?d ;
                "
;
    
$aResult=array();
    if (
$aRows=$this->oDb->selectPage($iCount,$sql,
                                      isset(
$aFilter['target_type']) ? $aFilter['target_type'] : DBSIMPLE_SKIP,
                                      isset(
$aFilter['target_id']) ? $aFilter['target_id'] : DBSIMPLE_SKIP,
                                      isset(
$aFilter['mail']) ? $aFilter['mail'] : DBSIMPLE_SKIP,
                                      (isset(
$aFilter['exclude_mail']) and count($aFilter['exclude_mail']) ) ? $aFilter['exclude_mail'] : DBSIMPLE_SKIP,
                                      isset(
$aFilter['key']) ? $aFilter['key'] : DBSIMPLE_SKIP,
                                      isset(
$aFilter['status']) ? $aFilter['status'] : DBSIMPLE_SKIP,
                                      (
$iCurrPage-1)*$iPerPage$iPerPage
    
)) {
        foreach (
$aRows as $aRow) {
            
$aResult[]=Engine::GetEntity('Subscribe',$aRow);
        }
    }
    return 
$aResult;
}

Возвращает список подписок по фильтру

UpdateSubscribe() method
public int UpdateSubscribe(ModuleSubscribe_EntitySubscribe $oSubscribe)
$oSubscribe ModuleSubscribe_EntitySubscribe Объект подписки
{return} int
Source Code: /classes/modules/subscribe/mapper/Subscribe.mapper.class.php#58 (show)
public function UpdateSubscribe($oSubscribe) {
    
$sql "UPDATE ".Config::Get('db.table.subscribe').
        SET 
             status = ?, 
             date_remove = ?
        WHERE id = ?d
    "
;
    return 
$this->oDb->query($sql,$oSubscribe->getStatus(),
                             
$oSubscribe->getDateRemove(),
                             
$oSubscribe->getId());
}

Обновление подписки