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

class NOTIFICATIONS_BOL_SendQueueDao extends PEEP_BaseDao
{
    
/**sendQueueDao
     * Singleton instance.
     *
     * @var NOTIFICATIONS_BOL_SendQueueDao
     */
    
private static $classInstance;

    
/**
     * Returns an instance of class (singleton pattern implementation).
     *
     * @return NOTIFICATIONS_BOL_SendQueueDao
     */
    
public static function getInstance()
    {
        if ( 
self::$classInstance === null )
        {
            
self::$classInstance = new self();
        }

        return 
self::$classInstance;
    }

    
/**
     * @see PEEP_BaseDao::getDtoClassName()
     *
     */
    
public function getDtoClassName()
    {
        return 
'NOTIFICATIONS_BOL_SendQueue';
    }

    
/**
     * @see PEEP_BaseDao::getTableName()
     *
     */
    
public function getTableName()
    {
        return 
PEEP_DB_PREFIX 'notifications_send_queue';
    }

    public function 
fillData$period$defaultSchedules )
    {
        
$usersDao BOL_UserDao::getInstance();
        
$scheduleDao NOTIFICATIONS_BOL_ScheduleDao::getInstance();

        
$query "REPLACE INTO " $this->getTableName() . " (`userId`, `timeStamp`) SELECT DISTINCT u.id, UNIX_TIMESTAMP() FROM " $usersDao->getTableName() . " u
                    LEFT JOIN " 
$scheduleDao->getTableName() . " s ON u.id = s.userId
                    WHERE (IF( s.schedule IS NULL, :ds, s.schedule )=:as  AND u.activityStamp < :activityStamp ) OR IF( s.schedule IS NULL, :ds, s.schedule )=:is ORDER BY u.activityStamp DESC"
;

        return 
$this->dbo->query($query, array(
            
'activityStamp' => time() - $period,
            
'ds' => $defaultSchedules,
            
'is' => NOTIFICATIONS_BOL_Service::SCHEDULE_IMMEDIATELY,
            
'as' => NOTIFICATIONS_BOL_Service::SCHEDULE_AUTO
        
));
    }

    public function 
findList$count )
    {
        
$example = new PEEP_Example();
        
$example->setLimitClause(0$count);
        
$example->setOrder('timeStamp DESC');

        return 
$this->findListByExample($example);
    }
}
Онлайн: 0
Реклама