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

class CONTACTIMPORTER_CLASS_EventHandler
{

    const 
EVENT_COLLECT_PROVIDERS 'contactimporter.collect_providers';
    const 
EVENT_RENDER_BUTTON 'contactimporter.render_button';

    private 
$providers = array();

   private static 
$classInstance;

public static function 
getInstance()
    {
        if ( 
self::$classInstance === null )
        {
            
self::$classInstance = new self();
        }

        return 
self::$classInstance;
    }

    public function 
__construct()
    {

        
$this->providers['facebook'] = new CONTACTIMPORTER_CLASS_FacebookProvider();
        
$this->providers['google'] = new CONTACTIMPORTER_CLASS_GoogleProvider();
        
$this->providers['email'] = new CONTACTIMPORTER_CLASS_EmailProvider();
    }

    public function 
collectProvidersBASE_CLASS_EventCollector $event )
    {
        foreach ( 
$this->providers as $p )
        {
            
$event->add($p->getProviderInfo());
        }
    }

    public function 
buttonRenderPEEP_Event $event )
    {
        
$params $event->getParams();
        
$key $params['provider'];

        if ( empty (
$this->providers[$key]) )
        {
            return;
        }

        
/* @var $provider CONTACTIMPORTER_CLASS_Provider */
        
$provider $this->providers[$key];
        
$data $provider->prepareButton($params);

        
$event->setData($data);
    }

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

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

    
$userIds = array();

    foreach ( 
$this->providers as $provider )
    {
        
$inviters $provider->getInviters($params['params']['code']);
        if ( 
$inviters && is_array($inviters) )
        {
        
$userIds array_merge($userIds$inviters);
        }
    }
        
        
$newId $params['userId'];

    foreach ( 
$userIds as $uid )
    {
            
$event = new PEEP_Event('friends.add_friend', array(
                
'requesterId' => $uid,
                
'userId' => $newId
            
));

            
PEEP::getEventManager()->trigger($event);

        
$eventParams = array('pluginKey' => 'contactimporter''action' => 'import_friend''userId' => $userId);

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

        if ( !empty(
$params['code']) )
        {
            
$data base64_decode($params['code']);
            
$data json_decode($datatrue);
            
            if ( !empty(
$data['inviters']) )
            {
                throw new 
JoinRenderException();
            }
        }
    }
 public function 
genericInit()
    {
      
PEEP::getEventManager()->bind(PEEP_EventManager::ON_USER_REGISTER, array($this'onUserRegister'));

       
        
    }

}
Онлайн: 1
Реклама