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

class SPOTLIGHT_CLASS_EventHandler
{
    
/**
     *
     * @var SPOTLIGHT_BOL_Service 
     */
    
private $service;
    
    public function 
__construct() 
    {
        
$this->service SPOTLIGHT_BOL_Service::getInstance();
    }

    public function 
getCountPEEP_Event $event )
    {
        
$count $this->service->getUserCount();
        
$event->setData($count);

        return 
$count;
    }
    
    public function 
getListIdListPEEP_Event $event )
    {
        
$params $event->getParams();
        
$offset = empty($params["offset"]) ? $params["offset"];
        
$count = empty($params["count"]) ? null $params["count"];
        
        
$dtoList $this->service->getSpotLight($offset$count);
        
$list = array();
        foreach ( 
$dtoList as $dto )
        {
            
$list[] = $dto->userId;
        }
        
        
$event->setData($list);
        
        return 
$list;
    }
    
    public function 
addToListPEEP_Event $event )
    {
        
$params $event->getParams();
        
$userId $params["userId"];
        
        
$data = array(
            
"result" => true,
            
"message" => null,
            
"buyCredits" => false
        
);
        
        
$available true;
        
        if ( !isset(
$params["checkCredits"]) || $params["checkCredits"] )
        {
            if ( !
PEEP::getUser()->isAuthorized("spotlight""add_to_list") )
            {
                
$status BOL_AuthorizationService::getInstance()->getActionStatus("spotlight""add_to_list");
                
$available false;
                
$data["result"] = false;
                
                if ( 
$status["status"] == BOL_AuthorizationService::STATUS_PROMOTED )
                {
                    
$data["message"] = $status["msg"];
                    
$data["buyCredits"] = true;
                }
            }
        }
        
        if ( 
$available )
        {
            
$this->service->addUser($userId);
            
BOL_AuthorizationService::getInstance()->trackAction('spotlight''add_to_list');
            
            
$data["result"] = true;
            
$data['message'] = PEEP::getLanguage()->text('spotlight''user_added');
        }
        
        
$event->setData($data);
        
        return 
$data;
    }
    
    public function 
removeFromListPEEP_Event $event )
    {
        
$params $event->getParams();
        
$userId $params["userId"];
        
        
$this->service->deleteUser($userId);
        
        
$data = array(
            
"result" => true,
            
"message" => PEEP::getLanguage()->text('spotlight''user_removed')
        );

        
$event->setData($data);
        
        return 
$data;
    }
    
    public function 
isUserAddedPEEP_Event $event )
    {
        
$params $event->getParams();
        
$userId $params["userId"];
        
        
$userDto $this->service->findUserById($userId);
        
        
$data $userDto !== null;
        
$event->setData($data);
        
        return 
$data;
    }

    public function 
addAuthLabelsBASE_CLASS_EventCollector $event )
    {
        
$language PEEP::getLanguage();

        
$event->add(
            array(
                
'spotlight' => array(
                    
'label' => $language->text('spotlight''auth_group_label'),
                    
'actions' => array(
                        
'add_to_list'=>$language->text('spotlight''auth_action_label_add_to_list')
                    )
                )
            )
        );
    }
    
    public function 
init()
    {
        
PEEP::getEventManager()->bind("spotlight.count", array($this"getCount"));
        
PEEP::getEventManager()->bind("spotlight.get_id_list", array($this"getListIdList"));
        
PEEP::getEventManager()->bind("spotlight.add_to_list", array($this"addToList"));
        
PEEP::getEventManager()->bind("spotlight.remove_from_list", array($this"removeFromList"));
        
PEEP::getEventManager()->bind("spotlight.is_user_added", array($this"isUserAdded"));
        
PEEP::getEventManager()->bind('admin.add_auth_labels', array($this'addAuthLabels'));
    }
}
Онлайн: 2
Реклама