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
This commit is contained in:
slawkens
2026-01-30 16:41:31 +01:00
parent 5e4806f891
commit c2415e9df3

View File

@@ -122,18 +122,21 @@ class Settings implements \ArrayAccess
public static function display($plugin, $settings): array public static function display($plugin, $settings): array
{ {
$settingsDb = ModelsSettings::where('name', $plugin)->pluck('value', 'key')->toArray(); $settingsDb = ModelsSettings::where('name', $plugin)->pluck('value', 'key')->toArray();
$config = [];
require BASE . 'config.local.php';
foreach ($config as $key => $value) { if ($plugin === 'core') {
if (is_bool($value)) { $config = [];
$settingsDb[$key] = $value ? 'true' : 'false'; require BASE . 'config.local.php';
}
elseif (is_array($value)) { foreach ($config as $key => $value) {
$settingsDb[$key] = $value; if (is_bool($value)) {
} $settingsDb[$key] = $value ? 'true' : 'false';
else { }
$settingsDb[$key] = (string)$value; elseif (is_array($value)) {
$settingsDb[$key] = $value;
}
else {
$settingsDb[$key] = (string)$value;
}
} }
} }