From a4378af9cf880414010261c1109170d22759d7df Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Tue, 23 Jun 2026 00:16:39 +0200 Subject: [PATCH] sdsfd --- src/ModulesCore/LegacyCompat.php | 36 ++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/ModulesCore/LegacyCompat.php b/src/ModulesCore/LegacyCompat.php index 415f3840..012692b0 100644 --- a/src/ModulesCore/LegacyCompat.php +++ b/src/ModulesCore/LegacyCompat.php @@ -201,17 +201,20 @@ namespace ModulesCore { $configPath = $this->modulePath($moduleName) . '/config/module.php'; $config = is_file($configPath) ? require $configPath : []; $defaults = is_array($config) ? $config : []; + $legacyDbSettings = $this->legacyDbSettings($moduleName); $storedSettingsPath = $this->storedSettingsPath($moduleName); if (!is_file($storedSettingsPath)) { - return $this->settingsCache[$moduleName] = $defaults; + return $this->settingsCache[$moduleName] = $this->mergeSettings($defaults, $legacyDbSettings); } $raw = file_get_contents($storedSettingsPath); $stored = is_string($raw) && trim($raw) !== '' ? json_decode($raw, true) : []; + $merged = $this->mergeSettings($defaults, $legacyDbSettings); + return $this->settingsCache[$moduleName] = $this->mergeSettings( - $defaults, + $merged, is_array($stored) ? $stored : [] ); } @@ -327,6 +330,35 @@ namespace ModulesCore { return $this->projectRoot . '/data/module-settings/' . trim($moduleName, '/') . '.json'; } + /** + * @return array + */ + private function legacyDbSettings(string $moduleName): array + { + $pdo = LegacyCompat::app()->basePdo(); + if (!$pdo instanceof \PDO) { + return []; + } + + try { + $stmt = $pdo->prepare( + 'SELECT settings FROM nexus_module_settings WHERE name = :name LIMIT 1' + ); + $stmt->execute(['name' => $moduleName]); + $row = $stmt->fetch(\PDO::FETCH_ASSOC); + } catch (\Throwable) { + return []; + } + + if (!is_array($row) || empty($row['settings'])) { + return []; + } + + $decoded = json_decode((string) $row['settings'], true); + + return is_array($decoded) ? $decoded : []; + } + /** * @param array $defaults * @param array $stored