Вход Регистрация
Файл: 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_EventCollectorPRIVACY_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;
    }

    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($userId2);
        
$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
Реклама