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

class PRIVACY_CTRL_Privacy extends PEEP_ActionController
{
    private 
$actionService;
    private 
$userService;

    public function 
__construct()
    {
        
parent::__construct();

        
$this->actionService = PRIVACY_BOL_ActionService::getInstance();
        
$this->userService = BOL_UserService::getInstance();
    }
    
    public function 
index( $params )
    {
        
$userId = PEEP::getUser()->getId();

        if ( 
PEEP::getRequest()->isAjax() )
        {
            exit;
        }
        
        if ( !
PEEP::getUser()->isAuthenticated() || $userId === null )
        {
            throw new 
AuthenticateException();
        }

        
$contentMenu = new BASE_CMP_PreferenceContentMenu();
        
$contentMenu->getElement('privacy')->setActive(true);

        
$this->addComponent('contentMenu', $contentMenu);

        
$language = PEEP::getLanguage();

        
$this->setPageHeading($language->text('privacy', 'privacy_index'));
        
$this->setPageHeadingIconClass('peep_ic_lock');

        
// -- Action form --
        
        
$privacyForm = new Form('privacyForm');
        
$privacyForm->setId('privacyForm');

        
$actionSubmit = new Submit('privacySubmit');
        
$actionSubmit->addAttribute('class', 'peep_button peep_ic_save');

        
$actionSubmit->setValue($language->text('privacy', 'privacy_submit_button'));
        
        
$privacyForm->addElement($actionSubmit);

        
// --
        
        
$actionList = PRIVACY_BOL_ActionService::getInstance()->findAllAction();

        
$actionNameList = array();
        foreach( 
$actionList as $action )
        {
            
$actionNameList[$action->key] = $action->key;
        }

        
$actionValueList = PRIVACY_BOL_ActionService::getInstance()->getActionValueList($actionNameList, $userId);

        
$actionValuesEvent= new BASE_CLASS_EventCollector( PRIVACY_BOL_ActionService::EVENT_GET_PRIVACY_LIST );
        
PEEP::getEventManager()->trigger($actionValuesEvent);
        
$data = $actionValuesEvent->getData();
        
        
$actionValuesInfo = empty($data) ? array() : $data;
        
usort($actionValuesInfo, array($this, "sortPrivacyOptions"));
        
        
$optionsList = array();
        
// -- sort action values
        
foreach( $actionValuesInfo as $value )
        {
            
$optionsList[$value['key']] = $value['label'];
        }
        
// --

        
$resultList = array();

        foreach( 
$actionList as $action )
        {

            
/* @var $action PRIVACY_CLASS_Action */
            
if ( !empty( $action->label ) )
            {
                
$formElement = new Selectbox($action->key);
                
$formElement->setLabel($action->label);
                
                
$formElement->setDescription('');

                if ( !empty(
$action->description) )
                {
                    
$formElement->setDescription($action->description);
                }

                
$formElement->setOptions($optionsList);
                
$formElement->setHasInvitation(false);

                if ( !empty(
$actionValueList[$action->key]) )
                {
                    
$formElement->setValue($actionValueList[$action->key]);
                    
                    if( 
array_key_exists($actionValueList[$action->key], $optionsList) )
                    {
                        
$formElement->setValue($actionValueList[$action->key]);
                    }
                    else if ( 
$actionValueList[$action->key] != 'everybody' )
                    {
                        
$formElement->setValue('only_for_me');
                    }
                }

                
$privacyForm->addElement($formElement);

                
$resultList[$action->key] = $action->key;
            }
        }

        if ( 
PEEP::getRequest()->isPost() )
        {
            if( 
$privacyForm->isValid($_POST) )
            {
                
$values = $privacyForm->getValues();
                
$restul = PRIVACY_BOL_ActionService::getInstance()->saveActionValues($values, $userId);

                if ( 
$restul )
                {
                    
PEEP::getFeedback()->info($language->text('privacy', 'action_action_data_was_saved'));
                }
                else
                {
                    
PEEP::getFeedback()->warning($language->text('privacy', 'action_action_data_not_changed'));
                }
                
                
$this->redirect();
            }
        }

        
        
$this->addForm($privacyForm);
        
$this->assign('actionList', $resultList);
    }
    
    private function 
sortPrivacyOptions( $a, $b )
    {
        if ( 
$a["sortOrder"] == $b["sortOrder"]  )
        {
            return 
0;
        }
        
        return 
$a["sortOrder"] < $b["sortOrder"] ? -1 : 1;
    }

    public function 
noPermission( $params )
    {
        
$username = $params['username'];

        
$user = BOL_UserService::getInstance()->findByUsername($username);
        
        if ( 
$user === null )
        {
            throw new 
Redirect404Exception();
        }

        
$this->setPageHeading(PEEP::getLanguage()->text('privacy', 'privacy_no_permission_heading'));
        
$this->setPageHeadingIconClass('peep_ic_lock');

        if( 
PEEP::getSession()->isKeySet('privacyRedirectExceptionMessage') )
        {
            
$this->assign('message', PEEP::getSession()->get('privacyRedirectExceptionMessage'));
        }

        
$avatarService = BOL_AvatarService::getInstance();

        
$viewerId = PEEP::getUser()->getId();

        
$userId = $user->id;

        
$this->assign('owner', false);

        
$avatar = $avatarService->getAvatarUrl($userId, 2);
        
$this->assign('avatar', $avatar ? $avatar : $avatarService->getDefaultAvatarUrl(2));
        
$roles = BOL_AuthorizationService::getInstance()->getRoleListOfUsers(array($userId));
        
$this->assign('role', !empty($roles[$userId]) ? $roles[$userId] : null);

        
$userService = BOL_UserService::getInstance();

        
$this->assign('username', $username);

        
$this->assign('avatarSize', PEEP::getConfig()->getValue('base', 'avatar_big_size'));
    }
}
Онлайн: 1
Реклама