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

class PVISITORS_CLASS_EventHandler
{
    
/**
     * Class instance
     *
     * @var PVISITORS_CLASS_EventHandler
     */
    
private static $classInstance;

    
/**
     * Class constructor
     *
     */
    
private function __construct()
    {
        
    }

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

        return 
self::$classInstance;
    }

    public function 
onProfilePageRenderBASE_CLASS_EventCollector $event )
    {
        
$params $event->getParams();

        if ( empty(
$params['entityId']) || empty($params['placeName']) || $params['placeName'] != 'profile' )
        {
            return;
        }

        
$userId = (int) $params['entityId'];
        
$viewerId PEEP::getUser()->getId();

        
$authService BOL_AuthorizationService::getInstance();
        
$isAdmin $authService->isActionAuthorizedForUser($viewerId'admin') || $authService->isActionAuthorizedForUser($viewerId'base');

        if ( 
$userId && $viewerId && ($viewerId != $userId) && !$isAdmin )
        {
            
PVISITORS_BOL_Service::getInstance()->trackVisit($userId$viewerId);
        }
    }

    public function 
trackVisitPEEP_Event $event )
    {
        
$params $event->getParams();

        if ( empty(
$params['userId']) || empty($params['visitorId']) )
        {
            return;
        }

        
$userId $params['userId'];
        
$visitorId $params['visitorId'];

        
$authService BOL_AuthorizationService::getInstance();
        
$isAdmin $authService->isActionAuthorizedForUser($visitorId'admin') || $authService->isActionAuthorizedForUser($visitorId'base');

        if ( 
$userId && $visitorId && ($visitorId != $userId) && !$isAdmin )
        {
            
PVISITORS_BOL_Service::getInstance()->trackVisit($userId$visitorId);
        }
    }

    public function 
onUserUnregisterPEEP_Event $event )
    {
        
$params $event->getParams();

        
$userId $params['userId'];

        
PVISITORS_BOL_Service::getInstance()->deleteUserVisitors($userId);
    }

    public function 
getListPEEP_Event $event )
    {
        
$params $event->getParams();
        
$userId $params['userId'];
        
$page = empty($params['page']) ? $params['page'];
        
$limit = empty($params['limit']) ? 1000000 $params['limit'];

        
$users PVISITORS_BOL_Service::getInstance()->findVisitorUsers($userId$page$limit);
        
$visitorsIdList = array();
        foreach ( 
$users as $user )
        {
            
$visitorsIdList[] = $user->id;
        }

        
$visitors PVISITORS_BOL_Service::getInstance()->findVisitorsByVisitorIds($userId$visitorsIdList);
        
$out = array();

        foreach ( 
$visitors as $visitor )
        {
            
$out[] = array(
                
"userId" => $visitor->visitorId,
                
"viewed" => $visitor->viewed,
                
"timeStamp" => $visitor->visitTimestamp
            
);
        }

        
$event->setData($out);

        return 
$out;
    }

    public function 
getNewCountPEEP_Event $event )
    {
        
$params $event->getParams();
        
$userId $params['userId'];

        
$count PVISITORS_BOL_Service::getInstance()->findNewVisitorsCount($userId);

        
$event->setData($count);

        return 
$count;
    }

    public function 
markViewedPEEP_Event $event )
    {
        
$params $event->getParams();

        if ( empty(
$params['visitorIds']) )
        {
            return;
        }

        
$userId $params['userId'];
        
$visitorIds $params['visitorIds'];

        
PVISITORS_BOL_Service::getInstance()->setViewedStatusByVisitorIds($userId$visitorIds);
    }

    public function 
genericInit()
    {
        
$em PEEP::getEventManager();

        
$em->bind("visitors.get_visitors_list", array($this"getList"));
        
$em->bind("visitors.get_new_visitors_count", array($this"getNewCount"));
        
$em->bind("visitors.mark_visitors_viewed", array($this"markViewed"));
        
$em->bind("visitors.track_visit", array($this"trackVisit"));

        
$em->bind(PEEP_EventManager::ON_USER_UNREGISTER, array($this'onUserUnregister'));
    }

    public function 
init()
    {
        
$this->genericInit();
        
$em PEEP::getEventManager();

        
$em->bind('base.widget_panel.content.top', array($this'onProfilePageRender'));
    }
}
Онлайн: 2
Реклама