}> */ function asGroups(): array { $raw = siteSettings()['as_groups'] ?? []; return is_array($raw) ? $raw : []; } function saveSiteSettings(array $data): bool { $current = siteSettings(); $stringKeys = ['site_title', 'site_claim', 'site_lang', 'site_license_label', 'site_license_url', 'apache_access_log']; foreach ($stringKeys as $key) { if (array_key_exists($key, $data)) { $val = trim((string)$data[$key]); if ($val !== '') { $current[$key] = $val; } } } if (array_key_exists('posts_per_page', $data)) { $val = (int)$data['posts_per_page']; if ($val > 0) { $current['posts_per_page'] = $val; } } if (array_key_exists('as_groups', $data) && is_array($data['as_groups'])) { $current['as_groups'] = $data['as_groups']; } return file_put_contents( siteSettingsPath(), json_encode($current, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ) !== false; }