ModuleSubscribe_MapperSubscribe

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

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
_aBehaviors Список поведений в виде готовых объектов, формируется автоматически LsObject
aBehaviors array Список поведений LsObject
oDb DbSimple_Database Объект подключения к базе данных Mapper

Public Methods

Hide inherited methods

MethodDescriptionDefined By
AddBehaviorHook() Добавляет хук поведения LsObject
AddSubscribe() Добавляет подписку в БД ModuleSubscribe_MapperSubscribe
AttachBehavior() Присоединяет поведение к объекту LsObject
ChangeSubscribeMail() Смена емайла в подписках ModuleSubscribe_MapperSubscribe
DetachBehavior() Отсоединяет поведение от объекта LsObject
GetBehavior() Возвращает объект поведения по его имени LsObject
GetBehaviors() Возвращает все объекты поведения LsObject
GetSubscribeByTypeAndMail() Получение подписки по типы и емайлу ModuleSubscribe_MapperSubscribe
GetSubscribes() Возвращает список подписок по фильтру ModuleSubscribe_MapperSubscribe
RemoveBehaviorHook() Удаляет хук поведения LsObject
RunBehaviorHook() Запускает хук поведения на выполнение LsObject
UpdateSubscribe() Обновление подписки ModuleSubscribe_MapperSubscribe
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля LsObject
__clone() При клонировании сбрасываем поведения LsObject
__construct() Передаем коннект к БД Mapper
__get() Обработка доступа к объекты поведения LsObject

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
IsSuccessful() Mapper
PrepareBehaviors() Инициализация поведений LsObject

Method Details

AddSubscribe() method
public int|bool AddSubscribe(ModuleSubscribe_EntitySubscribe $oSubscribe)
$oSubscribe ModuleSubscribe_EntitySubscribe Объект подписки
{return} int|bool
Source Code: /application/classes/modules/subscribe/mapper/Subscribe.mapper.class.php#36 (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;
}

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

ChangeSubscribeMail() method
public int ChangeSubscribeMail(string $sMailOld, string $sMailNew, int|null $iUserId=NULL)
$sMailOld string Старый емайл
$sMailNew string Новый емайл
$iUserId int|null Id пользователя
{return} int
Source Code: /application/classes/modules/subscribe/mapper/Subscribe.mapper.class.php#90 (show)
public function ChangeSubscribeMail($sMailOld$sMailNew$iUserId null)
{
    
$sql "UPDATE " Config::Get('db.table.subscribe') . "
        SET
             mail = ?
        WHERE mail = ? { and user_id = ?d }
    "
;
    
$res $this->oDb->query($sql$sMailNew$sMailOld$iUserId $iUserId DBSIMPLE_SKIP);
    return 
$this->IsSuccessful($res);
}

Смена емайла в подписках

GetSubscribeByTypeAndMail() method
public ModuleSubscribe_EntitySubscribe|null GetSubscribeByTypeAndMail(string $sType, string $sMail)
$sType string Тип
$sMail string Емайл
{return} ModuleSubscribe_EntitySubscribe|null
Source Code: /application/classes/modules/subscribe/mapper/Subscribe.mapper.class.php#52 (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: /application/classes/modules/subscribe/mapper/Subscribe.mapper.class.php#111 (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: /application/classes/modules/subscribe/mapper/Subscribe.mapper.class.php#67 (show)
public function UpdateSubscribe($oSubscribe)
{
    
$sql "UPDATE " Config::Get('db.table.subscribe') . "
        SET 
             status = ?, 
             date_remove = ?
        WHERE id = ?d
    "
;
    
$res $this->oDb->query($sql$oSubscribe->getStatus(),
        
$oSubscribe->getDateRemove(),
        
$oSubscribe->getId());
    return 
$this->IsSuccessful($res);
}

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