ModuleWall_MapperWall

Package application.modules.wall
Inheritance class ModuleWall_MapperWall » Mapper » LsObject
Since 1.0
Source Code /application/classes/modules/wall/mapper/Wall.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
AddWall() Добавление записи на стену ModuleWall_MapperWall
AttachBehavior() Присоединяет поведение к объекту LsObject
DeleteWallById() Удаление записи ModuleWall_MapperWall
DeleteWallsByPid() ModuleWall_MapperWall
DetachBehavior() Отсоединяет поведение от объекта LsObject
GetBehavior() Возвращает объект поведения по его имени LsObject
GetBehaviors() Возвращает все объекты поведения LsObject
GetCountWall() Возвращает число сообщений на стене по фильтру ModuleWall_MapperWall
GetWall() Получение списка записей по фильтру ModuleWall_MapperWall
GetWallsByArrayId() Получение записей по ID, без дополнительных данных ModuleWall_MapperWall
RemoveBehaviorHook() Удаляет хук поведения LsObject
RunBehaviorHook() Запускает хук поведения на выполнение LsObject
UpdateWall() Обновление записи ModuleWall_MapperWall
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля LsObject
__clone() При клонировании сбрасываем поведения LsObject
__construct() Передаем коннект к БД Mapper
__get() Обработка доступа к объекты поведения LsObject

Protected Methods

Hide inherited methods

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

Method Details

AddWall() method
public bool|int AddWall(ModuleWall_EntityWall $oWall)
$oWall ModuleWall_EntityWall Объект записи на стене
{return} bool|int
Source Code: /application/classes/modules/wall/mapper/Wall.mapper.class.php#36 (show)
public function AddWall($oWall)
{
    
$sql "INSERT INTO " Config::Get('db.table.wall') . " SET ?a ";
    if (
$iId $this->oDb->query($sql$oWall->_getData())) {
        return 
$iId;
    }
    return 
false;
}

Добавление записи на стену

DeleteWallById() method
public bool DeleteWallById(int $iId)
$iId int ID записи
{return} bool
Source Code: /application/classes/modules/wall/mapper/Wall.mapper.class.php#71 (show)
public function DeleteWallById($iId)
{
    
$sql "DELETE FROM " Config::Get('db.table.wall') . " WHERE id = ?d ";
    
$res $this->oDb->query($sql$iId);
    return 
$this->IsSuccessful($res);
}

Удаление записи

DeleteWallsByPid() method
public bool DeleteWallsByPid(int $iPid)
$iPid int ID родительской записи
{return} bool
Source Code: /application/classes/modules/wall/mapper/Wall.mapper.class.php#82 (show)
public function DeleteWallsByPid($iPid)
{
    
$sql "DELETE FROM " Config::Get('db.table.wall') . " WHERE pid = ?d ";
    
$res $this->oDb->query($sql$iPid);
    return 
$this->IsSuccessful($res);
}

GetCountWall() method
public int GetCountWall(array $aFilter)
$aFilter array Фильтр
{return} int
Source Code: /application/classes/modules/wall/mapper/Wall.mapper.class.php#159 (show)
public function GetCountWall($aFilter)
{
    
$sql "SELECT
                count(*) as c
            FROM
                " 
Config::Get('db.table.wall') . "
            WHERE
                1 = 1
                { AND pid = ?d }
                { AND pid IS NULL AND 1 = ?d }
                { AND wall_user_id = ?d }
                { AND ip = ? }
                { AND id = ?d }
                { AND id < ?d }
                { AND id > ?d };
                "
;
    if (
$aRow $this->oDb->selectRow($sql,
        (isset(
$aFilter['pid']) and !is_null($aFilter['pid'])) ? $aFilter['pid'] : DBSIMPLE_SKIP,
        (
array_key_exists('pid'$aFilter) and is_null($aFilter['pid'])) ? DBSIMPLE_SKIP,
        isset(
$aFilter['wall_user_id']) ? $aFilter['wall_user_id'] : DBSIMPLE_SKIP,
        isset(
$aFilter['ip']) ? $aFilter['ip'] : DBSIMPLE_SKIP,
        isset(
$aFilter['id']) ? $aFilter['id'] : DBSIMPLE_SKIP,
        isset(
$aFilter['id_less']) ? $aFilter['id_less'] : DBSIMPLE_SKIP,
        isset(
$aFilter['id_more']) ? $aFilter['id_more'] : DBSIMPLE_SKIP
    
)
    ) {
        return 
$aRow['c'];
    }
    return 
0;
}

