Вход Регистрация
Файл: system/controllers/admin/actions/controllers_edit.php
Строк: 102
<?php

class actionAdminControllersEdit extends cmsAction {

    public function 
run$controller_name ){

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

        
$controller_info $this->model->getControllerInfo($controller_name);

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

        
cmsCore::loadControllerLanguage($controller_name);

        
$controller_title constant('LANG_'.mb_strtoupper($controller_name).'_CONTROLLER');

        
$template cmsTemplate::getInstance();

        if (!
$controller_info['is_backend']){
            return 
$template->render('controllers_edit', array(
                
'is_backend' => false,
                
'controller_name' => $controller_name,
                
'controller_title' => $controller_title
            
));
        }

        
//
        // Загружаем бакенд выбранного контроллера
        //
        
$backend_context $this->request->isAjax() ? cmsRequest::CTX_AJAX cmsRequest::CTX_INTERNAL;
        
$backend_request = new cmsRequest($this->request->getData(), $backend_context);
        
$backend_controller $this->loadControllerBackend($controller_name$backend_request);

        
// Определяем текущий экшен бакенда
        
$action_name sizeof($this->params)>$this->params[1] : 'index';

        
//
        // Удаляем из массива параметров название контроллера и экшен
        //
        
if (sizeof($this->params) <= 2) {
            
$params = array();
        } else {
            
$params $this->params;
            unset(
$params[0]);
            unset(
$params[1]);
        }

        
// Устанавливаем корень для URL внутри бакенда
        
$backend_controller->setRootURL$this->name '/controllers/edit/' $controller_name );

        
// Если запрос пришел по AJAX, то выполняем экшен бакенда сразу же
        // иначе он будет выполнен позже, в шаблоне, чтобы тулбары и pathwey бакенда
        // вывелись позже, чем админки
        
if ($this->request->isAjax()){
            
$backend_controller->runAction($action_name$params);
            
$this->halt();
        }

        
// Подключаем CSS бакенда если он есть
        
$css_file $template->getStylesFileName($controller_name'backend');
        if (
$css_file){ $template->addCSS($css_file); }

        
$template->setMenuItems('backend'$backend_controller->getBackendMenu());

        return 
$template->render('controllers_edit', array(
            
'is_backend' => true,
            
'controller_name' => $controller_name,
            
'controller_title' => $controller_title,
            
'params' => $params,
            
'action_name' => $action_name,
            
'backend_controller' => $backend_controller,
        ));

    }

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