WebBlocks CMS Inventar für KI-Seitenerstellung

Zweck

Dies ist der kompakte, KI-orientierte Design- und Autorenvertrag für WebBlocks CMS. Lesen Sie es, bevor Sie über Internal Content API ein Seitendesign vorschlagen oder anwenden.

Es beantwortet fünf Fragen für jeden versendeten Kernblock:

  1. Welche Inhalte bleiben im CMS-Administrator bearbeitbar?
  2. Welche gemeinsamen Einstellungen und Varianten werden unterstützt?
  3. Welche Kinder- und Medienbeziehungen sind gültig?
  4. Welchen stabilen öffentlichen HTML gibt der Renderer aus?
  5. Welches visuelle Ergebnis kann der Block ohne die Rohseite HTML erzeugen?

Dieses Dokument fasst das quellengestützte Verhalten zusammen. Die Live-API-Erkennung bleibt maßgeblich für installspezifische IDs, aktivierte Plugins, benutzerdefinierte Blocktypen, Gebietsschemas, Layouts, Mediendatensätze, Navigationsmenüs und Funktionen.

Audit-Baseline

  • Repository: fklavyenet/webblocks-cms
  • Bzweig: main
  • Geprüfter Commit: 741a44bc0fe00bf38cae0753bd9edb02978b0dbe
  • Geprüfte Release-Dokumentation: 1.40.2
  • Prüfungsdatum: 2026-07-14
  • Repository-Form: Nur Paket Composer Paket
  • Veröffentlichte Kernkatalogzeilen: 51
  • Entwurf der Legacy-Katalogzeilen: 7
  • AI-beschreibbare strukturierte Kernzeilen, nachdem die folgende Richtlinie durchgesetzt wurde: 50
  • AI-schreibbare rohe HTML-Zeilen, nachdem die folgende Richtlinie durchgesetzt wurde: 0

Änderungen seit der Prüfung

Die obige Basislinie ist immer noch die letzte vollständige Prüfung. Diese Einträge wurden korrigiert Vergleichen Sie anschließend die Quelle, anstatt jeden Block erneut zu prüfen. Behandeln Sie also alles außerhalb dieser Liste als 1.40.2-era und bestätigen Sie dies durch Live-API-Erkennung.

  • card (1.40.5): Der Kartenstil variant existiert. Dieses Dokument zuvor gab an, dass kein unterstütztes Feld für die visuelle Kartenvariante vorhanden sei, was falsch war ab 1.40.5.
  • link-list (1.40.10): settings.row_layout und settings.list_frame.
  • link-list-item (1.40.8): optionales media_id-Miniaturbild.
  • 1.91.0: optionale Mobil-Bild-Beziehungen auf acht nativen Medienblöcken.
  • 1.91.1: alle neun Folien- und Slider-Inhaltspositionen.
  • 1.93.0: Rückgängigmachen/Wiederherstellen von Rich Text, Fokusmodus, Wortanzahl und sicheres Einfügeverhalten.
  • 1.94.0–1.94.2: Startvalidierung verwalteter Plugins, Quarantäne, aufbewahrte Pakete und Wiederherstellungsprüfungen für aktive Konten.

Historischer Repository-Hinweis: Der CMS-Baum, der nur vor dem Paket verfügbar war, enthielt docs/feature-inventory.md, eine umfassende Auffindbarkeitsmatrix für Produktfunktionen. Es wurde entfernt, als der reine Paket-Repository-Baum erstellt wurde, und war kein blockweises KI-Erstellungsinventar. Der Laufzeitvertrag befindet sich jetzt unter resources/contracts/inventory.md.

