From f2aeb59d024ac5b14ac155fc79989a7af6202b9a Mon Sep 17 00:00:00 2001 From: Jan-Niclas Loosen Date: Mon, 19 Oct 2026 18:28:36 +0200 Subject: [PATCH] =?UTF-8?q?docs/feat:=20Spec=208.1/8.2=20pr=C3=A4zisiert;?= =?UTF-8?q?=20DSGVO-Hinweis=20in=20der=20Beschreibung=20von=20lit/divi-fon?= =?UTF-8?q?ts-upload?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5.5 --- .../specs/2026-10-16-etappe-4-designsystem-design.md | 4 ++-- src/Integrations/Divi/Design/DiviFontsUploadAbility.php | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/superpowers/specs/2026-10-16-etappe-4-designsystem-design.md b/docs/superpowers/specs/2026-10-16-etappe-4-designsystem-design.md index 0631000..113a79b 100644 --- a/docs/superpowers/specs/2026-10-16-etappe-4-designsystem-design.md +++ b/docs/superpowers/specs/2026-10-16-etappe-4-designsystem-design.md @@ -179,13 +179,13 @@ Jedes Tool nimmt **mehrere Einträge** eines Bereichs je Aufruf (ein Snapshot, e ### 8.1 `lit/divi-theme-options-get` / `lit/divi-theme-options-update` - Whitelist (G3 a): Schriften (`heading_font`, `body_font`, `primary_nav_font`, `secondary_nav_font`, `heading_font_weight`, `body_font_weight`), Größen (`body_font_size`, `tablet_…`, `phone_…`, `body_header_size`, `tablet_header_font_size`, `phone_header_font_size`, `body_font_height`, `body_header_height`, `body_header_spacing`, `body_header_style`), Layout (`content_width`, `gutter_width`, `section_padding`, `row_padding`). -- Die fünf Farben stehen in `get` (lesend), geschrieben werden sie nur über `lit/divi-colors-set` (eine Quelle, Snapshot `colors`) (A8). +- Die fünf Hauptfarben listet `get` nicht; es verweist für sie nur auf `lit/divi-colors-set` (eine Quelle, Snapshot `colors`) (A8). - `get` liefert je Feld Typ, Beschreibung, aktuellen Wert und Divi-Standard; `update` bereinigt mit Divis Customizer-Sanitize-Callbacks (Katalog-Adapter), schreibt mit `et_update_option()` und leert die Caches wie der Customizer (`remove_static_resources`, `et_pb_force_regenerate_templates`). - `body_header_style` nimmt genau einen Wert (`italic`, `uppercase` oder `underline`); Divis Sanitizer lehnt Kombinationen ab. `null` setzt einen Schlüssel auf den Divi-Standard zurück (`et_delete_option`); `'none'` und `false` werden abgelehnt. ### 8.2 Schriften -- Schriftnamen (Theme-Optionen, Presets, Schrift-Variablen) werden gegen Divis Google-Fonts-Liste, hochgeladene Schriften (`et_uploaded_fonts`) und Web-Safe-Schriften geprüft; Unbekanntes → Fehler mit ähnlichen Namen. +- Schriftnamen werden für Theme-Optionen und Schrift-Variablen geprüft (Preset- und Modul-Schriftattribute folgen in 4e), und zwar gegen Divis Google-Fonts-Liste, hochgeladene Schriften (`et_uploaded_fonts`) und Web-Safe-Schriften; Unbekanntes → Fehler mit ähnlichen Namen. - **`lit/divi-fonts-upload`** (G10 b): `name`, `files` (`{ "woff2": "", "woff": …, "ttf": …, "otf": … }`), `weights` (`all` oder Liste), `generic_family`. Laden mit `wp_safe_remote_get` (Größenlimit wie Medien, Grenze je Datei 5 MB (A9)), Dateityp über Inhalt prüfen (Magic Bytes), Installation im Prozess über `FontsUtility::font_add()` mit Temp-Dateien (`action: wp_handle_upload_rest`, wie Divis KI-Pfad `install_to_custom_fonts()`); Divi legt Datei und `et_uploaded_fonts`-Eintrag selbst an, ein Mirror `font-install` sichert die Aufrufkonvention. Formate: `woff2`, `woff`, `ttf`, `otf`. Namensregeln wie Divi (Sonderzeichen, Länge, kein Google-/vorhandener Name). - Keine Snapshots für Schriften: ein Upload legt nur neu an, überschreibt nie (A2). Probelauf + `confirm` gelten trotzdem. - DSGVO: lokales Laden der Google-Fonts bleibt Theme-Einstellung; Tool-Beschreibung weist auf hochgeladene Schriften als datensparsame Variante hin. diff --git a/src/Integrations/Divi/Design/DiviFontsUploadAbility.php b/src/Integrations/Divi/Design/DiviFontsUploadAbility.php index 4de8537..a4c35a9 100644 --- a/src/Integrations/Divi/Design/DiviFontsUploadAbility.php +++ b/src/Integrations/Divi/Design/DiviFontsUploadAbility.php @@ -76,7 +76,8 @@ final class DiviFontsUploadAbility implements Ability, RequiresDiviFeatures . 'weights: "all" oder Liste aus 100 … 900; generic_family: serif, sans-serif (Standard), monospace, ' . 'cursive oder fantasy. Wirkt auf die ganze Website: zuerst Probelauf (lädt und prüft die Dateien, nennt ' . 'Format, Größe und SHA-256), nach Rückfrage beim Nutzer confirm: true. Kein Snapshot; entfernen lässt ' - . 'sich die Schrift im Divi-Builder.'; + . 'sich die Schrift im Divi-Builder. Datenschutz: hochgeladene Schriften liefert der eigene Server aus ' + . '(datensparsam gegenüber Google Fonts).'; } public function inputSchema(): array