Файл: system/controllers/admin/actions/controllers_delete.php
Строк: 85
<?php
class actionAdminControllersDelete extends cmsAction {
public function run( $controller_name ){
if (!$controller_name) { cmsCore::error404(); }
if (!cmsForm::validateCSRFToken( $this->request->get('csrf_token', '') )){
cmsCore::error404();
}
$controller_info = $this->model->getControllerInfo($controller_name);
if (!$controller_info || !$controller_info['is_external']) { cmsCore::error404(); }
if ($controller_info['is_backend']){
$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_info['name'], $backend_request);
// смотрим специальный экшен
if($backend_controller->isActionExists('delete_component')){
$backend_controller->redirectToAction('delete_component');
}
}
// нет бэкэенда или экшена, удаляем через метод модели контроллера
// если в модели контроллера нет метода deleteController
// будет использоваться из основной модели
// который просто удалит запись в cms_controllers
if(cmsCore::isModelExists($controller_info['name'])){
cmsCore::getModel($controller_info['name'])->deleteController($controller_info['id']);
} else {
$model = new cmsModel();
$model->deleteController($controller_info['id']);
}
cmsUser::addSessionMessage(sprintf(LANG_CP_COMPONENT_IS_DELETED, $controller_info['title']), 'success');
if($controller_info['files']){
return $this->cms_template->render('install_package_files', array(
'type' => 'controllers',
'addon_title' => $controller_info['title'],
'files' => $controller_info['files']
));
}
$this->redirectToAction('controllers');
}
}