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

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

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

        return 
self::$classInstance;
    }

    const 
CONSOLE_ITEM_KEY 'friend_requests';

    
/**
     *
     * @var FRIENDS_BOL_Service
     */
    
private $service;

    private function 
__construct()
    {
        
$this->service FRIENDS_BOL_Service::getInstance();
    }

    public function 
collectItemsBASE_CLASS_ConsoleItemCollector $event )
    {
        if (
PEEP::getUser()->isAuthenticated())
        {
            
$item = new FRIENDS_CMP_ConsoleFriendRequests();
            
$count $this->service->count(nullPEEP::getUser()->getId(), FRIENDS_BOL_Service::STATUS_PENDING);
            if ( 
$count == )
            {
                
$item->setIsHidden(false);
            }

            
$event->addItem($item5);
        }
    }

    
/* Console list */

    
public function pingBASE_CLASS_ConsoleDataEvent $event )
    {
        
$userId PEEP::getUser()->getId();
        
$data $event->getItemData(self::CONSOLE_ITEM_KEY);

        
$allInvitationCount $this->service->count(null$userIdFRIENDS_BOL_Service::STATUS_PENDING);
        
$newInvitationCount $this->service->count(null$userIdFRIENDS_BOL_Service::STATUS_PENDINGnullfalse);

        
$data['counter'] = array(
            
'all' => $allInvitationCount,
            
'new' => $newInvitationCount
        
);

        
$event->setItemData('friend_requests'$data);
    }

    public function 
loadListBASE_CLASS_ConsoleListEvent $event )
    {
        
$params $event->getParams();
        
$userId PEEP::getUser()->getId();

        if ( 
$params['target'] != self::CONSOLE_ITEM_KEY )
        {
            return;
        }

        
$requests $this->service->findRequestList($userId$params['console']['time'], $params['offset'], 10);

        
$requestIds = array();

        foreach ( 
$requests as $request )
        {
            
$avatar BOL_AvatarService::getInstance()->getDataForUserAvatars(array($request->userId), truetruetruefalse );
            
$avatar $avatar[$request->userId];

            
$userUrl PEEP::getRouter()->urlForRoute('base_user_profile', array('username'=>BOL_UserService::getInstance()->getUserName($request->userId)));
            
$displayName BOL_UserService::getInstance()->getDisplayName($request->userId);
            
$string PEEP::getLanguage()->text('friends''console_request_item', array( 'userUrl'=> $userUrl'displayName'=>$displayName ));


            
$item = new FRIENDS_CMP_RequestItem();
            
$item->setAvatar($avatar);
            
$item->setContent($string);
            
$item->setToolbar(array(
                array(
                    
'label' => PEEP::getLanguage()->text('friends''accept_request'),
                    
'id' => 'friend_request_accept_'.$request->userId
                
),
                array(
                    
'label' => PEEP::getLanguage()->text('friends''ignore_request'),
                    
'id' => 'friend_request_ignore_'.$request->userId
                
)
            ));

            if (!
$request->viewed)
            {
                
$item->addClass('peep_console_new_message');
            }


            
$js UTIL_JsGenerator::newInstance();

            
$js->jQueryEvent('#friend_request_accept_'.$request->userId'click', <<<EOT
PEEP.FriendRequest.accept('{$item->getKey()}', {$request->userId});
EOT
);

            
$js->jQueryEvent('#friend_request_ignore_'.$request->userId'click', <<<EOT
PEEP.FriendRequest.ignore('{$item->getKey()}', {$request->userId});
EOT
);

            
PEEP::getDocument()->addOnloadScript($js->generateJs());

            
$requestIds[] = $request->id;

            
$event->addItem($item->render());
        }

        
$this->service->markViewedByIds($requestIds);
    }

    public function 
init()
    {
        
PEEP::getEventManager()->bind('console.collect_items', array($this'collectItems'));
        
PEEP::getEventManager()->bind('console.ping', array($this'ping'));
        
PEEP::getEventManager()->bind('console.load_list', array($this'loadList'));
    }
}
Онлайн: 1
Реклама