From fbc337a8a986cb1b11de0b4f95b514eae566b1d0 Mon Sep 17 00:00:00 2001 From: Awilum Date: Mon, 18 Nov 2019 22:59:47 +0300 Subject: [PATCH] feat(admin-plugin): add plugins settings page #258 --- .../admin/app/Controllers/PluginsController.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/site/plugins/admin/app/Controllers/PluginsController.php b/site/plugins/admin/app/Controllers/PluginsController.php index b82801e6..cbfff7c3 100644 --- a/site/plugins/admin/app/Controllers/PluginsController.php +++ b/site/plugins/admin/app/Controllers/PluginsController.php @@ -66,9 +66,15 @@ class PluginsController extends Controller $default_plugin_settings_file = PATH['plugins'] . '/' . $data['plugin-key'] . '/settings.yaml'; // Update settings - $plugin_settings = $this->parser->decode(Filesystem::read($site_plugin_settings_file), 'yaml'); - Arr::set($plugin_settings, 'enabled', ($data['plugin-status'] === 'true')); - Filesystem::write($site_plugin_settings_file, $this->parser->encode($plugin_settings, 'yaml')); + $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')); + Filesystem::write($site_plugin_settings_file, $this->parser->encode($site_plugin_settings, 'yaml')); // Clear doctrine cache $this->cache->clear('doctrine');