Вход Регистрация
Файл: plugins/advertisement/bol/banner_dao.php
Строк: 114
<?php

class ADS_BOL_BannerDao extends PEEP_BaseDao
{
    const 
LABEL 'label';
    const 
CODE 'code';
    const 
CACHE_TAG_ADS_BANNERS 'ads.position_banner_cache';

    private static 
$classInstance;

    public static function 
getInstance()
    {
        if ( 
self::$classInstance === null )
        {
            
self::$classInstance = new self();
        }

        return 
self::$classInstance;
    }


    protected function 
__construct()
    {
        
parent::__construct();
    }

 
    public function 
getDtoClassName()
    {
        return 
'ADS_BOL_Banner';
    }

    public function 
getTableName()
    {
        return 
PEEP_DB_PREFIX 'ads_banner';
    }

    public function 
findAllBannersInfo()
    {
        
$query "SELECT `b`.*, `l`." ADS_BOL_BannerLocationDao::LOCATION " FROM `" $this->getTableName() . "` AS `b`
            LEFT JOIN `" 
ADS_BOL_BannerLocationDao::getInstance()->getTableName() . "` AS `l` ON ( `b`.`id` = `l`.`" ADS_BOL_BannerLocationDao::BANNER_ID "` )";

        return 
$this->dbo->queryForList($query);
    }

    public function 
findPlaceBannerList$pluginKey$position$location null )
    {
        
$query "SELECT `b`.* FROM `" $this->getTableName() . "` AS `b`
            LEFT JOIN `" 
ADS_BOL_BannerPositionDao::getInstance()->getTableName() . "` AS `bp` ON (`b`.`id` = `bp`.`" ADS_BOL_BannerPositionDao::BANNER_ID "`)
            LEFT JOIN `" 
ADS_BOL_BannerLocationDao::getInstance()->getTableName() . "` AS `bl` ON (`b`.`id` = `bl`.`" ADS_BOL_BannerLocationDao::BANNER_ID "`)
            WHERE `bp`.`" 
ADS_BOL_BannerPositionDao::POSITION "` = :position AND `bp`.`" ADS_BOL_BannerPositionDao::PLUGIN_KEY "` IN ( :pluginKey, 'base' )
                AND ( `bl`.`" 
ADS_BOL_BannerLocationDao::LOCATION "` IS NULL" . ( $location === null ')' " OR `bl`.`" ADS_BOL_BannerLocationDao::LOCATION "` = :location)" );

        
$params = array('pluginKey' => $pluginKey'position' => $position);

        if ( 
$location != null )
        {
            
$params['location'] = $location;
        }

        return 
$this->dbo->queryForObjectList($query$this->getDtoClassName(), $params3600 24, array(self::CACHE_TAG_ADS_BANNERSPEEP_CacheManager::TAG_OPTION_INSTANT_LOAD));
    }

    protected function 
clearCache()
    {
        
PEEP::getCacheManager()->clean(array(self::CACHE_TAG_ADS_BANNERS));
    }
}
Онлайн: 0
Реклама