'array', 'sanitize_callback' => [Limits::class, 'sanitize'], 'default' => Limits::DEFAULTS, ]); } public function registerActions(): void { } public function render(): void { $values = (new Limits())->all(); $bounds = Limits::bounds(); $labels = [ 'upload_mb' => sprintf( /* translators: 1: maximum value in MB, 2: cap for Base64 transfers in MB */ __( 'Maximale Upload-/Download-Größe (MB, höchstens %1$d; Base64-Upload/Download höchstens %2$d MB)', 'wp-lit-mcp' ), $bounds['upload_mb'][1], Limits::INLINE_MAX_MB ), 'log_retention_days' => __('Protokoll aufbewahren (Tage)', 'wp-lit-mcp'), 'snapshot_count' => __('Anzahl Designsystem-Snapshots (ab Etappe 4)', 'wp-lit-mcp'), ]; echo '
'; } /** * PHP's own upload_max_filesize/post_max_size (via wp_max_upload_size()) can be lower than * what is configured here – WordPress itself would then refuse a large upload/download before * this limit ever applies. A warning only, since the two are independent knobs. */ private function maybeRenderUploadSizeNotice(int $uploadMb): void { $serverMaxMb = (int) floor(wp_max_upload_size() / (1024 * 1024)); if ($serverMaxMb <= 0 || $uploadMb <= $serverMaxMb) { return; } $message = sprintf( /* translators: 1: configured limit in MB, 2: server limit in MB */ __('%1$d MB übersteigt das Server-Limit von %2$d MB (upload_max_filesize/post_max_size).', 'wp-lit-mcp'), $uploadMb, $serverMaxMb ); printf('%s
', esc_html($message)); } }