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
{
$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;
}
}
}