Вход Регистрация
Файл: 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 
getCount( PEEP_Event $event )
    {
        
$count = $this->service->getUserCount();
        
$event->setData($count);

        return 
$count;
    }
    
    public function 
getListIdList( PEEP_Event $event )
    {
        
$params = $event->getParams();
        
$offset = empty($params["offset"]) ? 0 : $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 
addToList( PEEP_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 
removeFromList( PEEP_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 
isUserAdded( PEEP_Event $event )
    {
        
$params = $event->getParams();
        
$userId = $params["userId"];
        
        
$userDto = $this->service->findUserById($userId);
        
        
$data = $userDto !== null;
        
$event->setData($data);
        
        return 
$data;
    }

    public function 
addAuthLabels( BASE_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'));
    }
}
Онлайн: 0
Реклама