ModuleWall_MapperWall

Package modules.wall
Inheritance class ModuleWall_MapperWall » Mapper » LsObject
Since 1.0
Source Code /classes/modules/wall/mapper/Wall.mapper.class.php
Маппер для работы с БД

Protected Properties

Hide inherited properties

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

Public Methods

Hide inherited methods

MethodDescriptionDefined By
AddWall() Добавление записи на стену ModuleWall_MapperWall
DeleteWallById() Удаление записи ModuleWall_MapperWall
DeleteWallsByPid() ModuleWall_MapperWall
GetCountWall() Возвращает число сообщений на стене по фильтру ModuleWall_MapperWall
GetWall() Получение списка записей по фильтру ModuleWall_MapperWall
GetWallsByArrayId() Получение записей по ID, без дополнительных данных ModuleWall_MapperWall
UpdateWall() Обновление записи ModuleWall_MapperWall
__construct() Передаем коннект к БД Mapper

Method Details

AddWall() method
public bool|int AddWall(ModuleWall_EntityWall $oWall)
$oWall ModuleWall_EntityWall Объект записи на стене
{return} bool|int
Source Code: /classes/modules/wall/mapper/Wall.mapper.class.php#31 (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: /classes/modules/wall/mapper/Wall.mapper.class.php#61 (show)
public function DeleteWallById($iId) {
    
$sql "DELETE FROM ".Config::Get('db.table.wall')." WHERE id = ?d ";
    return 
$this->oDb->query($sql,$iId);
}

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

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

GetCountWall() method
public int GetCountWall(array $aFilter)
$aFilter array Фильтр
{return} int
Source Code: /classes/modules/wall/mapper/Wall.mapper.class.php#140 (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: /classes/modules/wall/mapper/Wall.mapper.class.php#83 (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: /classes/modules/wall/mapper/Wall.mapper.class.php#174 (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: /classes/modules/wall/mapper/Wall.mapper.class.php#44 (show)
public function UpdateWall($oWall) {
    
$sql "UPDATE ".Config::Get('db.table.wall')."
        SET 
             count_reply = ?d,
             last_reply = ?
        WHERE id = ?d
    "
;
    return 
$this->oDb->query($sql,$oWall->getCountReply(),
                             
$oWall->getLastReply(),
                             
$oWall->getId());
}

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