ModuleMedia_MapperMedia

Package application.modules.media
Inheritance class ModuleMedia_MapperMedia » Mapper » LsObject
Since 2.0
Source Code /application/classes/modules/media/mapper/Media.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
AttachBehavior() Присоединяет поведение к объекту LsObject
DetachBehavior() Отсоединяет поведение от объекта LsObject
GetBehavior() Возвращает объект поведения по его имени LsObject
GetBehaviors() Возвращает все объекты поведения LsObject
GetMediaByTarget() ModuleMedia_MapperMedia
GetMediaByTargetTmp() ModuleMedia_MapperMedia
RemoveBehaviorHook() Удаляет хук поведения LsObject
RemoveTargetByTypeAndId() ModuleMedia_MapperMedia
RunBehaviorHook() Запускает хук поведения на выполнение LsObject
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля LsObject
__clone() При клонировании сбрасываем поведения LsObject
__construct() Передаем коннект к БД Mapper
__get() Обработка доступа к объекты поведения LsObject

Protected Methods

Hide inherited methods

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

Method Details

GetFieldsRelationTarget() method
protected void GetFieldsRelationTarget()
Source Code: /application/classes/modules/media/mapper/Media.mapper.class.php#90 (show)
protected function GetFieldsRelationTarget()
{
    
$oEntityJoinSample Engine::GetEntity('ModuleMedia_EntityTarget');
    
/**
     * Формируем список полей для возврата у таблице связей
     */
    
$aFieldsJoinReturn $oEntityJoinSample->_getFields();
    foreach (
$aFieldsJoinReturn as $k => $sField) {
        if (!
is_numeric($k)) {
            
// Удаляем служебные (примари) поля
            
unset($aFieldsJoinReturn[$k]);
            continue;
        }
        
$aFieldsJoinReturn[$k] = "t.`{$sField}` as t_join_{$sField}";
    }
    
$sFieldsJoinReturn join(', '$aFieldsJoinReturn);
    return 
$sFieldsJoinReturn;
}

GetMediaByTarget() method
public void GetMediaByTarget($sTargetType, $iTargetId, $iUserId=NULL)
$sTargetType
$iTargetId
$iUserId
Source Code: /application/classes/modules/media/mapper/Media.mapper.class.php#31 (show)
public function GetMediaByTarget($sTargetType$iTargetId$iUserId null)
{
    
$sFieldsJoinReturn $this->GetFieldsRelationTarget();
    
$sql "SELECT
                
{$sFieldsJoinReturn},
                m.*
            FROM " 
Config::Get('db.table.media_target') . " AS t
                 JOIN " 
Config::Get('db.table.media') . " as m on ( m.id=t.media_id { and m.user_id = ?d } )
            WHERE
                t.target_id = ?d
                AND
                t.target_type = ?
            ORDER BY
                m.id desc
            limit 0,500"
;

    
$aResult = array();
    if (
$aRows $this->oDb->select($sql$iUserId $iUserId DBSIMPLE_SKIP$iTargetId$sTargetType)) {
        
$aResult $this->PrepareResultTarget($aRows);
    }
    return 
$aResult;
}

GetMediaByTargetTmp() method
public void GetMediaByTargetTmp($sTargetTmp, $iUserId=NULL)
$sTargetTmp
$iUserId
Source Code: /application/classes/modules/media/mapper/Media.mapper.class.php#54 (show)
public function GetMediaByTargetTmp($sTargetTmp$iUserId null)
{
    
$sFieldsJoinReturn $this->GetFieldsRelationTarget();
    
$sql "SELECT
                
{$sFieldsJoinReturn},
                m.*
            FROM " 
Config::Get('db.table.media_target') . " AS t
                 JOIN " 
Config::Get('db.table.media') . " as m on ( m.id=t.media_id { and m.user_id = ?d } )
            WHERE
                t.target_tmp = ?
            ORDER BY
                m.id desc
            limit 0,500"
;

    
$aResult = array();
    if (
$aRows $this->oDb->select($sql$iUserId $iUserId DBSIMPLE_SKIP$sTargetTmp)) {
        
$aResult $this->PrepareResultTarget($aRows);
    }
    return 
$aResult;
}

PrepareResultTarget() method
protected void PrepareResultTarget($aRows)
$aRows
Source Code: /application/classes/modules/media/mapper/Media.mapper.class.php#109 (show)
protected function PrepareResultTarget($aRows)
{
    
$aResult = array();
    foreach (
$aRows as $aRow) {
        
$aData = array();
        
$aDataRelation = array();
        foreach (
$aRow as $k => $v) {
            if (
strpos($k't_join_') === 0) {
                
$aDataRelation[str_replace('t_join_'''$k)] = $v;
            } else {
                
$aData[$k] = $v;
            }
        }
        
$aData['_relation_entity'] = Engine::GetEntity('ModuleMedia_EntityTarget'$aDataRelation);
        
$oEntity Engine::GetEntity('ModuleMedia_EntityMedia'$aData);
        
$oEntity->_SetIsNew(false);
        
$aResult[] = $oEntity;
    }
    return 
$aResult;
}

RemoveTargetByTypeAndId() method
public void RemoveTargetByTypeAndId($sTargetType, $iTargetId)
$sTargetType
$iTargetId
Source Code: /application/classes/modules/media/mapper/Media.mapper.class.php#75 (show)
public function RemoveTargetByTypeAndId($sTargetType$iTargetId)
{
    
$sql "DELETE
            FROM " 
Config::Get('db.table.media_target') . "
            WHERE
                target_id = ?d
                AND
                target_type = ?
                "
;
    if (
$this->oDb->query($sql$iTargetId$sTargetType) !== false) {
        return 
true;
    }
    return 
false;
}