Вход Регистрация
Файл: 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->visitTimestampfalse);
        }

        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
Реклама