Вход Регистрация
Файл: 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(), $params, 3600 * 24, array(self::CACHE_TAG_ADS_BANNERS, PEEP_CacheManager::TAG_OPTION_INSTANT_LOAD));
    }

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