Возвращает число сообщений на стене по фильтру

GetWall() method
public array GetWall(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/wall/mapper/Wall.mapper.class.php#99 (show)
public function GetWall($aFilter$aOrder, &$iCount$iCurrPage$iPerPage)
{
    
$aOrderAllow = array('id''date_add');
    
$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 ';
    }


    
$sql "SELECT
                id
            FROM
                " 
Config::Get('db.table.wall') . "
            WHERE
                1 = 1
                { AND pid = ?d }
                { AND pid IS NULL AND 1 = ?d }
                { AND wall_user_id = ?d }
                { AND user_id = ?d }
                { AND ip = ? }
                { AND id = ?d }
                { AND id < ?d }
                { AND id > ?d }
            ORDER by 
{$sOrder}
            LIMIT ?d, ?d ;
                "
;
    
$aResult = array();
    if (
$aRows $this->oDb->selectPage($iCount$sql,
        (isset(
$aFilter['pid']) and !is_null($aFilter['pid'])) ? $aFilter['pid'] : DBSIMPLE_SKIP,
        (
array_key_exists('pid'$aFilter) and is_null($aFilter['pid'])) ? DBSIMPLE_SKIP,
        isset(
$aFilter['wall_user_id']) ? $aFilter['wall_user_id'] : DBSIMPLE_SKIP,
        isset(
$aFilter['user_id']) ? $aFilter['user_id'] : DBSIMPLE_SKIP,
        isset(
$aFilter['ip']) ? $aFilter['ip'] : DBSIMPLE_SKIP,
        isset(
$aFilter['id']) ? $aFilter['id'] : DBSIMPLE_SKIP,
        isset(
$aFilter['id_less']) ? $aFilter['id_less'] : DBSIMPLE_SKIP,
        isset(
$aFilter['id_more']) ? $aFilter['id_more'] : DBSIMPLE_SKIP,
        (
$iCurrPage 1) * $iPerPage$iPerPage
    
)
    ) {
        foreach (
$aRows as $aRow) {
            
$aResult[] = $aRow['id'];
        }
    }
    return 
$aResult;
}

Получение списка записей по фильтру

GetWallsByArrayId() method
public array GetWallsByArrayId(array $aArrayId)
$aArrayId array Список ID сообщений
{return} array
Source Code: /application/classes/modules/wall/mapper/Wall.mapper.class.php#196 (show)
public function GetWallsByArrayId($aArrayId)
{
    if (!
is_array($aArrayId) or count($aArrayId) == 0) {
        return array();
    }

    
$sql "SELECT
                *
            FROM
                " 
Config::Get('db.table.wall') . "
            WHERE
                id IN(?a)
            ORDER BY FIELD(id,?a) "
;
    
$aResult = array();
    if (
$aRows $this->oDb->select($sql$aArrayId$aArrayId)) {
        foreach (
$aRows as $aRow) {
            
$aResult[] = Engine::GetEntity('Wall'$aRow);
        }
    }
    return 
$aResult;
}

Получение записей по ID, без дополнительных данных

UpdateWall() method
public bool UpdateWall(ModuleWall_EntityWall $oWall)
$oWall ModuleWall_EntityWall Объект записи на стене
{return} bool
Source Code: /application/classes/modules/wall/mapper/Wall.mapper.class.php#51 (show)
public function UpdateWall($oWall)
{
    
$sql "UPDATE " Config::Get('db.table.wall') . "
        SET 
             count_reply = ?d,
             last_reply = ?
        WHERE id = ?d
    "
;
    
$res $this->oDb->query($sql$oWall->getCountReply(),
        
$oWall->getLastReply(),
        
$oWall->getId());
    return 
$this->IsSuccessful($res);
}

Обновление записи