From 469077d0c9006f3bcfffcecf4454f2e5e4492fac Mon Sep 17 00:00:00 2001 From: Nikita Kiselev Date: Wed, 6 Aug 2025 19:07:39 +0300 Subject: [PATCH] feat(admin): correct merge new default settings after initializing app --- .../controller/extension/module/tgshop.php | 21 +++++++++++++++++++ .../Contracts/ExceptionHandlerInterface.php | 0 2 files changed, 21 insertions(+) mode change 100644 => 100755 module/oc_telegram_shop/upload/oc_telegram_shop/framework/Contracts/ExceptionHandlerInterface.php diff --git a/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php b/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php index a063672..104effa 100755 --- a/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php +++ b/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php @@ -66,6 +66,7 @@ class ControllerExtensionModuleTgshop extends Controller $hasConfig = $this->config->get('module_tgshop_app_name') !== null; if ($hasConfig) { + $this->updateConfigFromDefaults(); $this->config(); } else { $this->init(); @@ -235,6 +236,8 @@ class ControllerExtensionModuleTgshop extends Controller private function getDefaultConfig(): array { + $this->load->model('tool/image'); + return [ 'module_tgshop_status' => 1, 'module_tgshop_app_name' => $this->config->get('config_meta_title'), @@ -426,4 +429,22 @@ TEXT, return $map; } + + private function updateConfigFromDefaults() + { + $defaults = $this->getDefaultConfig(); + $settings = $this->model_setting_setting->getSetting('module_tgshop'); + + $diff = []; + foreach ($defaults as $key => $value) { + if (! isset($settings[$key])) { + $diff[$key] = $defaults[$key]; + } + } + + if ($diff) { + $settings = array_merge($settings, $diff); + $this->model_setting_setting->editSetting('module_tgshop', $settings); + } + } } diff --git a/module/oc_telegram_shop/upload/oc_telegram_shop/framework/Contracts/ExceptionHandlerInterface.php b/module/oc_telegram_shop/upload/oc_telegram_shop/framework/Contracts/ExceptionHandlerInterface.php old mode 100644 new mode 100755