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

class FRIENDS_CTRL_Action extends PEEP_ActionController
{
    
/**
     * Request new friendship controller
     *
     * @param array $params
     * @throws Redirect404Exception
     * @throws AuthenticateException
     */
    
public function request$params )
    {
        if ( !
PEEP::getUser()->isAuthenticated() )
        {
           throw new 
AuthenticateException();
        }

        
$requesterId PEEP::getUser()->getId();

        
$userId = (int) $params['id'];

        if ( 
BOL_UserService::getInstance()->isBlocked(PEEP::getUser()->getId(), $userId) )
        {
            throw new 
Redirect404Exception();
        }

        if (!
PEEP::getUser()->isAuthorized('friends''add_friend'))
        {
            
$status BOL_AuthorizationService::getInstance()->getActionStatus('friends''add_friend');
            
PEEP::getFeedback()->error($status['msg']);
        }

        
$service FRIENDS_BOL_Service::getInstance();

        if ( 
$service->findFriendship($requesterId$userId) === null )
        {
            
$service->request($requesterId$userId);

            
$service->onRequest($requesterId$userId);

            
PEEP::getFeedback()->info(PEEP::getLanguage()->text('friends''feedback_request_was_sent'));
        }
        else
        {
            
PEEP::getFeedback()->error(PEEP::getLanguage()->text('friends''feedback_request_already_sent_error_message'));
        }

        if ( isset( 
$params['backUri'] ) )
        {
            
$this->redirect($params['backUri']);
        }

        
$this->redirect($_SERVER['HTTP_REFERER']);
    }



    
/**
     * Accept new friendship request
     *
     * @param array $params
     * @throws AuthenticateException
     */
    
public function accept$params )
    {
        if ( !
PEEP::getUser()->isAuthenticated() )
        {
            throw new 
AuthenticateException();
        }

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

        
$service FRIENDS_BOL_Service::getInstance();

        
$frendshipDto $service->accept($userId$requesterId);

        if ( !empty(
$frendshipDto) )
        {
            
$service->onAccept($userId$requesterId$frendshipDto);

            
PEEP::getFeedback()->info(PEEP::getLanguage()->text('friends''feedback_request_accepted'));
        }

        if ( !empty(
$params['backUrl']) )
        {
            
$this->redirect($params['backUrl']);
        }

        if ( 
$service->count(null$userIdFRIENDS_BOL_Service::STATUS_PENDING) > )
        {
            
$backUrl PEEP::getRouter()->urlForRoute('friends_lists', array('list'=>'got-requests'));
        }
        else
        {
            
$backUrl PEEP::getRouter()->urlForRoute('friends_list');
        }

        
$this->redirect($backUrl);
    }

    
/**
     * Ignore new friendship request
     *
     * @param array $params
     * @throws AuthenticateException
     */
    
public function ignore$params )
    {
        if ( !
PEEP::getUser()->isAuthenticated() )
        {
            throw new 
AuthenticateException();
        }

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

        
$service FRIENDS_BOL_Service::getInstance();

        
$service->ignore($userId$requesterId);

        
PEEP::getFeedback()->info(PEEP::getLanguage()->text('friends''feedback_request_ignored'));

        
$this->redirectPEEP::getRouter()->urlForRoute('friends_lists', array('list'=>'got-requests')) );
    }

    
/**
     * Cancel friendship
     *
     * @param array $params
     * @throws AuthenticateException
     */
    
public function cancel$params )
    {
        if ( !
PEEP::getUser()->isAuthenticated() )
        {
            throw new 
AuthenticateException();
        }

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

        
$event = new PEEP_Event('friends.cancelled', array(
            
'senderId' => $requesterId,
            
'recipientId' => $userId
        
));

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

        
PEEP::getFeedback()->info(PEEP::getLanguage()->text('friends''feedback_cancelled'));

        if ( isset(
$params['redirect']) )
        {
            
$username BOL_UserService::getInstance()->getUserName($requesterId);
            
$backUrl PEEP::getRouter()->urlForRoute('base_user_profile', array('username'=>$username));
            
$this->redirect($backUrl);
        }

        
$this->redirectPEEP::getRouter()->urlForRoute('friends_lists', array('list'=>'sent-requests')) );
    }

    public function 
activate$params )
    {
        if ( !
PEEP::getUser()->isAuthenticated() )
        {
            throw new 
AuthenticateException();
        }

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

        
FRIENDS_BOL_Service::getInstance()->activate($userId$requesterId);

        
PEEP::getFeedback()->info(PEEP::getLanguage()->text('friends''new_friend_added'));
        
$this->redirect($_SERVER['HTTP_REFERER']);
    }

    public function 
ajax()
    {
        if ( !
PEEP::getRequest()->isAjax() )
        {
            throw new 
Redirect403Exception();
        }

        if ( !
PEEP::getUser()->isAuthenticated() )
        {
            throw new 
AuthenticateException();
        }

        
$command $_POST['command'];
        
$data json_decode($_POST['data'], true);

        
$result '';

        switch(
$command)
        {
            case 
'friends-accept':
                
$userId = (int) PEEP::getUser()->getId();
                
$requesterId = (int) $data['id'];

                
$service FRIENDS_BOL_Service::getInstance();

                
$frendshipDto $service->accept($userId$requesterId);

                if ( !empty(
$frendshipDto) )
                {
                    
$service->onAccept($userId$requesterId$frendshipDto);
                }

                
$feedback PEEP::getLanguage()->text('friends''feedback_request_accepted');
                
$result "PEEP.info('{$feedback}');";
                break;
            
            case 
'friends-ignore':
                
$userId = (int) PEEP::getUser()->getId();
                
$requesterId = (int) $data['id'];

                
$service FRIENDS_BOL_Service::getInstance();

                
$service->ignore($requesterId$userId);

                
$feedback PEEP::getLanguage()->text('friends''feedback_request_ignored');
                
$result "PEEP.info('{$feedback}');";
                break;
        }

        echo 
json_encode(array(
            
'script' => $result
        
));

        exit;
    }
}
Онлайн: 0
Реклама