From ed4e2b26141d714bc40dda18b7f0e0cbccf059e2 Mon Sep 17 00:00:00 2001 From: beu Date: Wed, 27 Apr 2022 09:49:52 +0200 Subject: [PATCH] Add a setting to disable removing unused settings --- core/Settings/SettingManager.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/Settings/SettingManager.php b/core/Settings/SettingManager.php index c60d0e08..c4a1fe0a 100644 --- a/core/Settings/SettingManager.php +++ b/core/Settings/SettingManager.php @@ -26,7 +26,8 @@ class SettingManager implements CallbackListener, UsageInformationAble { const TABLE_SETTINGS = 'mc_settings'; const CB_SETTING_CHANGED = 'SettingManager.SettingChanged'; - const SETTING_ALLOW_UNLINK_SERVER = 'Allow to unlink settings with multiple servers'; + const SETTING_ALLOW_UNLINK_SERVER = 'Allow to unlink settings with multiple servers'; + const SETTING_DELETE_UNUSED_SETTING_AT_START = 'Delete unused settings at ManiaControl start'; /* * Private properties @@ -49,6 +50,7 @@ class SettingManager implements CallbackListener, UsageInformationAble { $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::AFTERINIT, $this, 'handleAfterInit'); $this->initSetting($this, self::SETTING_ALLOW_UNLINK_SERVER, false); + $this->initSetting($this, self::SETTING_DELETE_UNUSED_SETTING_AT_START, true); } /** @@ -128,6 +130,10 @@ class SettingManager implements CallbackListener, UsageInformationAble { * @return bool */ private function deleteUnusedSettings() { + if ($this->getSettingValue($this, self::SETTING_DELETE_UNUSED_SETTING_AT_START)) { + return; + } + $mysqli = $this->maniaControl->getDatabase()->getMysqli(); $settingStatement = $mysqli->prepare("DELETE FROM `" . self::TABLE_SETTINGS . "` WHERE ((`linked` = 0 AND `serverIndex` = ?) OR `linked` = 1) AND `changed` < NOW() - INTERVAL 1 HOUR;");