| @@ 14-122 (lines=109) @@ | ||
| 11 | use Ffcms\Core\Exception\NotFoundException; |
|
| 12 | use Ffcms\Core\Helper\Type\Str; |
|
| 13 | ||
| 14 | class Application extends AdminController |
|
| 15 | { |
|
| 16 | public $type = 'app'; |
|
| 17 | ||
| 18 | public function __construct() |
|
| 19 | { |
|
| 20 | // prevent version checks |
|
| 21 | parent::__construct(false); |
|
| 22 | } |
|
| 23 | ||
| 24 | ||
| 25 | /** |
|
| 26 | * List of all installed applications |
|
| 27 | * @return string|null |
|
| 28 | * @throws \Ffcms\Core\Exception\SyntaxException |
|
| 29 | */ |
|
| 30 | public function actionIndex() |
|
| 31 | { |
|
| 32 | return App::$View->render('index', [ |
|
| 33 | 'apps' => $this->applications |
|
| 34 | ]); |
|
| 35 | } |
|
| 36 | ||
| 37 | ||
| 38 | /** |
|
| 39 | * Show installation for of applications |
|
| 40 | * @return string |
|
| 41 | * @throws \Ffcms\Core\Exception\SyntaxException |
|
| 42 | */ |
|
| 43 | public function actionInstall() |
|
| 44 | { |
|
| 45 | $model = new FormInstall($this->applications, 'app'); |
|
| 46 | ||
| 47 | // check if model is sended |
|
| 48 | if ($model->send()) { |
|
| 49 | // validate app name |
|
| 50 | if ($model->validate()) { |
|
| 51 | // try to run ::install method from remoute controller |
|
| 52 | if ($model->make()) { |
|
| 53 | App::$Session->getFlashBag()->add('success', __('Application "%app%" is successful installed!', ['app' => $model->sysname])); |
|
| 54 | App::$Response->redirect('application/index'); |
|
| 55 | } else { |
|
| 56 | App::$Session->getFlashBag()->add('error', __('During the installation process an error has occurred! Please contact with application developer.')); |
|
| 57 | } |
|
| 58 | } else { |
|
| 59 | App::$Session->getFlashBag()->add('error', __('Probably, app or widget with the same name is always used! Try to solve this conflict.')); |
|
| 60 | } |
|
| 61 | } |
|
| 62 | ||
| 63 | return App::$View->render('install', [ |
|
| 64 | 'model' => $model->export() |
|
| 65 | ]); |
|
| 66 | } |
|
| 67 | ||
| 68 | public function actionUpdate($sys_name) |
|
| 69 | { |
|
| 70 | // get controller name and try to find app in db |
|
| 71 | $controller = ucfirst(Str::lowerCase($sys_name)); |
|
| 72 | $search = \Apps\ActiveRecord\App::getItem('app', $controller); |
|
| 73 | ||
| 74 | // check what we got |
|
| 75 | if ($search === null || (int)$search->id < 1) { |
|
| 76 | throw new NotFoundException('App is not founded'); |
|
| 77 | } |
|
| 78 | ||
| 79 | // init model and make update with notification |
|
| 80 | $model = new FormUpdate($search); |
|
| 81 | if ($model->send() && $model->validate()) { |
|
| 82 | $model->make(); |
|
| 83 | App::$Session->getFlashBag()->add('success', __('Application %s% is successful updated to %v% version', ['s' => $sys_name, 'v' => $model->scriptVersion])); |
|
| 84 | App::$Response->redirect('application/index'); |
|
| 85 | } |
|
| 86 | ||
| 87 | // render response |
|
| 88 | return App::$View->render('update', [ |
|
| 89 | 'model' => $model |
|
| 90 | ]); |
|
| 91 | } |
|
| 92 | ||
| 93 | /** |
|
| 94 | * Allow turn on/off applications |
|
| 95 | * @param $controllerName |
|
| 96 | * @return string |
|
| 97 | * @throws ForbiddenException |
|
| 98 | * @throws \Ffcms\Core\Exception\SyntaxException |
|
| 99 | */ |
|
| 100 | public function actionTurn($controllerName) |
|
| 101 | { |
|
| 102 | $controllerName = ucfirst(Str::lowerCase($controllerName)); |
|
| 103 | ||
| 104 | $search = \Apps\ActiveRecord\App::where('sys_name', '=', $controllerName)->where('type', '=', 'app')->first(); |
|
| 105 | ||
| 106 | if ($search === null || (int)$search->id < 1) { |
|
| 107 | throw new ForbiddenException('App is not founded'); |
|
| 108 | } |
|
| 109 | ||
| 110 | $model = new FormTurn(); |
|
| 111 | ||
| 112 | if ($model->send()) { |
|
| 113 | $model->update($search); |
|
| 114 | App::$Session->getFlashBag()->add('success', __('Application status was changed')); |
|
| 115 | } |
|
| 116 | ||
| 117 | return App::$View->render('turn', [ |
|
| 118 | 'app' => $search, |
|
| 119 | 'model' => $model |
|
| 120 | ]); |
|
| 121 | } |
|
| 122 | } |
|
| @@ 20-130 (lines=111) @@ | ||
| 17 | * This class provide general admin implementation of control for user comments and its settings |
|
| 18 | * @package Apps\Controller\Admin |
|
| 19 | */ |
|
| 20 | class Widget extends AdminController |
|
| 21 | { |
|
| 22 | public $type = 'widget'; |
|
| 23 | ||
| 24 | /** |
|
| 25 | * Widget constructor. Disable installation checking for this controller |
|
| 26 | */ |
|
| 27 | public function __construct() |
|
| 28 | { |
|
| 29 | parent::__construct(false); |
|
| 30 | } |
|
| 31 | ||
| 32 | /** |
|
| 33 | * Show all installed widgets |
|
| 34 | * @return string |
|
| 35 | * @throws \Ffcms\Core\Exception\SyntaxException |
|
| 36 | */ |
|
| 37 | public function actionIndex() |
|
| 38 | { |
|
| 39 | return App::$View->render('index', [ |
|
| 40 | 'widgets' => $this->widgets |
|
| 41 | ]); |
|
| 42 | } |
|
| 43 | ||
| 44 | /** |
|
| 45 | * Show installation for of applications |
|
| 46 | * @return string |
|
| 47 | * @throws \Ffcms\Core\Exception\SyntaxException |
|
| 48 | */ |
|
| 49 | public function actionInstall() |
|
| 50 | { |
|
| 51 | $model = new FormInstall($this->applications, 'widget'); |
|
| 52 | ||
| 53 | // check if model is sended |
|
| 54 | if ($model->send()) { |
|
| 55 | // validate app name |
|
| 56 | if ($model->validate()) { |
|
| 57 | // try to run ::install method from remoute controller |
|
| 58 | if ($model->make()) { |
|
| 59 | App::$Session->getFlashBag()->add('success', __('Widget "%widget%" is successful installed!', ['widget' => $model->sysname])); |
|
| 60 | App::$Response->redirect('widget/index'); |
|
| 61 | } else { |
|
| 62 | App::$Session->getFlashBag()->add('error', __('During the installation process an error has occurred! Please contact with widget developer.')); |
|
| 63 | } |
|
| 64 | } else { |
|
| 65 | App::$Session->getFlashBag()->add('error', __('Probably, app or widget with the same name is always used! Try to solve this conflict.')); |
|
| 66 | } |
|
| 67 | } |
|
| 68 | ||
| 69 | return App::$View->render('install', [ |
|
| 70 | 'model' => $model->export() |
|
| 71 | ]); |
|
| 72 | } |
|
| 73 | ||
| 74 | public function actionUpdate($sys_name) |
|
| 75 | { |
|
| 76 | // get controller name and try to find app in db |
|
| 77 | $controller = ucfirst(Str::lowerCase($sys_name)); |
|
| 78 | $search = \Apps\ActiveRecord\App::getItem('widget', $controller); |
|
| 79 | ||
| 80 | // check what we got |
|
| 81 | if ($search === null || (int)$search->id < 1) { |
|
| 82 | throw new NotFoundException('Widget is not founded'); |
|
| 83 | } |
|
| 84 | ||
| 85 | // init model and make update with notification |
|
| 86 | $model = new FormUpdate($search); |
|
| 87 | ||
| 88 | if ($model->send() && $model->validate()) { |
|
| 89 | $model->make(); |
|
| 90 | App::$Session->getFlashBag()->add('success', __('Widget %w% is successful updated to %v% version', ['w' => $sys_name, 'v' => $model->scriptVersion])); |
|
| 91 | App::$Response->redirect('application/index'); |
|
| 92 | } |
|
| 93 | ||
| 94 | // render response |
|
| 95 | return App::$View->render('update', [ |
|
| 96 | 'model' => $model |
|
| 97 | ]); |
|
| 98 | } |
|
| 99 | ||
| 100 | /** |
|
| 101 | * Allow turn on/off applications |
|
| 102 | * @param $controllerName |
|
| 103 | * @return string |
|
| 104 | * @throws ForbiddenException |
|
| 105 | * @throws \Ffcms\Core\Exception\SyntaxException |
|
| 106 | */ |
|
| 107 | public function actionTurn($controllerName) |
|
| 108 | { |
|
| 109 | $controllerName = ucfirst(Str::lowerCase($controllerName)); |
|
| 110 | ||
| 111 | $search = \Apps\ActiveRecord\App::where('sys_name', '=', $controllerName)->where('type', '=', 'widget')->first(); |
|
| 112 | ||
| 113 | if ($search === null || (int)$search->id < 1) { |
|
| 114 | throw new ForbiddenException('App is not founded'); |
|
| 115 | } |
|
| 116 | ||
| 117 | $model = new FormTurn(); |
|
| 118 | ||
| 119 | if ($model->send()) { |
|
| 120 | $model->update($search); |
|
| 121 | App::$Session->getFlashBag()->add('success', __('Widget status was changed')); |
|
| 122 | } |
|
| 123 | ||
| 124 | return App::$View->render('turn', [ |
|
| 125 | 'widget' => $search, |
|
| 126 | 'model' => $model |
|
| 127 | ]); |
|
| 128 | } |
|
| 129 | ||
| 130 | } |
|