From 949ac4878cd354e3b3d28cc509245bf97a8fab6e Mon Sep 17 00:00:00 2001 From: Awilum Date: Mon, 27 Jan 2020 13:51:56 +0300 Subject: [PATCH] feat(admin-plugin): try to fix plugins set state issue #211 --- .../admin/app/Controllers/PluginsController.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/site/plugins/admin/app/Controllers/PluginsController.php b/site/plugins/admin/app/Controllers/PluginsController.php index 257d9631..768c7b4b 100644 --- a/site/plugins/admin/app/Controllers/PluginsController.php +++ b/site/plugins/admin/app/Controllers/PluginsController.php @@ -62,21 +62,25 @@ class PluginsController extends Controller public function pluginStatusProcess(Request $request, Response $response) : Response { // Get data from the request - $data = $request->getParsedBody(); + $post_data = $request->getParsedBody(); - $site_plugin_settings_dir = PATH['config']['site'] . '/plugins/' . $data['plugin-key']; - $site_plugin_settings_file = PATH['config']['site'] . '/plugins/' . $data['plugin-key'] . '/settings.yaml'; - $default_plugin_settings_file = PATH['plugins'] . '/' . $data['plugin-key'] . '/settings.yaml'; + $site_plugin_settings_dir = PATH['config']['site'] . '/plugins/' . $post_data['plugin-key']; + $site_plugin_settings_file = PATH['config']['site'] . '/plugins/' . $post_data['plugin-key'] . '/settings.yaml'; + $default_plugin_settings_file = PATH['plugins'] . '/' . $post_data['plugin-key'] . '/settings.yaml'; // Update settings $site_plugin_settings_file_content = Filesystem::read($site_plugin_settings_file); + if (trim($site_plugin_settings_file_content) === '') { $site_plugin_settings = []; } else { $site_plugin_settings = $this->parser->decode($site_plugin_settings_file_content, 'yaml'); } - Arr::set($site_plugin_settings, 'enabled', ($data['plugin-status'] === 'true')); + $status = ($post_data['plugin-set-status'] == 'true') ? true : false; + + Arr::set($site_plugin_settings, 'enabled', $status); + Filesystem::write($site_plugin_settings_file, $this->parser->encode($site_plugin_settings, 'yaml')); // Clear doctrine cache