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

final class PVISITORS_BOL_Service
{
    
/**
     * @var PVISITORS_BOL_VisitorDao
     */
    
private $visitorDao;

    
/**
     * Class instance
     *
     * @var PVISTORS_BOL_Service
     */
    
private static $classInstance;

    
/**
     * Class constructor
     *
     */
    
private function __construct()
    {
        
$this->visitorDao = PVISITORS_BOL_VisitorDao::getInstance();
    }

    
/**
     * Returns class instance
     *
     * @return PVISITORS_BOL_Service
     */
    
public static function getInstance()
    {
        if ( 
null === self::$classInstance )
        {
            
self::$classInstance = new self();
        }

        return 
self::$classInstance;
    }

    
/**
     * @param $userId
     * @param $visitorId
     * @return bool
     */
    
public function trackVisit( $userId, $visitorId )
    {
        if ( !
$userId || !$visitorId || ($visitorId == $userId) || BOL_AuthorizationService::getInstance()->isModerator($visitorId) )
        {
            return;
        }

        
$visitor = $this->visitorDao->findVisitor($userId, $visitorId);

        if ( 
$visitor )
        {
            
$visitor->visitTimestamp = time();
            
$this->visitorDao->save($visitor);

            return 
true;
        }

        
$visitor = new PVISITORS_BOL_Visitor();
        
$visitor->userId = $userId;
        
$visitor->visitorId = $visitorId;
        
$visitor->viewed = 0;
        
$visitor->visitTimestamp = time();

        
$this->visitorDao->save($visitor);

        return 
true;
    }

    
/**
     * @param $userId
     * @param $page
     * @param $limit
     * @return array
     */
    
public function findVisitorsForUser( $userId, $page, $limit )
    {
        if ( !
$userId )
        {
            return array();
        }

        
$visitors = $this->visitorDao->findUserVisitors($userId, $page, $limit);

        foreach ( 
$visitors as &$g )
        {
            
$g->visitTimestamp = UTIL_DateTime::formatDate($g->visitTimestamp, false);
        }

        return 
$visitors;
    }

    
/**
     * @param $userId
     * @param $page
     * @param $limit
     * @return array
     */
    
public function findVisitorUsers( $userId, $page, $limit )
    {
        if ( !
$userId )
        {
            return array();
        }

        
$visitors = $this->visitorDao->findVisitorUsers($userId, $page, $limit);

        return 
$visitors;
    }

    
/**
     * @param $userId
     * @return int
     */
    
public function findNewVisitorsCount( $userId )
    {
        if ( !
$userId )
        {
            return 
0;
        }

        return (int) 
$this->visitorDao->countNewVisitors($userId);
    }

    
/**
     * @param $userId
     * @return int
     */
    
public function countVisitorsForUser( $userId )
    {
        return 
$this->visitorDao->countUserVisitors($userId);
    }

    
/**
     * @return bool
     */
    
public function checkExpiredVisitors()
    {
        
$months = (int) PEEP::getConfig()->getValue('pvisitors', 'store_period');
        
$timestamp = $months * 30 * 24 * 60 * 60;

        
$this->visitorDao->deleteExpired($timestamp);

        return 
true;
    }

    
/**
     * @param $userId
     * @return bool
     */
    
public function deleteUserVisitors( $userId )
    {
        
$this->visitorDao->deleteUserVisitors($userId);

        return 
true;
    }

    public function 
getViewedStatusByVisitorsIds( $userId, $visitorIds )
    {
        return 
$this->visitorDao->getViewedStatusByVisitorIds($userId, $visitorIds);
    }

    public function 
findVisitorsByVisitorIds( $userId, $visitorIds )
    {
        return 
$this->visitorDao->findVisitorsByVisitorIds($userId, $visitorIds);
    }

    public function 
setViewedStatusByVisitorIds( $userId, $visitorIds, $viewed = true )
    {
        return 
$this->visitorDao->setViewedStatusByVisitorIds($userId, $visitorIds, $viewed);
    }
}
Онлайн: 2
Реклама