Untersuchte Quellfamilien:

  • src/Support/Blocks/CoreBlockTypeCatalogSyncer.php
  • src/Support/BlockTypes/BlockTypeContractRegistry.php
  • src/Support/Blocks/BlockTranslationRegistry.php
  • src/Models/Block.php
  • src/Http/Requests/Admin/BlockRequest.php
  • src/Support/InternalContentApi/InternalContentPlanService.php
  • src/Support/InternalContentApi/InternalContentApiOperations.php
  • src/Http/Controllers/InternalContentApi/InternalContentResourceController.php
  • src/Http/Controllers/InternalContentApi/InternalSharedSlotController.php
  • src/Http/Controllers/InternalContentApi/InternalApiDiscoveryController.php
  • routes/admin.php
  • resources/views/admin/blocks/types/*.blade.php
  • resources/views/admin/blocks/settings/*.blade.php
  • resources/views/pages/partials/blocks/*.blade.php
  • public/cms/css/public.css
  • fokussierte Pakettests und aktuelle Produktdokumentation

Nicht verhandelbare KI-Erstellungsregeln

  1. Verwenden Sie strukturierte Blöcke. Speichern Sie keine Seite, keinen Abschnitt, keine Kartensammlung, keine Navigations-Shell, kein Formular oder keine visuelle Komponente in Trusted HTML.
  2. html ist eine Notluke nur für Menschen. Die API-Erkennung kann ihn als nicht verfügbar identifizieren, aber keine API-Mutation darf einen HTML-Block erstellen, aktualisieren, ersetzen, verschieben, neu anordnen, klonen, hochstufen, veröffentlichen oder löschen.
  3. Umgehen Sie die HTML-Einschränkung nicht durch Rich Text, <style>, <script>, Event-Handler-Attribute, Iframe-Markup, SVG-Markup, codiertes Markup oder erfundene Einstellungen.
  4. Verwenden Sie nur Felder, Enum-Werte, Medienrollen und untergeordnete Beziehungen, die hier dokumentiert und durch Live-Erkennung bestätigt sind.
  5. Behandeln Sie ein vom Administrator bearbeitbares Feld als Teil des unterstützten Autorenvertrags. Ein Wert, der nur von einem Renderer oder einem Legacy-Kompatibilitätspfad erkannt wird, ist kein normales AI-Authoring-Feld.
  6. Wenn ein visueller Bereich mit dem unterstützten Vertrag nicht ausgedrückt werden kann, halten Sie an und melden Sie eine Leistungslücke. Nähern Sie es nicht stillschweigend mit nicht verwandten Blöcken an und greifen Sie nicht auf HTML zurück.
  7. Site CSS kann Typografie, Abstände, Farben, Ränder, Schatten und reaktionsfähige Präsentation durch stabile öffentliche Hooks verfeinern. Es darf nicht zu einem versteckten Inhaltsspeicher werden oder fehlendes semantisches Markup rekonstruieren.
  8. Zielen Sie nicht auf Datenbank-IDs, generierte Block-IDs, Geschwisterpositionsselektoren oder :nth-child() für wesentliches Designverhalten. Bevorzugen Sie blockartige Attribute, native wb-*-Klassen, Seitenkörperklassen und dokumentierte Einstellungen.
  9. Sorgen Sie dafür, dass alle sichtbaren Titel, Absätze, Beschriftungen, Schaltflächen, Abzeichen, Bilder, Beschriftungen, Menüs und Formulareinstellungen über das native CMS-Feld oder den zugehörigen Datensatz bearbeitbar sind.
  10. Zuerst validieren, nur nach ausdrücklicher Zustimmung des Benutzers anwenden, zuerst Entwürfe erstellen und Live-Systemaktualisierungsaktionen und Live-Visualisierungstests dem menschlichen Bediener überlassen, sofern keine gesonderte Genehmigung vorliegt.
  11. Behandeln Sie die Karte als Opt-in-Präsentation und nicht als Standardmethode zum Gruppieren verwandter Kopien. Verwenden Sie eine Karte nur für eine unabhängig umsetzbare, wiederholbare oder begrenzte Einheit wie ein Produkt, Plugin, Preisplan, Download oder Formular.
  12. Geben Sie vor der Auswahl der Blöcke eine Designrichtung auf Standortebene an, die Charakter, Dichte, Typografie, Geometrie, Bilder, Ecken und Kontrast umfasst. Sorgen Sie dafür, dass der Blockbaum und die Site CSS diese Richtung implementieren, anstatt jeden Abschnitt isoliert auszuwählen.
  13. Variieren Sie den Seitenrhythmus bewusst. Kombinieren Sie schmale, regelmäßige, breite und Bereiche voller Breite. Wechseln Sie ruhige Kopien, dominante Bilder und strukturierte Sammlungen ab, anstatt gleichgewichtige Abschnitte zu wiederholen.

HTML Block-API-Richtlinie

Der Zielproduktvertrag lautet:

Oberfläche html-Verhalten
CMS-Administrator Menschliche Bediener können überprüfte vertrauenswürdige HTML erstellen und bearbeiten.
Öffentlicher Renderer Vorhandene veröffentlichte HTML-Blöcke werden weiterhin gerendert.
API-Erkennung Melden Sie den Block als api_readable: true, api_writable: false, authoring: human_only und erläutern Sie die Einschränkung. Präsentieren Sie kein Beispiel für eine beschreibbare Nutzlast.
Inhalt validieren/anwenden Lehnen Sie jede neue oder ersetzte html-Nutzlast mit dem stabilen Code block_type_not_api_writable ab.
Inkrementelle Seiten-/Shared-Slot-Blockerstellung Lehnen Sie html vor der Normalisierung oder Persistenz ab.
Vorhandener Block PATCH Ablehnen, wenn der Zielblocktyp html ist, auch wenn das übermittelte Feld andernfalls als sicher gelten würde.
Neu anordnen, verschieben, löschen, Slot-Ersetzung, gestaffelte Aktualisierung und Heraufstufung Lehnen Sie jede Mutation ab, deren betroffener Teilbaum oder Ersetzungsbereich einen vorhandenen HTML-Block enthält. Löschen Sie es nicht als Nebeneffekt.
API-Token-Funktionen Keine Funktion darf die Einschränkung auf Produktebene außer Kraft setzen.
Endpunkte lesen Kann den vorhandenen Block gemäß der gewählten Leserichtlinie zur Überprüfung zurückgeben; Ein Lesezugriff darf niemals einen Schreibzugriff bedeuten.

Diese Richtlinie wird im Code durch eine einzelne Produktrichtlinienklasse, WebBlocks\Cms\Support\BlockTypes\BlockTypeApiAuthoringPolicy, durchgesetzt. Jede API-Oberfläche konsultiert sie, anstatt die Regel zu wiederholen: beide Blocknormalisierer, PATCH für vorhandene Blöcke, inkrementelle Erstellung von Seiten und Shared Slot, Neuordnung von Seiten/Shared Slot, Löschen von Teilbäumen, Alles löschen von Shared Slot, Veröffentlichen von Seiten und Shared Slot, Entwurfsslot-Ersetzung, gestaffelte Aktualisierungserstellung und -förderung, Shared Slot-Zuweisung und API-Seite löschen. Ablehnungen erfolgen vor jeder Transaktion oder jedem Schreibvorgang, geben HTTP 422 mit dem stabilen Code block_type_not_api_writable zurück und hinterlassen keine teilweisen Änderungen. Keine Token-Fähigkeit überschreibt es.

Was „CMS-verwaltbar“ bedeutet

Ein Design ist nur dann CMS-verwaltbar, wenn alle folgenden Bedingungen zutreffen:

  • Sichtbare Inhalte werden in nativen Übersetzungsfeldern, Einstellungen, Medienbibliotheksbeziehungen, Navigationsdatensätzen, Commerce-Datensätzen oder untergeordneten Blöcken gespeichert.
  • Der normale Blockeditor stellt die Felder bereit, die zum Verwalten des Ergebnisses erforderlich sind.
  • Öffentliches Markup stammt von einem Paket- oder Plugin-Renderer, nicht vom Seiteninhalt.
  • Die Präsentation verwendet dokumentierte Varianten, Einstellungen, Design-Tokens und stabile CSS-Hooks.
  • Das Neuanordnen oder Bearbeiten von Inhalten erfordert keine Bearbeitung von HTML oder CSS.
  • Das mobile Verhalten kommt vom Renderer WebBlocks UI oder der stabilen Site CSS und nicht von dupliziertem mobilem Markup im Inhalt.

Ein Renderer erkennt möglicherweise einen alten oder internen Wert, den das normale Admin-Formular nicht offenlegt. Ein solcher Wert wird als Kompatibilitätseingabe dokumentiert, nicht als empfohlenes AI-Authoring-Feld.

Design-Entscheidungstabelle

Sehbedarf Bevorzugter Vertrag Stoppbedingung
Hauptseitenband section mit untergeordneten Blöcken Fügen Sie in den Abschnittseinstellungen keine sichtbare Kopie ein.
Breitenbeschränkung container Benutzen Sie den Behälter nicht als Karte oder Oberfläche.
Vertikaler Inhaltsrhythmus stack Benutzen Sie den Behälter nicht nur, um einen vertikalen Fluss zu erreichen.
Hauptinhalt plus eine kompakte Aktion oder einen Wert split Verwenden Sie genau zwei direkte Kinder; Nest Stack, wenn eine Seite mehrere Blöcke benötigt.
Horizontale Aktionen oder kompakte Elemente cluster Verwenden Sie „Raster“ nicht für eine einzelne Schaltflächenreihe.
Responsive wiederholte Zellen grid mit strukturierten untergeordneten Elementen Verwenden Sie Grid nicht, um eine semantische Tabelle zu fälschen.
Seitentitel, Intro, Abzeichen, Symbol, Metadaten content_header Es besitzt immer einen H1; Verwenden Sie es nicht für gewöhnliche verschachtelte Überschriften.
Marketing-Einführung hero Hero unterstützt linke, zentrierte, geteilte und randlose Layouts; „Split“ rendert Vordergrundmedien, während „Full Bleed“ ein ungerahmtes Fotoband erstellt. Melden Sie eine Lücke, wenn das Design ein zweites bearbeitbares Vordergrundbild oder willkürlich verschachtelten Inhalt erfordert.
Konvertierungsband cta Der aktuelle CTA akzeptiert keine normal strukturierten untergeordneten Elemente außer verwalteten untergeordneten Legacy-Schaltflächen.
Wiederholte Feature- oder Statistikelemente columns und column_item Bevorzugen Sie grid und zusammensetzbares card, wenn beliebig verschachtelter Inhalt benötigt wird.
Zusammensetzbare Karte card plus Kartenregionen Nur für unabhängig begrenzte/umsetzbare Inhalte verwenden; Varianten sind Standard, flach, gedämpft, Hervorhebung und Akzent.
Einzelnes semantisches Bild image Verwenden Sie die Galerie für Sammlungen und Hintergrundmedienfelder für unterstützte Hintergründe.
Bildersammlung gallery Fügen Sie keinen separaten HTML-Leuchtkasten hinzu.
Slider/Karussell slider plus slide Verwenden Sie die Galerie, wenn der Inhalt nur eine Bildersammlung ist.
Navigation Navigationsdatensätze plus Navbar-/Sidebar-Blöcke Codieren Sie Navigationsanker in HTML nicht fest.
Kontaktformular contact_form Verwenden Sie kein rohes <form>-Markup oder mailto: als Normalform.
Bewertungen/Kommentare rating und comments Reproduzieren Sie keine Verpflichtungsspeicher oder Formulare in HTML.
Nicht unterstützte einmalige Komposition Bericht über Fähigkeitslücken Niemals standardmäßig html verwenden.

Kanonische Inhaltsplanform

Verschachtelte children-Arrays verwenden. Übermitteln Sie keine Datenbankbeziehungs-IDs in einem Inhaltsplan.

{
  "type": "section",
  "settings": {
    "spacing": "lg"
  },
  "children": [
    {
      "type": "container",
      "settings": {
        "width": "lg"
      },
      "children": [
        {
          "type": "plain_text",
          "translations": {
            "content": "Editable copy"
          }
        }
      ]
    }
  ]
}

Konventionen zum Inhaltsplan:

  • Legen Sie die gebietsschemaeigene Kopie direkt unter translations für das ausgewählte Plangebietsschema ab.
  • Fügen Sie URL, Ziel, Präsentationsvariante und andere gemeinsame Optionen unter settings ein.
  • Geben Sie die direkte Medienbibliothekszuweisung in media_id ein.
  • slide, image, hero, section, card, cta, content_header und link-list-item akzeptiert auch eine optionale mobile_media_id-Referenzierung auf oberster Ebene ein Bild-Medienbibliothekseintrag. Es wird in block_media mit der Rolle gespeichert mobile_image, länderübergreifend freigegeben und über die Admin-Medien bearbeitbar Picker und PATCH /blocks/{block}. Auf Bildschirmen mit einer Breite von bis zu 768 Pixeln ersetzt es das Standardbild; auf ein abwesendes, gelöschtes oder privates mobiles Bild zurückgegriffen wird die Standardeinstellung. Senden Sie null, um es zu löschen. Wenn Sie es in PATCH weglassen, bleibt es erhalten. Vordergrundbilder verwenden <picture><source media="(max-width: 768px)">; Hintergrundblöcke verwenden einen reaktionsfähigen CSS-Hintergrund. Verwenden Sie eine andere Ernte davon Gleiches Bild: Alternativtext, Bildunterschriften, Position, Passform, Überlagerungen und Links bleiben erhalten geteilt. Der Galerie-Viewer des Bildblocks öffnet weiterhin die Standardeinstellung Bild in voller Auflösung. Galerieelemente, Markenlogos, Video und Audio gelten nicht Akzeptieren Sie dieses Feld.
  • Fügen Sie Galerieelemente in gallery_items oder gallery_media_ids ein.
  • Verwenden Sie nur verschachtelte children; Senden Sie nicht id, parent_id, block_id, slot_type_id oder block_type_id.
  • Die API akzeptiert derzeit ein breit geformtes settings-Objekt. Diese Freizügigkeit ist keine Erlaubnis, Einstellungen zu erfinden; Verwenden Sie ausschließlich die unten aufgeführten Schlüssel.

Öffentliche Rendering-Shell

Normales Main-Slot-Rendering bietet:

<main class="wb-public-main" id="main-content">
  <div class="wb-container wb-container-lg">
    <div class="wb-stack wb-gap-6">
      <!-- page blocks -->
    </div>
  </div>
</main>

Blöcke mit der Bezeichnung root-owning platzieren data-wb-public-block-type auf ihrer eigenen semantischen Wurzel. Andere Blöcke der obersten Ebene erhalten normalerweise:

<div class="wb-public-block" data-wb-public-block-type="block-handle">
  <!-- renderer output -->
</div>

Unterstriche werden in data-wb-public-block-type zu Bindestrichen normalisiert; Beispielsweise wird content_header zu content-header.

Schnellkatalogindex

Der aktuell veröffentlichte Kernkatalog enthält 55 Zeilen:

Gruppe Griffe
Layout und Komposition section, container, stack, split, cluster, grid, card, card_header, card_body, card_footer, slider, slide
Redaktion und Marketing header, plain_text, rich-text, content_header, hero, cta, columns, column_item, feature-grid, feature-item, stat-card, image, gallery, download, file, video, audio, code, button_link, table, quote, page-list, application
Navigation link-list, link-list-item, navigation-auto, toc, breadcrumb, header-actions, sticky-navbar, navbar-brand, navbar-navigation, sidebar-brand, sidebar-navigation, sidebar-nav-item, sidebar-nav-group, search-form, sidebar-footer
Muster, Form und Engagement alert, contact_form, rating, comments
Nur für Menschen, fortgeschritten html

Layout- und Kompositionsblöcke

section — Abschnitt

Vertragsgebiet Quellengestütztes Verhalten
Zweck Hauptsemantisches Seitenband und untergeordnete Gruppierung.
Vom Administrator bearbeitbarer Inhalt Keine sichtbare Kopie. Optional: settings.layout_name sind nur Editor-Metadaten.
Einstellungen spacing: empty, sm, lg; flow: normal, offset-up, overlap-previous; optionaler Hintergrund media_id; background_position: center, top, bottom, left, right; background_overlay: soft, medium, strong, none.
Kinder Jeder unterstützte veröffentlichte untergeordnete Typ; Für API-Pläne ist mindestens ein darstellbares untergeordnetes Element erforderlich.
HTML Root-Besitzer <section class="wb-section [wb-section-sm or wb-section-lg] [wb-public-section--offset-up or wb-public-section--overlap-previous] wb-stack" data-wb-public-block-type="section">…</section>. Hintergrundmedien fügen paketeigene Klassen-/Stil-Hooks hinzu. Flussmodifikatoren werden auf kleinen Bildschirmen zurückgesetzt.
Beispielauftritt Ein Themenband über die gesamte Breite, das einen eingeschränkten Container enthält, oder ein absichtlich verschobenes Band, das den gleichmäßigen vertikalen Rhythmus durchbricht.
Vermeiden Sichtbarer Text in den Einstellungen, leeres Chrome, Verwendung des Abschnitts als Karte oder Überlappung mehrerer aufeinanderfolgender Abschnitte.

Container – Container

Vertragsbereich Quellengestütztes Verhalten
Zweck Breitenbeschränkung und optionaler untergeordneter Fluss.
Vom Administrator bearbeitbarer Inhalt Keine sichtbare Kopie; optionaler Editor nur layout_name.
Einstellungen width: empty, sm, md, lg, xl, full; flow: stack or none.
Kinder Jeder unterstützte veröffentlichte untergeordnete Typ; Für API-Pläne ist mindestens ein Kind erforderlich.
HTML Root-besitzender <div class="wb-container [wb-container-*] [optional wb-stack]" data-wb-public-block-type="container">…</div>; wb-stack erfordert explizites flow: stack.
Beispielauftritt Zentrierter Seiteninhalt mit maximaler Breite; Die neutrale Standardeinstellung besteht direkt aus einem Cluster in der Navbar.
Vermeiden Die Breite als Oberfläche, Karte oder Themenrolle behandeln.

stack — Stapel

Vertragsgebiet Quellengestütztes Verhalten
Zweck Vertikaler Fluss und konsistenter Rhythmus zwischen direkten untergeordneten Blöcken.
Vom Administrator bearbeitbarer Inhalt Keine sichtbare Kopie; optionaler Editor nur layout_name.
Einstellungen spacing: empty/default, 1, 2, 3, 4, 6, 8.
Kinder Jeder unterstützte veröffentlichte untergeordnete Typ; Für API-Pläne ist mindestens ein Kind erforderlich.
HTML Root-Besitzer <div class="wb-stack [wb-stack-{n}]" data-wb-public-block-type="stack">…</div>.
Beispielauftritt Ein Produktname, eine Beschreibung und eine unterstützende Anmerkung, angeordnet von oben nach unten.
Vermeiden Seitenbreitensteuerung, horizontale Aktionen oder gleiche Spalten.

split — Teilt

Vertragsbereich Quellengestütztes Verhalten
Zweck Zweiseitige Komposition, bei der das erste Kind wächst und das zweite die Inhaltsgröße behält.
Vom Administrator bearbeitbarer Inhalt Keine sichtbare Kopie; optionaler Editor nur layout_name.
Einstellungen gap: empty/default, 0, 1, 2, 3, 4, 6, 8; items_alignment: center/default, start, end, stretch; width: auto/default or full; responsive: stack or preserve. New admin/API blocks default to stack while existing empty settings preserve the legacy row.
Kinder Genau zwei direkte Kinder. Platzieren Sie einen Stapel auf beiden Seiten, wenn diese Seite mehrere Blöcke benötigt.
HTML Root-Besitzer <div class="wb-split …" data-wb-public-block-type="split">…</div> mit zugelassenen wb-*-Klassen. Der Responsive Stack fügt das paketeigene .wb-public-split--stack-mobile hinzu und wechselt zu einer Spalte voller Breite bei 48rem und darunter.
Beispielauftritt Links eine Produktidentität und rechts eine Preis-plus-Kaufaktion.
Vermeiden Wiederholte gleiche Spalten, umschließende Schaltflächengruppen oder mehr als zwei direkte untergeordnete Elemente.

-Cluster – Cluster

Vertragsbereich Quellengestütztes Verhalten
Zweck Horizontale oder Inline-Komposition, insbesondere Aktionen und Navigationsleisten-Interna.
Vom Administrator bearbeitbarer Inhalt Keine sichtbare Kopie; optionaler Editor nur layout_name.
Einstellungen gap: empty, none, xs, sm, md, lg; alignment: start/default, center, end, between; items_alignment: center/default, start, end, stretch; wrap: wrap/default or nowrap; width: auto/default or full.
Kinder Jeder unterstützte veröffentlichte untergeordnete Typ; Für API-Pläne ist mindestens ein Kind erforderlich.
HTML Root-Besitzer <div class="wb-cluster …" data-wb-public-block-type="cluster">…</div> mit zugelassenen wb-*-Klassen.
Beispielauftritt Eine responsive CTA-Zeile mit zwei Schaltflächen oder eine Marke/Navigation/Aktionen-Zeile.
Vermeiden Große, sich wiederholende Kartengitter.

grid — Netz

Vertragsgebiet Quellengestütztes Verhalten
Zweck Responsives mehrspaltiges Layout.
Vom Administrator bearbeitbarer Inhalt Keine sichtbare Kopie; optionaler Editor nur layout_name.
Einstellungen columns: 2, 3, 4; ratio: equal, lead-left, lead-right (asymmetric ratios apply only to two columns); gap: empty, 3, 4, 6; alternate_media_text_sections: boolean; alternate_start: media_left or text_left.
Kinder Jeder unterstützte veröffentlichte untergeordnete Typ; Für API-Pläne ist mindestens ein Kind erforderlich.
HTML Root-Besitzer <div class="wb-grid wb-grid-{n} [wb-gap-{n}] [wb-public-grid--lead-*]" data-wb-public-block-type="grid">…</div>. Lead-Verhältnisse werden mit 2:1 oder 1:2 über dem normalen einspaltigen mobilen Haltepunkt dargestellt. Der Alternierungsmodus kann die Reihenfolge der direkten untergeordneten Elemente ändern, ohne den Stamm zu ändern.
Beispielauftritt Drei Kartenblöcke in einer Feature-Reihe oder gepaarte Bild-/Inhaltsgruppen abwechselnd links und rechts.
Vermeiden Semantische Tabellen oder eine kompakte Aktionszeile.

card — Karte

Vertragsbereich Quellengestütztes Verhalten
Zweck Zusammensetzbare gerahmte Oberfläche.
Vom Administrator bearbeitbarer Inhalt Keine normale sichtbare übergeordnete Kopie; optionaler Editor nur layout_name. Ältere Kartenreihen ohne Region stellen möglicherweise immer noch alte Kopien dar.
Einstellungen Optionaler Kartenstil in der gemeinsamen Spalte variant: flat, muted, highlight, accent; Ein leerer variant rendert die Standardkarte. Optionales Hintergrundbild media_id, background_position, background_overlay. Die optionalen Optionen url und target machen die gesamte zusammensetzbare Karte zu einem semantischen Link.
Kinder Direkte Kinder beschränkt auf card_header, card_body, card_footer; Für API-Pläne ist mindestens ein Kind erforderlich.
HTML Root-Besitzer <article class="wb-card">…</article> oder <a class="wb-card wb-no-decoration">…</a>, wenn eine URL für die gesamte Karte konfiguriert ist. Verknüpfte Karten dürfen keine verschachtelten interaktiven Steuerelemente enthalten.
Beispielauftritt Bild- oder Symbolkopfzeile, bearbeitbarer Textinhalt und Aktionsfußzeile in einer nativen Card-Shell.
Vermeiden Karten, die in Karten verschachtelt sind oder eine ältere übergeordnete Kopie für neuen Inhalt verwenden.

card_header — Kartenkopf

Vertragsbereich Quellengestütztes Verhalten
Zweck Header-Bereich innerhalb der Karte.
Vom Administrator bearbeitbarer Inhalt Keine direkte Kopie; Untergeordnete Blöcke enthalten Inhalte. Optionaler Editor nur layout_name.
Einstellungen icon_slug aus dem Katalog der aktiven Inhaltssymbole; icon_tone: default, soft, brand, accent, highlight, bold, quiet; icon_size: default, sm, lg, xl.
Kinder Strukturierte Inhalte für Kinder. Verschachteln Sie keine Kartenregionsblöcke. Die normale Platzierung erfolgt direkt unter der Karte.
HTML Root-Besitzer <div class="wb-card-header" data-wb-public-block-type="card-header">[icon]…</div>.
Beispielauftritt Kartentitelzeile mit einem Katalogsymbol und verschachtelter Kopfzeile/Nurtext.
Vermeiden Platzierung außerhalb der Karte.

card_body — Kartenkörper

Vertragsbereich Quellengestütztes Verhalten
Zweck Hauptinhaltsbereich innerhalb der Karte.
Vom Administrator bearbeitbarer Inhalt Keine direkte Kopie; Untergeordnete Blöcke enthalten Inhalte. Optionaler Editor nur layout_name.
Einstellungen Keine öffentliche visuelle Einstellung außer der Editor-only-Einstellung layout_name.
Kinder Strukturierte Inhalte für Kinder; API-Pläne erfordern mindestens einen. Verschachteln Sie keine Kartenregionsblöcke.
HTML Root-Besitzer <div class="wb-card-body" data-wb-public-block-type="card-body">…</div>.
Beispielauftritt Kartenkopie, Bild, Rich Text oder eine kleine Ansammlung von Schaltflächen.
Vermeiden Platzierung außerhalb der Karte.
Vertragsgebiet Quellengestütztes Verhalten
Zweck Unterstützender oder Aktionsbereich innerhalb der Karte.
Vom Administrator bearbeitbarer Inhalt Keine direkte Kopie; Untergeordnete Blöcke enthalten Inhalte. Optionaler Editor nur layout_name.
Einstellungen Keine öffentliche visuelle Einstellung außer der Editor-only-Einstellung layout_name.
Kinder Strukturierte Inhalte für Kinder; API-Pläne erfordern mindestens einen. Verschachteln Sie keine Kartenregionsblöcke.
HTML Root-Besitzer <div class="wb-card-footer" data-wb-public-block-type="card-footer">…</div>.
Beispielauftritt Ein oder zwei Button-Link-Kinder, die durch einen verschachtelten Cluster ausgerichtet sind.
Vermeiden Platzierung außerhalb der Karte.

slider — Schieberegler

Vertragsgebiet Quellengestütztes Verhalten
Zweck Zusammensetzbares Karussell, das seinen platzierten Behälter füllt.
Vom Administrator bearbeitbarer Inhalt Keine sichtbare übergeordnete Kopie; optionaler Editor nur layout_name.
Einstellungen height: auto, fill, viewport, large, medium, small, custom; optional min_height; aspect_ratio: 16/9, 4/3, 1/1; interval_ms: 1000–30000; boolesche Werte autoplay, pause_on_hover, show_arrows, show_dots, loop, swipe, keyboard; overlay: none/default, soft, medium, dark, strong; content_position: center/default, center-left, center-right, top-left, top-center, top-right, bottom-left, bottom-center, bottom-right; content_width: medium/default, narrow, wide, full; text_color: auto/default, light, dark; background_fit: cover/default or contain. Transition is currently normalized to slide.
Kinder Nur slide; mindestens eine Folie erforderlich.
HTML Root-Besitzer <section class="wb-slider …" data-wb-slider data-wb-public-block-type="slider"> mit Ansichtsfenster, Spur, optionalen Pfeilen und Punkten.
Beispielauftritt Heldenkarussell in voller Breite, kartenbasierter Schieberegler oder Hintergrundmedienfelder mit bearbeitbaren untergeordneten Inhalten.
Vermeiden Statische Bildergalerien.

slide — Gleiten

Vertragsbereich Quellengestütztes Verhalten
Zweck Ein Panel im Slider.
Vom Administrator bearbeitbarer Inhalt Keine direkt sichtbare Kopie; optionales Nur-Editor-Element layout_name und gemeinsam genutztes aria_label.
Einstellungen Hintergrundbild media_id; background_position; background_overlay (none, soft, medium, strong – jedes stellt seit WebBlocks UI 2.22.0 einen eigenen Scrim dar; davor kollabierte medium auf strong); content_position: center/default, center-left, center-right, top-left, top-center, top-right, bottom-left, bottom-center, bottom-right; content_width; text_color; background_fit.
Kinder Jeder unterstützte strukturierte untergeordnete Typ; Eine Folie nur im Hintergrund ist zulässig. Normales übergeordnetes Element ist Slider.
HTML Root-Besitzer <article class="wb-slide …" data-wb-public-block-type="slide">[img.wb-slide-media]<div class="wb-slide-content">…</div></article>.
Beispielauftritt Hintergrundproduktfoto mit verschachteltem Header-, Nur-Text- und Button-Link-Inhalt.
Vermeiden Eigenständige Verwendung auf oberster Ebene, wenn keine Karussellsemantik vorgesehen ist.

Redaktions- und Marketingblöcke

header — Kopfzeile

Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title.
Einstellungen und Varianten settings.variant: h1–h6; alignment: left, center, right; anchor: safe same-page ID.
Kinder/Medien Keiner.
HTML Root-Besitzer <h1> bis <h6> mit optionaler Ausrichtungsklasse und id.
Beispielauftritt Semantische Abschnittsüberschrift, die nach Inhaltsverzeichnis indiziert werden kann.
Vermeiden Seiteneinleitung mit Metadaten; Verwenden Sie den Inhaltsheader.

plain_text — Klartext

Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.content als maskierter Klartext.
Einstellungen und Varianten alignment: left, center, right.
Kinder/Medien Keiner.
HTML Allgemeiner Wrapper plus <p class="[wb-text-*]">…</p>.
Beispielauftritt Kurzer Absatz, Beschriftung oder unterstützender Satz.
Vermeiden Listen, Links, Überschriften oder formatierte Fließtexte.

rich-text — Rich-Text

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.content über den sicheren Rich-Text-Editor und Sanitizer; Der Editorverlauf unterstützt das Rückgängigmachen/Wiederholen mit einem Wortzähler und einem optionalen Fokusmodus.
Einstellungen und Varianten Keiner. Nicht unterstützte Formatierungen, Attribute und Klassen werden entfernt; Eingefügte Überschriften und Tabellenzellen behalten ihren Text als Absätze und das ausführbare/Medien-Markup wird entfernt.
Kinder/Medien Keiner.
HTML Allgemeiner Wrapper plus <div class="wb-rich-text">[sanitized editorial markup]</div>.
Beispielauftritt Mehrere Absätze mit sicherer Inline-Hervorhebung, Links und einfachen Listen.
Vermeiden Layout-Markup, <style>, Skripte, Iframes, Formulare, Schaltflächen, Tabellen oder eine komplette Seite.

content_header — Inhaltskopfzeile

Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.subtitle als Intro, translations.eyebrow als optionales Badge-Label, translations.meta als Metadatenelemente.
Einstellungen und Varianten alignment: left, center, right; icon_slug; icon_tone; icon_size: default, sm, lg, xl; badge_tone: neutral, info, success, warning, danger; optionale Hintergrundbild- und Overlay-Einstellungen.
Kinder/Medien Keine Kinder; Direktbild media_id ist ein Hintergrundmedium.
HTML Root-Besitzer <header class="wb-content-header …"> mit optionalem Symbol-/Badge-Cluster, festem <h1 class="wb-content-title">, Untertitel und Metadatenzeile.
Beispielauftritt Seitentitel mit optionalem Produktabzeichen/-symbol, prägnantem Leittext und zwei Metadatenbezeichnungen.
Vermeiden Verschachtelte Abschnitte, in denen H1 semantisch falsch ist.

hero — Held

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.subtitle als Augenbraue, translations.content. Aktionsschaltflächen sind separate untergeordnete button_link-Blöcke mit eigenem Admin-Formular.
Einstellungen und Varianten variant: default, muted, soft, accent; layout: left, centered, split, or full-bleed; title_tag: h1, h2, h3; optionale Hintergrundbild- und Overlay-Einstellungen.
Kinder/Medien Aktionen sind untergeordnete button_link-Blöcke ohne feste Anzahl. Bei Layouts links/zentriert/vollrandig handelt es sich bei media_id um Hintergrundmedien; Im Split-Modus wird es als Vordergrundbild neben der Kopie gerendert.
HTML Legacy-Layouts besitzen <section class="wb-card wb-promo [wb-card-*]">; Split fügt .wb-promo--split und .wb-promo-media hinzu. Full-Bleed verzichtet bewusst auf die Kartenklasse und verwendet .wb-public-hero--full-bleed mit einem ausgerichteten .wb-public-hero__copy.
Beispielauftritt Eine eigenständige Werbung, eine Aufteilung zwischen Vordergrundbild und Kopie oder ein ungerahmter fotografischer Held im gesamten Ansichtsfenster sowie Aktionen.
Harte Einschränkung Kein zweites Vordergrundbild, keine Produktpreis-/Vertrauensstreifenregion oder willkürlich verschachtelte Inhalte.
Aktionen button_link-Kinder hinzufügen; Sie rendern innerhalb von .wb-promo-actions. primary_cta / secondary_cta {label, url}-Objekte werden weiterhin als Kurzschrift akzeptiert, die die ersten beiden dieser untergeordneten Objekte schreibt. Greifen Sie nicht nach einem Geschwistercluster mit Button Link – dieser wird außerhalb des Promo-Stamms gerendert. allowed_child_handles listet auch das Vorgängermodell button auf, das über keine veröffentlichte Katalogzeile verfügt und in unreachable_child_handles verbleibt.

cta – CTA

Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.subtitle als Augenbraue, translations.content. Aktionsschaltflächen sind separate untergeordnete button_link-Blöcke mit eigenem Admin-Formular.
Einstellungen und Varianten variant: default, muted, soft, accent; optionale Hintergrundbild- und Overlay-Einstellungen. Der CTA-Titel wird als H2 gerendert.
Kinder/Medien Aktionen sind untergeordnete button_link-Blöcke ohne feste Anzahl. Direktbild media_id ist ein Hintergrundmedium.
HTML Root-besitzender <section class="wb-card wb-promo [wb-card-*]"> mit .wb-promo-copy und optionaler Aktionszeile.
Beispielauftritt Kurzes Konvertierungsband am Ende einer Seite.
Aktionen Identisch mit Hero: Fügen Sie untergeordnete Elemente button_link hinzu oder verwenden Sie die Abkürzung primary_cta / secondary_cta.
Einschränkung settings.layout=centered ist Renderer-kompatibel, wird jedoch nicht vom normalen CTA-Administratorformular angezeigt und ist kein empfohlenes AI-Authoring-Feld.

columns — Spalten

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.subtitle, translations.content; Titel, Abzeichen, Inhalt, URL, Symbol und Töne des untergeordneten Elements.
Einstellungen und Varianten settings.variant: cards, plain, stats. New Internal Content API plans default an omitted variant to plain; cards muss bewusst sein. Vorhandene gespeicherte Blöcke mit einer leeren Variante behalten den alten Renderer-Fallback cards bei.
Kinder/Medien Nur column_item. Die Anzahl der untergeordneten Elemente wählt das Stapel-, 2-Spalten-, 3-Spalten- oder 4-Spalten-Layout aus.
HTML Root-Besitzer <section class="wb-stack wb-gap-4"> mit optionalem Intro und einem responsiven Artikelraster.
Beispielauftritt Drei Vorteilskarten, vier kompakte Funktionen oder eine einfache Metrikreihe.
Vorbehalt der Verwaltbarkeit Der Statistik-Renderer kann das untergeordnete Element subtitle als Wert verwenden, aber normale Admin-Formulare für Spaltenelemente machen diesen Wert subtitle nicht sichtbar. KI-erstellte Statistiken, die davon abhängen, sind nicht vollständig beherrschbar und sollten vermieden werden, bis der Formularvertrag abgestimmt ist.

column_item — Spaltenelement

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.content, optionales translations.eyebrow-Emblem; geteilt settings.url, icon_slug, icon_tone, icon_size, badge_tone.
Einstellungen und Varianten Die Darstellung wird durch die übergeordnete Spaltenvariante gesteuert: Karten, einfach oder Statistiken.
Kinder/Medien Keiner; nur unter Spalten vorgesehen.
HTML Karten: .wb-card > .wb-card-body; plain: .wb-icon-card; stats: .wb-stat. Optional safe link wraps cards/plain output.
Beispielauftritt Icon-and-Copy-Funktionskarte mit optionalem Badge.
Vermeiden Eigenständige Verwendung oder Verwendung von reinen Renderer-Untertiteln für einen Statistikwert.

Verwenden Sie plain für Qualitäten, Prinzipien, Vorteile, Prozesszusammenfassungen und andere Kopien, die keine unabhängigen Objekte darstellen. Verwenden Sie cards nur, wenn jedes Element eine eigene sinnvolle Grenze hat. Die Anzahl der Gegenstände – insbesondere das bekannte Dreierset – ist nie allein ein Grund, sich für Karten zu entscheiden.

feature-grid — Feature-Raster

Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, subtitle, content; untergeordnete Funktionsfelder.
Einstellungen und Varianten Keine eigenständige Darstellungsvariante. Der Renderer erzwingt die Darstellung der Spaltenkarten und bevorzugt drei Spalten.
Kinder/Medien feature-item und Kompatibilität column_item.
HTML Delegiert an Spalten und rendert ein Kartenraster. Er wird von Block::ownsPublicRoot nicht als Root-Besitzer aufgeführt, sodass die Ausgabe der obersten Ebene möglicherweise einen generischen Wrapper um den delegierten Abschnittsstamm erhält.
Beispielauftritt Legacy-Dreier-Feature-Karten.
Empfehlung Für neue Seiten bevorzugen Sie „Spalten/Spaltenelement“ oder „Raster/Karte“. Verwenden Sie Feature Grid nur, wenn der dedizierte Editor wertvoll ist und der delegierte Vertrag akzeptiert wird.

feature-item — Feature-Element

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.content, optionales Abzeichenetikett; Geteilte URL, Symbol-Slug/-Ton, Badge-Ton.
Einstellungen und Varianten Delegiert immer die Präsentation der Spaltenelementkarten.
Kinder/Medien Keiner; vorgesehen unter Feature Grid.
HTML .wb-card > .wb-card-body > .wb-icon-card with optional icon and badge.
Beispielauftritt Eine mit Symbolen geführte Funktionskarte.
Empfehlung Bevorzugen Sie kanonische Kartenbereiche oder Spaltenelemente für neue Allzweckkompositionen.

stat-card — Statistikkarte

Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.subtitle-Label, translations.title-Wert, translations.content-Detail; freigegebene URL.
Einstellungen und Varianten Keiner.
Kinder/Medien Keiner.
HTML Allgemeiner Wrapper plus .wb-stat, .wb-stat-label, .wb-stat-value, .wb-stat-meta und optionaler Link „Weitere Informationen“.
Beispielauftritt „24h“-Wert mit „Versand“-Etikett und unterstützenden Details.
Vermeiden Dekorative Marketingkarte, bei der beliebig verschachtelte Inhalte benötigt werden.

image — Bild

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt Lokaleigenes Image alt_text und caption; geteilte optionale URL.
Einstellungen und Varianten viewer_enabled wählt ein nicht verknüpftes Bild in den CMS Gallery Viewer aus; viewer_group fügt unabhängig platzierte Bildblöcke zu einem durchsuchbaren Viewer-Set zusammen. Schwerpunkt und generierte Varianten gehören zum Mediendatensatz.
Kinder/Medien Direktbild media_id; keine Kinder.
HTML Root-Besitzer <figure class="wb-stack wb-gap-2"> mit reaktionsfähiger <img>-Ausgabe, optional verknüpftem oder wb-gallery-trigger-Image und <figcaption>. Aktivierte Gruppen registrieren ein vorhandenes Galerie-Viewer-Modal unter dem kanonischen Overlay-Stamm.
Beispielauftritt Produkt- oder redaktionelles Bild mit einer bearbeitbaren Bildunterschrift.
Vermeiden Hintergrundbehandlung oder dekoratives Layout HTML. Verwenden Sie Gallery, wenn die Sammlung selbst als ein Raster dargestellt werden soll; Verwenden Sie Betrachtergruppen, wenn unabhängig zusammengestellte Bilder einen Betrachter teilen sollen, ohne das Layout zu ändern.
Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt Bestellte Galerieelemente mit Gebietsschema-Besitz alt_text, caption, overlay_title, overlay_text; optionaler gemeinsamer Viewer-Titel. Die Galerie-Einführungskopie ist absichtlich separat.
Einstellungen und Varianten variant: grid, masonry, collage; columns: 2–5; gap: none, sm, md, lg; aspect_ratio: auto, square, 4:3, 16:9, portrait; captions_mode: hidden, below, overlay, on-hover; overlay_mode: none, gradient, solid; lightbox_enabled: boolean.
Kinder/Medien gallery_items oder gallery_media_ids verweisen auf Bildmediendatensätze; keine Blockkinder.
HTML Root-Besitzer .wb-gallery.wb-gallery--{variant} mit Galerieelementen, responsiven Medien, Untertiteln und optionalem registrierungseigenen Viewer unter dem kanonischen Overlay-Root.
Beispielauftritt Gleiches Produktraster, redaktionelles Mauerwerk in natürlicher Höhe oder Collage mit dem ersten Schwerpunkt.
Vermeiden Überschrift/Beschreibung zur Galerie hinzufügen; Verfassen Sie davor einen Content-Header oder Rich-Text.

download — Herunterladen

Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title-Schaltflächenbeschriftung und translations.subtitle-Hilfskopie.
Einstellungen und Varianten settings.variant: primary, secondary, ghost.
Kinder/Medien Direktes Dokument/Sonstiges media_id; keine Kinder.
HTML Root-Besitzer von .wb-stack.wb-gap-2 mit <a class="wb-btn …" download> und optionalem Hilfsabsatz.
Beispielauftritt Schaltfläche „Anleitung herunterladen“ mit Dateibeschreibung.
Vermeiden Nur externe Karteikarten; Verwenden Sie Datei.

file — Datei

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.content; Gemeinsamer URL-Fallback.
Einstellungen und Varianten Keiner.
Kinder/Medien Direktes Dokument/Sonstiges media_id; media gewinnt über sichere externe URL.
HTML Root-besitzende, stummgeschaltete Karte mit Titel, Beschreibung, Download-/Öffnen-Schaltfläche und Dateimetadaten.
Beispielauftritt Herunterladbare PDF-Ressourcenkarte.
Vermeiden Einfache Downloads nur per Knopfdruck.

-Video – Video

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.content; Gemeinsamer sicherer URL-Fallback.
Einstellungen und Varianten Die Quelle bestimmt das native Video, den YouTube/Vimeo-Iframe oder die Schaltfläche zum Öffnen des Videos.
Kinder/Medien Direktvideo media_id; keine Kinder.
HTML Root-besitzende stummgeschaltete Karte mit <video>, einem zugelassenen Anbieter <iframe> oder einem sicheren Link.
Beispielauftritt Hochgeladenes Demovideo mit editierbarem Titel und Beschreibung.
Vermeiden Beliebiger Iframe HTML.

Audio – Audio

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.content; Gemeinsamer sicherer HTTP-URL-Fallback.
Einstellungen und Varianten Keiner.
Kinder/Medien Admin und Renderer unterstützen ausgewählte Audiomedien; keine Kinder.
HTML Root-besitzende gedämpfte Karte mit Kopie und nativem <audio controls>.
Beispielauftritt Audio-Lektion oder Sample-Player.
API-Lücke In der geprüften Inhaltsplan-Zulassungsliste für direkte Medien wird audio weggelassen, sodass die media_id-Zuweisung abgelehnt wird, obwohl der Administrator und der Renderer dies unterstützen. Verwenden Sie nur bei Bedarf eine überprüfte sichere URL oder korrigieren Sie den API-Vertrag vor der KI-Medienzuweisung.

-Code – Code

Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.subtitle Dateiname/Sprachbezeichnung, translations.content Codekörper.
Einstellungen und Varianten settings.language wird bereinigt data-language.
Kinder/Medien Keiner.
HTML Allgemeiner Wrapper plus <pre><code data-language="…">…</code></pre>.
Beispielauftritt Kopierbar aussehendes Befehls- oder Quellcode-Snippet.
Vermeiden Prosa, Layout oder ausführbare Skripte.
Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title als Schaltflächenbezeichnung; geteilt settings.url. Zur öffentlichen Renderzeit folgt ein interner Pfad dem Rendergebietsschema (wird bei der Auflösung in den übersetzten Pfad der Zielseite umgeschrieben); Der gespeicherte Wert bleibt gemeinsam und roh.
Einstellungen und Varianten settings.target: _self or _blank; gemeinsam genutzt variant: primär/Standard oder sekundär. URL akzeptiert eine sichere vollständige HTTP(S)-URL, einen Site-Pfad, einen Anker, ein mailto:- oder tel:-Ziel.
Kinder/Medien Keiner. Dies ist eine eigenständige redaktionelle Aktion und unterscheidet sich von der nicht im Katalog verwalteten untergeordneten Aktion button, die von Hero und CTA verwendet wird.
HTML Allgemeiner Wrapper plus <a class="wb-btn wb-btn-primary"> oder dessen Sekundärklassenäquivalent; _blank fügt rel="noopener noreferrer" hinzu. Eine leere oder unsichere URL gibt keinen Anker aus.
Beispielauftritt Eine verwaltete primäre oder sekundäre Aktion oder mehrere von einem Cluster angeordnete Aktionen.
Vermeiden Fest codierte Anker in HTML oder Ersetzen durch Hero/CTAs interne verwaltete Aktion untergeordnetes Element, wenn die Aktion innerhalb dieses Promo-Stamms gerendert werden muss.

table — Tisch

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title; translations.content als durch Zeilenumbrüche getrennte und durch Pipes getrennte Zeilen.
Einstellungen und Varianten settings.variant: header-row/default or plain. Legacy settings.rows remains readable but is not recommended for new API content.
Kinder/Medien Keiner.
HTML Allgemeiner Wrapper mit .wb-table-wrap > table.wb-table, optional <thead> und <tbody>.
Beispielauftritt Kleine Vergleichs- oder Spezifikationstabelle.
Vermeiden Seitenlayout-Raster oder interaktive Datensätze.

quote — Zitat

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.content-Zitat, translations.title- und translations.subtitle-Attributionsteile.
Einstellungen und Varianten settings.variant: default or testimonial.
Kinder/Medien Keiner.
HTML Allgemeiner Wrapper mit <blockquote class="wb-stack wb-gap-2">; Testimonial fügt eine gedämpfte Kartenhülle hinzu.
Beispielauftritt Redaktionelles Zitat oder Kundenreferenz.
Vermeiden Allgemeine Hinweise.
Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.subtitle, translations.content; Kopie des untergeordneten Links.
Einstellungen und Varianten settings.row_layout: index (default), stacked puts each row description under its title. settings.list_frame: joined (default), cards gives each row its own card. Independent; beide sind über die API beschreibbar.
Kinder/Medien Nur link-list-item.
HTML Allgemeiner Wrapper mit optionalem Intro-Stack und .wb-link-list sowie wb-link-list--stacked / wb-link-list--cards für die ausgewählten Stile.
Beispielauftritt Ressourcenindex mit Titel, Metadaten, Beschreibung, Symbolen und Abzeichen.
Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt Erforderliches translations.title-, optionales subtitle-, content- und eyebrow-Plakette; geteilte erforderliche URL.
Einstellungen und Varianten icon_slug, icon_tone, icon_size, badge_tone.
Kinder/Medien Optionales Bild media_id Miniaturansicht; unter Linkliste vorgesehen.
HTML <a class="wb-link-list-item"> with an optional leading thumbnail or icon (adding wb-link-list-item--media), title/meta/badge, and optional description.
Beispielauftritt Dokumentations-/Ressourcenzeile mit der Markierung „Neu“.
Renderschutz Wird nur mit einer sicheren URL und einem Titel gesendet.

page-list — Seitenliste

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt Keine Seitenkopie. Titel, Beschreibungen und Miniaturansichten stammen aus der Übersetzung jeder aufgelisteten Seite: name, dann list_excerpt, zurückgekehrt zu seo_description, dann og_image_media_id.
Einstellungen und Varianten scope (page_type, path_prefix, subtree_of_current), page_type, path_prefix, sort, limit (1-48), layout (cards/links), columns, show_thumbnail, show_description, exclude_current, clickable_card.
Kinder/Medien Weder. Zeilen stammen aus einer Seitenabfrage. Miniaturansichten werden aus dem Open Graph-Bild jeder Seitenübersetzung aufgelöst.
HTML wb-grid von wb-card-Artikeln (oder Single-Link-Kartenwurzeln, wenn clickable_card aktiviert ist) oder ein wb-link-list von wb-link-list-item-Ankern.
Beispielauftritt Ein dreispaltiges Verzeichnis von Leitkarten, die jeweils über ihren Titel verlinkt sind.
Renderschutz Gibt nichts aus, wenn die Abfrage keine Seiten zurückgibt oder der Bereich nicht konfiguriert ist. Der Veröffentlichungsstatus, die Website, die Render-Gebietsschema-Übersetzung, die Shared Slot-Quellseiten und die Hosting-Seite werden in der Abfrage gefiltert und sind keine Einstellungen.

application — Anwendungsblock

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt Kein redaktionelles Exemplar. Wählt eine in der Datenbank registrierte eingebettete Anwendung von Stable application_handle aus.
Einstellungen und Varianten application_settings wird anhand des ausgewählten Definitionsschemas validiert. CMS-eigene Präsentationseinstellungen sind width, loading, aspect_ratio, min_height, show_loading_state und show_failure_state.
Kinder/Medien Weder. Ausführbare Assets gehören zur registrierten Anwendungsdefinition und können nicht über Blockinhalte oder Medien bereitgestellt werden.
HTML Inline-Anwendungen erhalten ein generiertes .wb-application__mount; Iframe-Anwendungen erhalten einen CMS-eigenen Iframe mit Sandbox. CSS und JavaScript, die durch fertige Definitionen deklariert sind, werden einmal pro Seite geladen.
API-Erstellung Beschreibbar durch Inhaltsvalidierung/-anwendung und Patch für direkte Blockeinstellungen. Entdecken Sie Handles mit GET /webadmin/api/applications und Schemata mit /applications/{application}/schema; Für diese Lesevorgänge ist applications.read erforderlich. Die Registrierungsmutation wird nicht offengelegt.
Renderschutz Fehlende, ungültige oder doppelte Definitionen laden keine Assets oder führen sie nicht aus. Sie rendern nichts, es sei denn, der übersetzte generische Fehlerstatus des Blocks ist aktiviert.
Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt Keine Seitenkopie; ausgewähltes CMS-Navigationsmenü.
Einstellungen und Varianten menu_key aus bekannten Menüpositionen. Fußzeilen-/Rechtsschlüssel rendern gestapelte Links; Primary/Default rendert gruppierte Links im Schaltflächenstil.
Kinder/Medien Navigationsaufzeichnungen, keine Kinder blockieren.
HTML Generischer Wrapper plus semantischer <nav>- und <ul>-Baum.
Beispielauftritt Kompatibilitätsnavigationsmenü in einem Steckplatz.
Empfehlung Bevorzugen Sie die Navbar-Navigation für neue freigegebene Header.
Lücke im Vertragsregister Dieses veröffentlichte Handle verfügt über ein Admin-Formular und einen Renderer, aber keinen Eintrag in BlockTypeContractRegistry in der Audit-Baseline. Schließen Sie keinen vollständigen Live-API-Vertrag ab, bis die Entdeckung dies bestätigt.

toc — Inhaltsverzeichnis

Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt Optionaler gemeinsamer Titel.
Einstellungen und Varianten Keiner.
Kinder/Medien Liest veröffentlichte Header-Blöcke im selben Slot mit gültigen Ankern und H2/H3-Varianten in Dokumentreihenfolge.
HTML Allgemeiner Wrapper mit einer generierten nav.wb-section-nav-Linkliste – ein eigenständiges WebBlocks UI-Grundelement, keine wb-link-list.
Live-Verhalten Die Hervorhebung der Bildlaufposition erfolgt kostenlos über das mitgelieferte WBSectionNav-Modul in derselben webblocks-ui.js, die das öffentliche Layout bereits lädt; Der Renderer besitzt kein eigenes JavaScript.
Beispielauftritt Liste „Inhalt“ für eine lange Dokumentationsseite.
Renderschutz Gibt nichts aus, wenn keine geeigneten Überschriften vorhanden sind.
Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt Geteilt home_label; Der aktuelle Seitentitel stammt von der Seite.
Einstellungen und Varianten include_current: boolean.
Kinder/Medien Verwendet Seiten-/Site-/Gebietsschemakontext.
HTML Allgemeiner Wrapper plus <nav class="wb-breadcrumb"><ol class="wb-breadcrumb-list">…</ol></nav>.
Beispielauftritt Startseite / Kategorie / Aktuelle Seite.

header-actions — Header-Aktionen

Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt Keine Kopie.
Einstellungen und Varianten Boolesche Werte show_search, show_mode_toggle, show_accent_toggle, show_language_switcher. Öffentliche Voreinstellungs-/Akzentsteuerelemente werden derzeit vom öffentlichen Designmodell auf Site-Ebene unterdrückt.
Kinder/Medien Keiner.
HTML Allgemeiner Wrapper plus kompakte .wb-topbar-actions-Symbolsteuerelemente.
Beispielauftritt Such- und Hell-/Dunkel-/Auto-Modus-Aktionen auf der rechten Seite einer Navigationsleiste.
Vermeiden Business-CTAs.
Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt Keine direkte Kopie; optionaler Editor nur layout_name.
Einstellungen und Varianten sticky_mode: sticky/default, static, fixed.
Kinder/Medien Zulässige untergeordnete Elemente: Container, Cluster, Header, plain_text, Rich-Text, button_link, Navbar-Marke, Navbar-Navigation, Header-Aktionen, Suchformular. Für API-Pläne ist mindestens ein Kind erforderlich.
HTML Root-Besitzer <nav class="wb-navbar …" data-wb-public-block-type="sticky-navbar">…</nav>.
Beispielauftritt Gemeinsamer Header: Navigationsleiste → Container → Cluster(zwischen) → Marke + Navigation/Aktionen.
Vermeiden Eine zweite benutzerdefinierte Header-Shell.
Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.subtitle; freigegebene URL, Ziel, Arienbezeichnung.
Einstellungen und Varianten url; target: _self or _blank; aria_label.
Kinder/Medien Optionales Bild media_id für Logo.
HTML Allgemeiner Wrapper plus <a class="wb-navbar-brand"> mit optionaler Bild- und Identitätskopie.
Beispielauftritt Logo, Site-Name und prägnanter Slogan.
Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt Gemeinsamer Titel als ARIA-Label; ausgewähltes Navigationsmenü.
Einstellungen und Varianten menu_key; active_indicator: underline, pill, dot, background, none; active_matching: path, section, current-page, exact, off.
Kinder/Medien CMS NavigationItem-Baum.
HTML Allgemeiner Wrapper plus Desktop-.wb-navbar-links, mobiles WebBlocks UI-Dropdown, aktive Klassen und Gruppen-Dropdowns.
Beispielauftritt Responsive Primärnavigation mit automatischem Burger-Menü.
Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.subtitle; freigegebene URL, Ziel, Arienbezeichnung.
Einstellungen und Varianten Gleicher Safe-Link-Vertrag wie Navbar Brand.
Kinder/Medien Optionales Bild media_id für Logo.
HTML Generische Hülle plus <a class="wb-sidebar-brand"> mit Logo und Ausweiskopie.
Beispielauftritt Logo/Titel der Dokumentation oben in einer Seitenleiste.
Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title als ARIA-Label; optionaler Editor nur layout_name.
Einstellungen und Varianten Optional menu_key; show_icons: boolean; active_matching: path, current-page, exact.
Kinder/Medien Entweder CMS-Navigationsaufzeichnungen oder Handbuch sidebar-nav-item / sidebar-nav-group; In manuellen API-Plänen ist mindestens ein untergeordnetes Element erforderlich.
HTML Allgemeiner Wrapper plus Seitenleistenstrukturen <nav class="wb-sidebar-nav"> und WebBlocks UI.
Beispielauftritt Dokumentationsseitenleiste mit aktiver Abschnittsanzeige.
Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt Erforderlich translations.title; freigegebene URL und Ziel.
Einstellungen und Varianten icon aus Katalog; active_mode: exact, path, current-page, manual; manual_active: boolean.
Kinder/Medien Keiner; unter „Sidebar-Navigation“ oder „Sidebar-Navigationsgruppe“ vorgesehen.
HTML <a class="wb-sidebar-link"> or nested .wb-nav-group-item, with optional icon and active state.
Beispielauftritt Link zur manuellen Dokumentation.
Vertragsgebiet Quellengestütztes Verhalten
Bearbeitbarer Inhalt Erforderlich translations.title; optionaler Editor nur layout_name.
Einstellungen und Varianten icon; initially_open: boolean.
Kinder/Medien Nur sidebar-nav-item.
HTML .wb-nav-group with button toggle, arrow, icon, and .wb-nav-group-items.
Beispielauftritt Reduzierbare „Guides“-Gruppe in einer Seitenleiste für Dokumente.

search-form — Suchformular

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title-Label, translations.content-Platzhalter, translations.subtitle-Sendeetikett.
Einstellungen und Varianten settings.variant: primary or secondary; show_button: boolean.
Kinder/Medien Keiner; erfordert eine auflösbare Site-Suchroute.
HTML Allgemeiner Wrapper plus <form role="search" class="wb-cluster …">, native Eingabe und optionale Schaltfläche WebBlocks.
Beispielauftritt Site-Suchfeld in einer Kopfzeile oder Seite.
Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, translations.content, translations.subtitle Fußzeile.
Einstellungen und Varianten settings.variant: info, success, warning, danger.
Kinder/Medien Keiner.
HTML Generisches Deckblatt plus .wb-sidebar-footer, getöntes .wb-callout und optionale gedämpfte Note.
Beispielauftritt Kleiner Dokumentationshinweis oder Versionshinweis.

Muster-, Form- und Eingriffsblöcke

alert — Alarm

Vertragsbereich Quellengestütztes Verhalten
Bearbeitbarer Inhalt translations.title, erforderlich translations.content.
Einstellungen und Varianten settings.variant: info, success, warning, danger.
Kinder/Medien Keiner.
HTML Allgemeiner Wrapper plus <div class="wb-alert wb-alert-{tone}"> und optionaler Titel.
Beispielauftritt Inline-Warnung, Erfolgsmeldung oder Informationsnachricht.
Vermeiden Marketing-Promos.

contact_form — Kontaktformular

Vertragsbereich Quellgestütztes Verhalten
Bearbeitbarer Inhalt Gebietsschemaeigenes title, content, submit_label, success_message, consent_label.
Einstellungen und Varianten recipient_email; send_email_notification; store_submissions bleibt im nativen Vertrag produktbesessen; consent_required (boolean, Standardwert false).
Zustimmung Legen Sie consent_required fest und geben Sie dem Gebietsschema einen consent_label, um ein Kontrollkästchen für die erforderliche Zustimmung darzustellen. Der Wortlaut wird übersetzt, da es sich um den Hinweis handelt. In einer akzeptierten Einreichung werden consent_accepted_at und eine Kopie des Wortlauts gespeichert, so dass eine spätere Bearbeitung des Blocks nichts daran ändern kann, wozu ein früherer Besucher nachweislich zugestimmt hat. Eine erforderliche Einwilligung ohne Formulierung für das aufgelöste Gebietsschema führt dazu, dass kein Kontrollkästchen vorhanden ist, sondern ein unbeschriftetes. consent_required ist für PATCH geschlossen: Das Entfernen eines rechtlichen Hinweises aus einem Live-Formular ist eine Entscheidung des Betreibers.
Site-Benachrichtigungsrichtlinie Kontaktformulare und teilnehmende Plugins teilen Site.notification_settings, lesen durch GET /webadmin/api/sites/{site}/notifications (content.read) und werden durch PATCH (site-settings.write, standortbezogen) geändert. Felder: notification_mode (full, alert_only), notification_frequency (immediate, batched, daily), batch_minutes (1–60), daily_summary (boolean), summary_hour (0–23 in der Zeitzone der Website). Ausgelassene PATCH-Felder bleiben erhalten; Ungültige, Null- und unbekannte Werte werden abgelehnt. Dies sind Site-Einstellungen. Blockieren Sie niemals PATCH-Felder.
Benachrichtigungsdatenschutz alert_only verfügt nur über vertrauenswürdige Site-Kopie, Zählungen und normale authentifizierte CMS-Posteingangslinks. Kein Besuchername/-adresse, Betreff/Text, IP, Browserinformationen, Quell-URL/Referrer, Besucher-Antwort, benutzerdefinierte Header oder Anhänge. Separate minimale Mailables erhalten niemals Besuchermodelle. full behält detaillierte Benachrichtigungen, einschließlich detaillierter Chargen. Tägliche Zusammenfassungen enthalten immer Zählungen und geschützte Links, auch wenn der ausgewählte Inhaltsmodus full ist. Plugins können den Datenschutzmodus der Website nicht außer Kraft setzen.
Benachrichtigungszeitpunkt Neue Sites werden standardmäßig auf alert_only, batched, zehn Minuten, eine daily-Zusammenfassung um 09:00 Uhr aktiviert. Bei Upgrade-Migrationen bleibt das vorhandene vollständige/sofortige Verhalten erhalten, wobei Zusammenfassungen deaktiviert sind. Bei gebündelten Kontakt-E-Mails wird die erste Benachrichtigung sofort gesendet und nachfolgende Nachrichten pro Site/Kanal/Empfänger zusammengefasst. Live-Chat-Batches pro Konversation, sodass jede Konversation sofort ihre erste Offline-Benachrichtigung erhält. daily sendet eine kombinierte Zusammenfassung pro Standort/Empfänger/Tag; Wenn daily_summary aktiviert ist, werden vorhandene ausstehende Arbeiten an daily erinnert. Gelesene Kontaktnachrichten warten auf Antwort, bis sie beantwortet/archiviert werden; Spam-/Quarantäne-/Archiv- und Opt-out-Nachrichten sind ausgeschlossen.
Auslieferung und Plugin-Erweiterung webblocks:notifications:dispatch wird jede Minute beim Laravel-Scheduler registriert; Hosts müssen es ausführen und einen gemeinsam genutzten Cache verwenden, der atomare Sperren unterstützt, wenn mehrere Worker ausgeführt werden. Bei der Registrierung werden nur Site-/Kanal-/Quellenkennungen und der Status mit eindeutigen Quellschlüsseln gespeichert. Die Richtlinien werden vor der Auslieferung erneut gelesen. Fehler sind generisch und werden nie automatisch wiederholt. Abgebrochene Versuche gelten nach 15 Minuten als fehlgeschlagen. Terminalereignisse und der Leerlauf-Versandstatus werden nach 30 Tagen bereinigt. GET stellt standortbezogene Nachrichtenergebnisse und die neuesten täglichen Zusammenfassungsergebnisse bereit; Im Bereich „Site-Einstellungen“ und in vorhandenen Posteingängen wird der Lieferstatus angezeigt. Aktivierte Plugins registrieren einen SiteNotificationChannel-Adapter über SiteNotificationChannels mit seinem Plugin-Handle und besitzen standortbezogene Quellen, Empfänger, Berechtigung, Detail-Mail und ausstehende Zählungen; Deaktivierte Plugins werden nicht versendet.
Panel-Benachrichtigungen Ab CMS 1.96.0 verlinkt der gemeinsame Admin-Kopf über die WebBlocks-UI-Aktion wb-btn wb-btn-ghost wb-btn-icon und den Zähler wb-btn-badge auf das Dashboard-Benachrichtigungspanel. Sichtbare Zahlen sind auf 99+ begrenzt; das barrierefreie Label enthält die genaue Anzahl. Site-Betriebsmanager sehen die Summen ungelesener (new) und auf Antwort wartender (new + read) Kontaktnachrichten zugänglicher Sites sowie eine Zeitplanwarnung, wenn eine solche Site geplante E-Mails benötigt und der erfasste Zustand ungeprüft, verzögert, fehlgeschlagen oder nicht verfügbar ist. Ab CMS 1.97.0 zählt das Kopf-Badge nur ungelesene Nachrichten; gelesene, noch unbeantwortete Nachrichten und Scheduler-/Schemawarnungen bleiben separate Dashboard-Zustände ohne Einfluss auf das Badge. Bei null ungelesenen Nachrichten bleibt die Glocke ohne Zahl sichtbar. Die Actions-Zelle der Site-Zeile nutzt das Standard-WebBlocks-UI-Anzeigesymbol mit übersetztem Tooltip und barrierefreiem Label zum Öffnen unbeantworteter Nachrichten. Gespeicherte Arbeit ist unabhängig von Mail-Einwilligung, Empfängerkonfiguration, Zustellergebnis oder Scheduler-Belegen sichtbar. Besuchernamen, Adressen, Betreffzeilen, Inhalte oder IPs erscheinen nicht in der Zusammenfassung. Lesezugriffe senden keine E-Mails, verbrauchen keine Ereignisse, markieren nichts als gelesen und erzeugen keinen Scheduler-Gesundheitsnachweis. Zahlen werden bei jedem Laden einer Panelseite aktualisiert; dies ist der aktuelle gemeinsame Posteingangszustand, keine persönliche Benachrichtigungshistorie und kein automatisches Polling. Site-Links nutzen GET /webadmin/contact-messages?site={id}; die sitebezogene Auswahl wird geprüft und in sicheren Posteingangs-Rückkehr-URLs erhalten. Beantwortete, archivierte, Spam- und Quarantänenachrichten sind ausgeschlossen; fehlendes Posteingangsschema zeigt eine Migrationswarnung statt eines leeren Posteingangs. Live Chat behält seinen separaten berechtigungs- und sitebezogenen Plugin-Panel-Indikator, der auch ohne geplante E-Mails funktioniert.
Zustand und Voraussetzungen des Planers CMS 1.95.1 erfasst einen tatsächlich jede Minute ausgeführten geplanten Callback getrennt von Start/Abschluss/Fehlern des Benachrichtigungsbefehls in der CMS-Datenbank. Das aus der Site-Policy abgeleitete required ist für gebündelte/tägliche Zustellung oder Tageszusammenfassungen true. Ab CMS 1.95.2 zeigt das Dashboard einen Gesundheitsstatus mit Links zu allen für Site-Betriebsmanager zugänglichen Sites, einschließlich älterer Sites mit ausschließlich sofortiger Zustellung. Die Warnstufe hängt davon ab, ob eine zugängliche Site geplante Benachrichtigungen benötigt; unzugängliche Sites beeinflussen sie nicht. Sofortige Zustellung ohne Tageszusammenfassungen behält eine Informationskarte, die erklärt, dass Planung hierfür optional ist. Site-Einstellungen und die sitebezogene Benachrichtigungs-GET-API zeigen scheduler_health mit Gesamt-/Scheduler-/Worker-Status und UTC-Zeitstempeln. Fehlende Belege bleiben unverified; über 300 Sekunden alte Belege sind delayed; Verarbeitungsfehler und nicht verfügbares Schema sind ausdrücklich ausgewiesen; ein aktueller unvollendeter Lauf kann running sein. Manuelle Zustellung und Statusabfragen erzeugen keinen Scheduler-Heartbeat. Der schreibgeschützte Befehl webblocks:scheduler:status --json endet nur bei verifiziert gesundem Zustand erfolgreich. Scheduler-Ausführung garantiert weder SMTP-/Posteingangszustellung noch die Gesundheit jedes Knotens. Installer und Gast-Setup-Hinweis erklären funktionierende E-Mail, kanonische APP_URL, serverseitige Planung jede Minute und gemeinsam genutzten Cache mit atomaren Sperren für mehrere Worker; das CMS installiert keinen Cron. Aktivierte Benachrichtigungsplugins dürfen denselben SchedulerHealth-Dienst in Einstellungen und Gesundheitsprüfungen nutzen.
Kinder/Medien Keine.
HTML Allgemeiner Wrapper um natives section.wb-card, CSRF-geschütztes Formular, vom Renderer generiertes Anti-Spam-Feld, WebBlocks-Eingaben, Textbereich, optionales Kontrollkästchen für die Zustimmung, Validierungsfehler und Schaltfläche zum Senden.
Beispiel-Erscheinungsbild Vollständig verwaltetes Kontaktformular, gespeichert in Kontaktnachrichten mit optionaler Benachrichtigung.
Vermeiden Rohform HTML, benutzerdefinierte Honeypot-Felder oder mailto:-Ersatz.

rating — Bewertung

Vertragsbereich Quellgestütztes Verhalten
Bearbeitbarer Inhalt Optionale sprachabhängige Überschrift und Begleittext (title, subtitle) verwenden Textübersetzungen. Das ältere settings.title bleibt Render-Fallback; normale Labels werden vom Produkt übersetzt.
Einstellungen und Varianten scale: fixed 5; allow_change: boolean; show_summary: boolean; data_scope (CMS 1.97.0): block (Standard, erhält getrennte Feedbackbereiche) oder page (dieselbe gespeicherte Site/Seite, überlebt Blockersetzung). Editor und Block-PATCH unterstützen den Umfang.
Kinder/Medien Verwendet content_ratings; keine Kinder.
HTML Root-Besitzer <section class="wb-card"> mit optionalem H3, teilweise gefülltem .wb-rating-stars, Zusammenfassung und No-JS-Sendeschaltflächen .wb-rating-input.
Beispiel-Erscheinungsbild Fünf-Sterne-Seitenbewertung mit Durchschnitt und Antwortanzahl.
Hinweis Nur aktive 5-Punkte-Stimmen gehen in die öffentliche Zusammenfassung ein. Seitenumfang erhält den Besucher-Session-Hash bei Blockersetzung, serialisiert Schreibzugriffe unter einer Seitensperre und erkennt erhaltene blockbezogene Hashes der aktuellen Session. Verwaiste alte Hashes lassen sich nicht automatisch zuordnen oder deduplizieren; vorhandene Zeilen bleiben bis zur Aktualisierung einer erkannten Stimme unverändert. Das Formular markiert die Stimme der aktuellen Session mit aria-pressed und sperrt erneute Eingaben, wenn allow_change false ist; auch der Server erzwingt dies. GET erzeugt keine Besucher-ID.

comments — Kommentare

Vertragsbereich Quellgestütztes Verhalten
Bearbeitbarer Inhalt Keine blockverfasste Besucherkopie; Produktübersetzungen liefern Etiketten und Nachrichten.
Einstellungen und Varianten form_enabled, show_approved, show_author_name; sort_order: newest or oldest; data_scope (CMS 1.97.0): block (Standard) oder page. Seitenumfang umfasst genehmigte Datensätze derselben gespeicherten Site/Seite, auch bei gelöschtem Ursprungsblock; benachbarte Seiten und Sites bleiben ausgeschlossen.
Kinder/Medien Verwendet moderiertes comment_entries; keine Kinder.
HTML Root-eigenes <section class="wb-card wb-public-comments"> mit getrennt beschrifteten Comments/Listen- und Leave a comment/Formularbereichen (CMS 1.97.1), lokalisierten Produktüberschriften und Badge für genehmigte Kommentare. Autor/Datum teilen eine umbrechende Metadatenzeile; escapierter mehrzeiliger Text nutzt kompakte Abstände. Das Formular hat eine themeangepasste dezente Fläche, ein dreizeiliges Textfeld und ein kompaktes Namensfeld, das sich auf Mobilgeräten verbreitert. Erhalten bleiben 25-Einträge-Paginierung (comments_page_{block_id} mit Fragment- und Abfrageerhaltung), nativer CSRF-Schutz, Anti-Spam-Felder, gezielter Validierungsstatus und Absendeaktion. Listen- und Formularsichtbarkeit bleiben unabhängig.
Beispiel-Erscheinungsbild Moderierte Kommentare unter einem Artikel oder Produktleitfaden.
Vermeiden Benutzerdefinierter Kommentarspeicher oder Rohformular-Markup.

Erweiterter Block nur für Menschen

html — HTML (Vertrauenswürdig)

Vertragsbereich Quellengestütztes Verhalten und Zielpolitik
Zweck Überprüfte menschliche Fluchtluke auf vertrauenswürdiges Markup, für das noch kein strukturierter Produktvertrag besteht.
Vom Administrator bearbeitbarer Inhalt Vertrauenswürdiger HTML-Inhalt. Das aktuelle Übersetzungsregister behandelt es als Textfamilieninhalt.
Einstellungen und Varianten Keiner. Erkannte Overlay-/Body-End-Fragmente können in Paketregister extrahiert werden.
Kinder/Medien Keine Kinder.
HTML Allgemeiner Wrapper plus ein einfacher innerer <div> mit vertrauenswürdigem Markup; Extrahierte Fragmente werden möglicherweise außerhalb der sichtbaren Wurzel gerendert.
API-Erstellung Verboten. Keine Erstellung, Aktualisierung, Ersetzung, Topologiemutation, destruktive Mutation, abgestufte Mutation oder Veröffentlichungsmutation.
KI-Verhalten Melden Sie eine Funktionslücke und schlagen Sie einen strukturierten Block/eine strukturierte Variante/einen Renderer vor. Generieren Sie niemals eine beschreibbare HTML-Nutzlast.

Legacy- und Nur-Renderer-Handles

Behandeln Sie einen Blade-Teil nicht als Beweis dafür, dass ein Handle für neuen API-Inhalt verfügbar ist. Die aktuelle Quelle enthält Kompatibilitätsrenderer und Entwurfszeilen, bei denen es sich nicht um veröffentlichte Kernautorenverträge handelt.

Zeilen des Katalogentwurfs umfassen:

text
card-grid
tabs
menu
faq-list
showcase-list
contact-info

Renderer-only-, Alias-, Partial- oder Kompatibilitätshandles umfassen Beispiele wie:

accordion
faq
button
callout
list
map
metric-card
stats
testimonial
gallery-viewer
sidebar-nav-item-link
sidebar-navigation-menu-item
fallback
missing-renderer

Rules:

  • Erstellen Sie diese niemals, nur weil eine Renderer-Datei vorhanden ist.
  • Verwenden Sie sie nur, wenn der authentifizierte Live-Blockkatalog das genaue Handle als veröffentlicht und für die aktuelle Installation verwendbar meldet.
  • Bevorzugen Sie die oben dokumentierten kanonischen strukturierten Blöcke.
  • Interne Teilfunktionen wie der Galerie-Viewer und Seitenleisten-Link-Renderer sind niemals Inhaltsplan-Blocktypen.

Visuelle Kompositionsrezepte

Dies sind verwaltete Blockbäume, keine festen Vorlagen. Bestätigen Sie alle Handles zur Laufzeit.

Beginnen Sie mit dem am wenigsten gerahmten Rezept, das den Inhalt erfüllt. Wiederholen Sie nicht dasselbe Rezept in benachbarten Seitenbändern und wählen Sie das Feature-Card-Rezept nicht aus, nur weil die Quelle drei kurze Elemente enthält.

Redaktionelle Einführung mit Vordergrundmedien

section(spacing:lg)
└── container(width:xl)
    └── hero(layout:split, foreground media)
        ├── button_link(primary)
        └── button_link(secondary)

Verwenden Sie ein großes, aussagekräftiges Bild und eine zurückhaltende Oberflächengestaltung. Wählen Sie layout:full-bleed, wenn das Bild zu einem sichtfensterweiten, ungerahmten Öffnungsband werden soll; Behalten Sie split bei, wenn das Bild semantischen Vordergrundinhalt hat.

Ungerahmte Grundsätze oder Vorteile

section(spacing:lg)
└── container(width:xl)
    └── columns(variant:plain)
        ├── column_item
        ├── column_item
        └── column_item

Dies ist der normale Ausgangspunkt für Eigenschaften wie Erfahrung, Kommunikation, Sorgfalt, Schnelligkeit oder Zuverlässigkeit. Erhöhen Sie es nur dann auf Karten, wenn die Elemente unabhängig voneinander umsetzbar oder begrenzt sind.

Einführung in die Marketingseite mit separaten Aktionen

section(background optional)
└── container(width:lg)
    ├── hero(variant:accent, layout:centered)
    └── cluster(alignment:center, gap:sm)
        ├── button_link(primary)
        └── button_link(secondary)

Verwenden Sie dies nur, wenn die Aktionszeile außerhalb des Hero-Promo-Stamms liegen soll. Hero selbst akzeptiert Button Link-Kinder in jedem Layout, einschließlich Split; Behalten Sie Aktionen in Hero bei, wenn dies die beabsichtigte Zusammensetzung ist.

Begrenztes Entitätskartenraster

section(spacing:lg)
└── container(width:lg)
    ├── header(h2)
    └── grid(columns:3, gap:4)
        ├── card
        │   └── card_body
        │       ├── header(h3)
        │       ├── plain_text
        │       └── button_link
        ├── card
        └── card

Jeder Titel, Absatz und jede Aktion bleibt unabhängig voneinander editierbar. Reservieren Sie dieses Rezept für begrenzte Einheiten wie Produkte, Plugins, Pläne, Downloads oder Dienste mit eigenen Aktionen. Verwenden Sie die Website CSS für eine konsistente, standortspezifische Kartenoberfläche durch stabile Haken. Karte HTML nicht einstecken.

Abwechselnde Bild- und Kopierzeilen

section
└── container
    ├── grid(columns:2, alternate_media_text_sections:true, alternate_start:media_left)
    │   ├── image
    │   └── card or content stack
    └── grid(columns:2, alternate_media_text_sections:true)
        ├── image
        └── card or content stack

Bild für Vordergrundmedien verwenden. Verwenden Sie einen hintergrundfähigen Block nur, wenn das Bild semantisch einen Hintergrund darstellt.

Gemeinsame responsive Navigationsleiste

sticky-navbar(sticky)
└── container(width:lg)
    └── cluster(alignment:between, width:full)
        ├── navbar-brand
        └── cluster
            ├── navbar-navigation
            └── header-actions

Navigationsbezeichnungen und URLs gehören zu CMS-Navigationsdatensätzen, nicht zu HTML.

Verwalteter Bildschieberegler

slider(height:viewport, autoplay:false, show_arrows:true, show_dots:true)
├── slide(background media)
│   └── container
│       ├── header
│       ├── plain_text
│       └── button_link
└── slide(background media)
    └── container
        └── card
            └── card_body
                └── rich-text

Design-To-CMS-Workflow

Bevor Sie ein visuelles Design anwenden, erstellen Sie eine Zuordnungstabelle:

Designregion Inhaltseigentümer Blockbaum Variante/Einstellungen Stabile CSS-Haken Fähigkeitsstatus
Beispiel Held Seitenübersetzungen und Medienbibliothek Abschnitt → Container → Held Akzent, zentriert, Hintergrundmedien [data-wb-public-block-type="hero"], .wb-promo Wird nur unterstützt, wenn die Werbung für Hintergrundmedien zum Design passt

Für jede Region:

  1. Identifizieren Sie alle bearbeitbaren Textteile, Medien, Aktionen, Abzeichen, Navigationsdaten und dynamischen Datensätze.
  2. Ordnen Sie jedes Teil einem vom Administrator bearbeitbaren nativen Feld zu.
  3. Bestätigen Sie die übergeordneten/untergeordneten Regeln und den Renderer HTML.
  4. Bestätigen Sie, dass die visuelle Komposition mit dem dokumentierten DOM möglich ist.
  5. Verwenden Sie die Site CSS nur für Präsentationen, die das stabile DOM unterstützen kann.
  6. Wenn ein semantisches Feld, ein Wrapper, ein Slot oder eine Variante fehlt, markieren Sie die Region als nicht unterstützt.
  7. Schlagen Sie die kleinste wiederverwendbare CMS- oder Plugin-Funktion vor: eine Renderer-Variante, einen neuen strukturierten Block, ein aus vorhandenen Blöcken zusammengesetztes Muster oder einen Domänenblock wie eine Commerce-Produktsammlung.
  8. Wenden Sie wissentlich keinen Ersatz mit geringer Wiedergabetreue an, es sei denn, der Benutzer stimmt diesem Kompromiss ausdrücklich zu.

Format des Fähigkeitslückenberichts:

Region: Storefront hero
Required editable content: title, body, two actions, foreground product image, offer badge, trust items
Current closest block: hero
Supported: title, eyebrow, body, background image, promo tone
Missing: foreground media slot, split DOM, trust-item collection, discoverable managed action child
Why CSS is insufficient: required semantic wrappers and editable fields do not exist
Recommended product change: add a reusable split/storefront Hero variant and structured trust-item children
HTML fallback: prohibited

CSS Anleitung

Verwenden Sie Styling-Ebenen in dieser Reihenfolge:

  1. WebBlocks UI-Grundelemente, die bereits vom Renderer ausgegeben wurden.
  2. Öffentliche Theme-Tokens und modusbewusste öffentliche Farbrollen.
  3. Native Blockeinstellungen und -varianten.
  4. Schmale, standortspezifische CSS mit stabilen Haken.
  5. Eine wiederverwendbare Renderer- oder Blockvertragsänderung, wenn das erforderliche DOM fehlt.

Zu den stabilen Selektoren gehören:

body[data-wb-public-theme] {}
[data-wb-public-block-type="hero"] {}
[data-wb-public-block-type="card"] {}
.wb-promo {}
.wb-card {}
.wb-content-header {}

Verwenden Sie die Site CSS nicht für:

  • wesentlichen Text mit Pseudoelementen einfügen;
  • abhängig von generierten Block-IDs;
  • infer-Semantik aus Geschwisterreihenfolge;
  • CMS-erstellte Inhalte ausblenden, nur um sie durch CSS-Inhalte zu ersetzen;
  • ein fehlendes Layout mit fragiler absoluter Positionierung neu erstellen;
  • Hardcodierung rein heller Farben, die den Hell-/Dunkel-/Auto-Modus unterbrechen.

Bekannte Quellenlücken bei der Audit-Baseline

Dies sind Implementierungsergebnisse, keine Berechtigungen zur Verhaltenserfindung:

  1. Behoben: Dieser Bestand wird jetzt als resources/contracts/inventory.md ausgeliefert und wird von GET /webadmin/api/inventory an Tools bereitgestellt.
  2. webblocks-cms-docs/docs/block-type-contracts.md gibt 42 veröffentlichte Kerntypen an, während der aktuelle Katalog 51 definiert.
  3. In mehreren vorhandenen Dokumenten werden unter packages/webblocks-cms/... immer noch Rendererpfade angezeigt, die nur vor Paketen verfügbar sind. Aktuelle Paketpfade beginnen bei resources/views/....
  4. Behoben: Das vertrauenswürdige HTML ist nicht mehr über die API beschreibbar. BlockTypeApiAuthoringPolicy blockiert jeden API-Mutationspfad, einschließlich der generischen Normalisierung, des PATCH für vorhandene Blöcke und der Shared Slot-Vorgänge zum Neuordnen, Teilbaumlöschen, Löschen aller und Veröffentlichen.
  5. Gelöst: Hero und CTA sind einfache Container für button_link-Kinder sowohl im Admin als auch in der API. Die Felder primary_cta / secondary_cta sind als Zwei-Tasten-Kurzschrift erhalten. Die unveröffentlichte Legacy-Katalogzeile button ist kein Authoring-Blocker mehr.
  6. Behoben: Der Spaltenelement-Editor macht jetzt das Untertitelfeld verfügbar, das die Variante „Spalten stats“ als Statistikwert rendert.
  7. Audio verfügt über eine normale Administrator-Medienauswahl und einen Renderer für öffentliche Medien, aber in der Content-Plan-Zulassungsliste für direkte Medien wird Audio weggelassen.
  8. Behoben: Die Symbolnormalisierung hat einen Besitzer. InternalContentApiOperations enthält die kanonische PUBLIC_ICON_BLOCK_TYPES-Liste sowie die gemeinsam genutzten Slug-/Ton-Normalisierer und der gesamte Inhaltsplan wird an diese delegiert, sodass Pläne und inkrementelle Blockendpunkte Symbole identisch validieren.
  9. API-Blockeinstellungen unterliegen noch nicht einem einzigen maschinenlesbaren Einstellungsschema pro Block. Unbekannte Einstellungen können die Normalisierung überleben, auch wenn kein Renderer oder Admin-Feld sie verwendet.
  10. Gelöst: navigation-auto verfügt jetzt über einen dokumentierten Vertrag in BlockTypeContractRegistry und ist über Blocktypen und Inhaltsverträge erkennbar.
  11. WebBlocks UI liefert eine wb-footer-*-Anatomie (wb-footer-grid, wb-footer-brand, wb-footer-nav, wb-footer-link, wb-footer-list, wb-footer-item, wb-footer-copy, wb-footer-meta, wb-footer-text, wb-footer-logo), die kein CMS-Renderer ausgibt. Eine Fußzeile mit gemeinsam genutztem Steckplatz besteht stattdessen aus generischem wb-section/wb-container/wb-grid/wb-stack/wb-cluster, sodass das Muster nur über handgeschriebene Layouts erreichbar ist. Cosmetic seit 1.50.0 gab .wb-slot-footer eine eigene Oberfläche; Ein Fußzeilen-Erstellungsblock bleibt bewusst zurückgestellt und nicht ausstehend.
  12. Behoben: GET /content-contract leitet seinen media_library-Abschnitt aus der registrierten Routentabelle ab, sodass supported_operations und unsupported_operations nicht von dem abweichen können, was openapi.json veröffentlicht. Hochladen, Remote-Abrufen, Löschen, Ersetzen und Verschieben werden veröffentlicht, sofern sie mit der von jeder Route erzwungenen Funktion unterstützt werden.
  13. Gelöst: Die Einwilligung hat eine dem Besucher zugewandte Hälfte. Der Banner-Schalter „Systemeinstellungen“ rendert das Cookie-Zustimmungsmuster von WebBlocks UI auf öffentlichen Seiten und verbindet es mit dem vorhandenen POST /privacy-consent/sync-Endpunkt. contact_form erhält settings.consent_required sowie ein übersetztes consent_label, das bei jeder Übermittlung aufgezeichnet wird.
  14. Das Repository verfügt über Dashboard- und Seitenverwaltungs-Screenshots, aber keine kanonische visuelle Fixture-Galerie pro Block/pro Variante. Bei den „Beispieldarstellungen“-Beschreibungen in diesem Inventar handelt es sich daher um aus der Quelle abgeleitete und nicht um durch Screenshots unterstützte goldene Referenzen. Bis es diese Galerie gibt, bevorzugen Sie dokumentierte neutrale Kompositionen und vermeiden Sie es, allein durch Prosa visuelle Wiedergabetreue zu beanspruchen.
  15. Zur Planung gelöst: GET /content-contract veröffentlicht jetzt einen maschinenlesbaren Design-Richtungsvertrag, der Charakter, Dichte, Typografie, Geometrie, Bilder, Ecken, Kontrast, Rhythmusrollen, Kartenrichtlinien und bekannte Kompositionslücken abdeckt. Es wird bewusst nicht auf eine versteckte Stilaufzeichnung verzichtet; KI-Tools geben die Richtung in ihrem Plan/Bericht an und setzen sie durch unterstützte Blockauswahl, Thementoken und eine stabile Site CSS um.

Bestandsüberprüfung und Frischeprüfungen

Das Produkt ist Eigentümer dieses Laufzeitvertrags. Das Dokumentations-Repository speichert einen generierten Versions-Snapshot mit einer eindeutigen Quellidentität; Änderungen beginnen im Produktvertrag.

Ab CMS 1.94.3 validieren composer test:inventory und composer test:docs resources/contracts/inventory-review.json anhand der aktuellen Vertrags- und Laufzeitquellen-Fingerabdrücke. Geänderte, hinzugefügte oder entfernte Laufzeitdateien und Produktversionsänderungen erfordern eine erneute explizite Überprüfung. CI und Pre-Push führen dieselbe Prüfung durch; Die Release-Vorbereitung überprüft den Arbeitsbaum und der Artefakt-Builder überprüft den ausgewählten Git-Baum.

Nachdem Sie die unterstützten Felder, Aufzählungen, untergeordneten Elemente, Medien, Rendering, Editorverhalten, Berechtigungen und den Plugin-Lebenszyklus überprüft haben, aktualisieren Sie diesen Text und zeichnen Sie die Überprüfung mit composer inventory:review -- --reviewed --note="review summary" auf. Ein unveränderter Vertrag nach einer Quellenänderung wird nur mit einer ausdrücklichen --no-authoring-impact="reason"-Erklärung akzeptiert. Überprüfungsdatensätze dürfen niemals automatisch durch CI oder Release-Skripte aktualisiert werden.

Der mechanische Datensatz erfasst den veröffentlichten Kernkatalog, untergeordnete Regeln, den Renderer-Root-Besitz, die API-Schreibrichtlinie und die Unterstützung mobiler Medien durch tatsächliche Produkthelfer. PHPUnit vergleicht diesen Datensatz mit den aktuellen Hilfsprogrammen und die Quellprüfung erfordert eine eindeutige Inventarüberschrift für jeden veröffentlichten Kernblock. Fingerabdrücke und mechanische Vergleiche erzwingen Überprüfung und strukturelle Konsistenz; Sie beweisen nicht die Bedeutung jedes Satzes. Prosa und sachliche Erklärungen bleiben in der Verantwortung des Mitwirkenden und des Rezensenten.

tools/inventory-snapshot.php des Dokumentations-Repositorys generiert den Snapshot und seine inventory-source.json-Herkunft neu. Seine Prüfungen lehnen manuelle Snapshot-Änderungen ab und vergleichen die Produktversion, den Quellfingerabdruck, die Prüfsumme der Rezension und den Dokumentinhalt mit einer ausgewählten Produktkasse. Isolierte Dokumentationsprüfungen überprüfen die aufgezeichnete Herkunft, ohne dass das Produkt zur Laufzeit erforderlich ist. Snapshot-Generierung und CMS-Veröffentlichung bleiben separate Vorgänge.

  • webblocks-cms-docs/docs/ai-page-building-guide.md
  • webblocks-cms-docs/docs/internal-content-api.md
  • webblocks-cms-docs/docs/api-discovery.md
  • webblocks-cms-docs/docs/block-type-contracts.md
  • webblocks-cms-docs/docs/public-block-render-markup.md
  • webblocks-cms-docs/docs/block-ui-renderer-contract.md
  • webblocks-cms-docs/docs/public-theme-and-tones.md
  • webblocks-cms-docs/docs/public-assets.md
  • webblocks-cms-docs/docs/media-image-variants.md

Dieses Inventar sollte das erste Dokument sein, das eine KI für die Auswahl der Seitendesign-Funktionen liest. Die detaillierten Referenzen sind weiterhin nützlich für Endpunkt-Workflows, historische Kompatibilität und vollständige Renderer-Hinweise.

Plugin-Start- und Wiederherstellungsvertrag

Katalog- und ZIP-Installation, Updates und Panel-/API-Aktivierung validieren die Plugin-Quelle, Anbieterstart, Befehle und Routen in einem neuen PHP-Prozess bis cms:plugin-probe. Eine Validierung ist auch dann erforderlich, wenn keine Migration ansteht. Eine fehlgeschlagene oder abgelaufene Prüfung lässt das aktuelle Paket aktiv; Unterprozessdiagnosen werden in Antworten nicht angezeigt. Das Standard-Startzeitlimit beträgt 30 Sekunden (webblocks-plugins.install.boot_timeout_seconds).

Erfolgreiche Updates behalten das vorherige Paket bei und zeichnen auf, ob Migrationen ausgeführt wurden. Fehler bei der Datenbankeinrichtung führen dazu, dass das Plugin deaktiviert wird und seine Tabellen und Pakete erhalten bleiben. Laufzeitquellen-/Routenfehler stellen das Plugin unter Quarantäne; eine explizite Deaktivierung überschreibt konfigurationsbasierte Aktivierung. Lebenszyklus-JSON-Datensätze verwenden atomaren Ersatz.

/webadmin/plugin-recovery und sein Anmeldeformular werden ohne installierte Plugin-Quelle geladen. Routen oder Befehle. Vorhandene CMS-Anmeldekontrollen, aktiver Administratorzugriff und Super admin-Autorisierung sowie CSRF Schutz gelten. Die Wiederherstellung kann ein Plugin deaktivieren oder das beibehaltene Paket wiederherstellen, wenn Nach einer weiteren Startprüfung wurde keine Migration durchgeführt. Bei einer Wiederherstellung werden auch die Assets erneut veröffentlicht. Dies ist eine Wiederherstellung für CMS-verwaltete Pakete. Es isoliert keine beliebigen Hostanbieter oder ausführbare Sandbox-Datei PHP. Für die nicht abfangbare Prozessbeendigung ist weiterhin die separate Ausführung erforderlich Wiederherstellungsanforderung anstelle eines In-Process-Fehlerbehandlers.

Leseberechtigung für den Systemzustand

GET /webadmin/api/system/health erfordert die gezielt aktivierte Berechtigung system-health.read und ein installationsweites System-Token (allowed_site_ids: null), das einem aktiven Betreiber mit access-system gehört. Persönliche und auf Sites beschränkte Zugangsdaten können den Installationszustand nicht lesen. Ein optionaler, validierter Parameter site_id filtert Site-Prüfungen, während installationsweite Prüfungen sichtbar bleiben.

Der Endpunkt liefert sichere Meldungsschlüssel/-parameter, geordnete Probleme, Kategoriestatus (healthy, warning, critical, unknown, not_applicable), Site-Zusammenfassungen, Systeminformationen und letzte Vorgangsergebnisse. Beobachtungen zu Sites, Backups, Speicher, Plugins, Update-Bereitschaft und Verlauf werden fünf Minuten zwischengespeichert; Scheduler-Nachweise werden bei jeder Anfrage gelesen. Unbekannte und optionale Prüfungen bleiben von erfolgreichen Prüfungen unterscheidbar. Das Lesen oder Aktualisieren des Zustands verändert keine Inhalte, gleicht keine Backup-Datensätze ab, versendet keine E-Mails, führt keine Bereinigung oder Updates aus, ruft keine Release-Metadaten ab und erzeugt keine Scheduler-Nachweise. Plugin-Berichterstatter behalten ihren bestehenden Vertrag für Zustandsberichte; rohe Meldungen und Ausnahmedetails werden aus dieser Übersicht ausgeschlossen.

Vorhandene Betriebsrouten bleiben verfügbar. Plugin-Ziele aus Hilfe werden System zugeordnet; Plugin-Wartungsziele werden über den stabilen Wartungsgruppenschlüssel zusammengeführt. Der zentrale Hilfeeintrag verlinkt direkt auf die Dokumentation. Der Zustandsbericht ist ein Nachweis zur Prüfung und keine Berechtigung zum Veröffentlichen von Inhalten, Wiederherstellen eines Backups oder Aktualisieren eines Hosts. Suchprüfungen vergleichen geeignete veröffentlichte Seiten-/Sprachbereiche mit Indexzeilen; sie beweisen keine Textaktualität. Backup-Verfügbarkeit beweist keine Wiederherstellungsintegrität. Update-Bereitschaft bleibt vom normalen Site-Betrieb getrennt.