docs: Divi-Formate der Presets gegen 5.15.1 geprüft

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
Jan-Niclas Loosen
2026-10-16 17:24:46 +02:00
co-authored by Claude Haiku 5.5
parent aa1c8b42de
commit 36af846b3e
@@ -4,6 +4,20 @@ Stand 2026-09-28. Grundlage: Quelltext von Divi 5.2.1 und echte Daten, die über
Pfadangaben relativ zu `wp-content/themes/Divi/`. Abkürzung **B5** = `includes/builder-5/server/`. Minifizierte Builder-Dateien liegen in `includes/builder-5/visual-builder/build/`; dort steht statt einer Zeile ein Suchbegriff.
## Nachtrag Divi 5.15.1 (Etappe 4a, 2026-10-16)
Geprüft gegen Divi 5.15.1 (installiert, freigegeben):
- `GlobalPreset::save_data()` hat den zweiten Parameter `$skip_external_cache = false`; das Plugin übergibt ihn nicht. Der Parameter wird mit einem internen Flag (`$_skip_external_cache_nested`) verodert und an `ET_Core_PageResource::remove_static_resources()` weitergereicht.
- `GlobalPresetController::sync_permission()` verlangt jetzt **zusätzlich `edit_theme_options`** (5.2.1: nur Visual-Builder-Recht). Die Rechte in Spec §10 entsprechen damit Divi.
- Der Sync nimmt Chunks an (`requestId`, `chunkIndex`, `totalChunks`, Transient `et_global_preset_chunks_<user>_<id>`); das Plugin schickt nie Chunks.
- Schrittfolge des Sync (ohne Chunks) unverändert: `prepare_data` → `get_data` → `validate_preset_count` → bei Löschaktionen `get_deleted_preset_ids` + `remove_preset_from_legacy_option` → `save_data`. Das Plugin wiederholt sie in `DesignSystemWriter::savePresets()` (Mirror `preset-sync`); diese Klasse existiert noch nicht (geplant für Etappe 4a).
- Signaturen aus Plan Step 1 bestätigt (`prepare_data`, `validate_preset_count`, `save_data`, `get_deleted_preset_ids`, `remove_preset_from_legacy_option`, `can_current_user_use_visual_builder`); `option_name`, `get_data`, `get_preset_attrs`, `get_preset_attrs_mapping` vorhanden.
- Abweichungen bei der Formatprüfung am lebenden Bestand (Seed-Skript lief erfolgreich, Seite 170):
- Zeilennummern in den Abschnitten 1–8 beziehen sich auf 5.2.1 und stimmen nicht mehr (z. B. `save_data` jetzt `GlobalPreset.php:548`, `sync_permission` jetzt `GlobalPresetController.php:465`).
- Gruppen-Preset-Einträge haben `groupName` und `groupId` (wie in Abschnitt 3), aber kein `renderAttrs` im Seed-Bestand; `renderAttrs` ist optional.
- Das Mapping (`Conversion::get_preset_attrs_mapping("divi/button")`) liefert `attrName`, `preset` und bei Bedarf `subName`. `preset` ist nicht immer eine Liste: gesehen wurden `"meta"`, `"content"` (String) und `["html"]` (Array).
- Keine weiteren Abweichungen zu §3, außer den oben genannten.
## 0. Grundlagen: wo Divi speichert
`et_get_option()`/`et_update_option()` (`epanel/custom_functions.php:211`, `:272`) haben drei Ziele: