From c2415e9df3a5ffaf768f6f9668bdd38b5efd0771 Mon Sep 17 00:00:00 2001 From: slawkens Date: Fri, 30 Jan 2026 16:41:31 +0100 Subject: [PATCH] Settings: Fix variable overlapping if same var name as in core Example: Plugin has setting key named "env". The same key exist in core. It would falsely get value from core, instead of the plugin --- system/src/Settings.php | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/system/src/Settings.php b/system/src/Settings.php index 2a7a1681..849c6f71 100644 --- a/system/src/Settings.php +++ b/system/src/Settings.php @@ -122,18 +122,21 @@ class Settings implements \ArrayAccess public static function display($plugin, $settings): array { $settingsDb = ModelsSettings::where('name', $plugin)->pluck('value', 'key')->toArray(); - $config = []; - require BASE . 'config.local.php'; - foreach ($config as $key => $value) { - if (is_bool($value)) { - $settingsDb[$key] = $value ? 'true' : 'false'; - } - elseif (is_array($value)) { - $settingsDb[$key] = $value; - } - else { - $settingsDb[$key] = (string)$value; + if ($plugin === 'core') { + $config = []; + require BASE . 'config.local.php'; + + foreach ($config as $key => $value) { + if (is_bool($value)) { + $settingsDb[$key] = $value ? 'true' : 'false'; + } + elseif (is_array($value)) { + $settingsDb[$key] = $value; + } + else { + $settingsDb[$key] = (string)$value; + } } }