Вход Регистрация
Файл: system/core/backend.php
Строк: 81
<?php
class cmsBackend extends cmsController {

    function 
__construct($request){

        
parent::__construct($request);

        
$config cmsConfig::getInstance();

        
$this->name str_replace('backend'''$this->name);

        
$this->root_path $config->root_path 'system/controllers/' $this->name '/backend/';

    }

//============================================================================//
//============================================================================//

    
public function getBackendMenu(){
        return array();
    }

//============================================================================//
//============================================================================//
//=========              ШАБЛОНЫ ОСНОВНЫХ ДЕЙСТВИЙ                   =========//
//============================================================================//
//============================================================================//

//============================================================================//
//=========                  ОПЦИИ КОМПОНЕНТА                        =========//
//============================================================================//

    
public function actionOptions(){

        if (empty(
$this->useDefaultOptionsAction)){ cmsCore::error404(); }

        
$form $this->getForm('options');

        if (!
$form) { cmsCore::error404(); }

        
$is_submitted $this->request->has('submit');

        
$options cmsController::loadOptions($this->name);

        if (
$is_submitted){

            
$options $form->parse($this->request$is_submitted);
            
$errors $form->validate($this$options);

            if (!
$errors){

                
cmsController::saveOptions($this->name$options);

                
$this->redirectToAction('options');

            }

            if (
$errors){

                
cmsUser::addSessionMessage(LANG_FORM_ERRORS'error');

            }

        }

        return 
cmsTemplate::getInstance()->render('backend/options', array(
            
'options' => $options,
            
'form' => $form,
            
'errors' => isset($errors) ? $errors false
        
));

    }

//============================================================================//
//=========                  УПРАВЛЕНИЕ ДОСТУПОМ                     =========//
//============================================================================//

    
public function actionPerms($subject=''){

        if (empty(
$this->useDefaultPermissionsAction)){ cmsCore::error404(); }

        
$rules  cmsPermissions::getRulesList($this->name);
        
$values cmsPermissions::getPermissions($subject);

        
$users_model cmsCore::getModel('users');
        
$groups $users_model->getGroups(false);

        return 
cmsTemplate::getInstance()->render('backend/perms', array(
            
'rules' => $rules,
            
'values' => $values,
            
'groups' => $groups,
            
'subject' => $subject,
        ));

    }

    public function 
actionPermsSave($subject=''){

        if (empty(
$this->useDefaultPermissionsAction)){ cmsCore::error404(); }

        
$values $this->request->get('value');

        if (!
$values) { cmsCore::error404(); }

        
$rules cmsPermissions::getRulesList($this->name);

        
$users_model cmsCore::getModel('users');
        
$groups $users_model->getGroups(false);

        
// перебираем правила
        
foreach($rules as $rule){

            
// если для этого правила вообще ничего нет,
            // то присваиваем null
            
if (!isset($values[$rule['id']])) {
                
$values[$rule['id']] = null; continue;
            }

            
// перебираем группы, заменяем на нуллы
            // значения отсутствующих правил
            
foreach($groups as $group){
                if (!isset(
$values[$rule['id']][$group['id']])) {
                    
$values[$rule['id']][$group['id']] = null;
                }
            }

        }

        
cmsPermissions::savePermissions($subject$values);

        
$this->redirectBack();

    }

//============================================================================//
//============================================================================//

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