chore: Version 0.7.0 (Etappe 4); Spec und Notizen nachgeführt

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Jan-Niclas Loosen
2026-10-20 00:31:24 +02:00
co-authored by Claude Sonnet 5.5
parent 1fdcb2e075
commit b91c356a28
7 changed files with 132 additions and 15 deletions
@@ -215,6 +215,18 @@ In-Request-Caches: `GlobalData::$_cached_data` (Reset bei `set_*`), `GlobalPrese
| ePanel | `edit_theme_options` + Rollen-Recht `theme_options` |
| `remove_static_resources` | `edit_posts` (oder Cron), sonst wirkungslos |
## Nachtrag Divi 5.15.1 – Schleifen (Etappe 4e, 2026-10-20)
Ausführlich: `2026-10-19-etappe-4e-recherche-schleifen.md` (rekonstruiert, siehe dort); Pfade relativ zu `includes/builder-5/server/Packages/Module/Options/Loop/`.
1. **Speicherort:** Block-Attribut `module.advanced.loop`; Schalter `desktop.value.enable`, Art `desktop.value.queryType`. Divi liest beide mit `sanitize_key()`, fehlender `queryType` → `post_types` (`LoopUtils.php:725-732`).
2. **`queryType`-Werte:** `post_types`, `current_page` (Beiträge), `post_taxonomies` (Terme; intern `terms`), `user_roles` (Benutzer), `menus`; Divi kennt außerdem die Aliase `terms` und `users` (`LoopUtils.php:881-898`) und `repeater_<ACF-Feld>`.
3. **Kontextregel:** nächster Vorfahre-oder-selbst mit `desktop.value.enable === "on"`; Tablet/Phone/Hover und `true` zählen nicht; die innerste Schleife gilt.
4. **`loop_*`-Optionen und Arten:** 34 Optionen in der Registry; Art nach Gruppe („Loop Terms“, „Loop Users“, übrige = Beiträge), die drei Meta-Schlüssel-Optionen nach Namen (Gruppennamen sind übersetzt); gespeichert wird der Array-Schlüssel.
5. **Gefahr des Fehlabgleichs:** `loop_<post|user|term>_meta_key_*` liest Meta der Art aus dem Namen mit der **ID der Schleife** (`DynamicContentLoopOptions.php:145-158`): Post-Meta des Beitrags mit der Term-/Benutzer-ID. Bei verschachtelten Schleifen gibt eine leere innere Schleife den Block unverändert an die äußere (`LoopUtils.php:4449-4457`, `4572-4598`); darum prüft das Plugin Meta-Optionen gegen jede Schleife der Kette.
6. **Rendern außerhalb einer Schleife:** `loop_*` hat keine Quelle und bleibt leer; das Plugin lehnt es beim Schreiben ab.
7. **Grenzen:** Presets starten oder ändern Schleifen auf der Website nicht (Divi parst das rohe Dokument, `LoopUtils.php:4219-4229`); globale Module werden vor der Schleifen-Phase expandiert (`BlockParser.php:917-924`), das Plugin sieht ihren Inhalt nicht.
## 7. Abweichungen und Ergänzungen zu Spec §7
1. **„Variablen … über `GlobalData::set_global_variables`“** – stimmt, aber die Funktion ersetzt die ganze Option, liefert keinen Fehler bei fehlenden Rechten und kennt keinen Typ `colors`. Das Tool muss vorher lesen, `stdClass` → Array wandeln, `allowedActions` und die zwei Customizer-Schriften entfernen und nach dem Schreiben per Lesen prüfen.