query("SELECT setting_key, setting_value FROM system_settings") ->fetchAll(PDO::FETCH_KEY_PAIR); return $rows ?: []; } function settings_cache_load(): array { static $loaded = null; if ($loaded !== null) { return $loaded; } $path = _settings_cache_path(); if (is_file($path)) { $data = @include $path; if (is_array($data)) { return $loaded = $data; } } global $pdo; if (!($pdo instanceof PDO)) { return $loaded = []; } $data = db_get_all_settings($pdo); settings_cache_write($data); return $loaded = $data; } function settings_all(): array { return settings_cache_load(); } function setting(string $key, $default = null) { $data = settings_cache_load(); return array_key_exists($key, $data) ? $data[$key] : $default; } function db_update_setting(PDO $pdo, string $key, string $value, ?int $userId = null): void { $s = $pdo->prepare( "INSERT INTO system_settings (setting_key, setting_value, updated_by) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value), updated_by = VALUES(updated_by)" ); $s->execute([$key, $value, $userId]); settings_cache_clear(); }