Hooks und Templates
Zuletzt aktualisiert: September 2026, Plugin 1.5.2
Jeder Filter und jede Action, die das kostenlose Plugin bereitstellt, mit Signatur und Zweck, gefolgt von den Templates, die ein Theme überschreiben kann, und den Variablen, die jedes davon erhält. Generiert aus den Docblocks in includes/; das Präfix lautet durchgehend wbs_dataverse_connect_.
Filter
Collections und Lesen
| Filter | Argumente | Zweck |
| wbs_dataverse_connect_collections | $collections | Collections im Code registrieren (key => config); Collections aus der Einstellungsseite mit demselben Key überschreiben sie. |
| wbs_dataverse_connect_normalize_collection | $clean, $key, $config | Letzte Station der Collection-Normalisierung; Add-ons reichen hier zusätzliche Konfigurationsschlüssel durch. |
| wbs_dataverse_connect_field_label | $label, $column, $config | Die Beschriftung einer Spalte in Cards, Detailtabellen und der Toolbar, nach Metadaten und Heuristik. |
| wbs_dataverse_connect_record_vm | $vm, $config, $record | Das View Model eines Datensatzes, bevor die Templates es ausgeben (id, name, slug, url, image, fields, files, record). |
| wbs_dataverse_connect_access_filter | $expression, $config, $scope | OData-Ausdruck, der per AND in jeden Lesezugriff auf eine Collection eingefügt wird; $scope ist list oder single. Standardmäßig leer. |
| wbs_dataverse_connect_can_view | $allowed, $config, $scope | Zugriff auf eine Collection, einen Datensatz, ein Formular oder eine Mediendatei für den aktuellen Besucher freigeben oder sperren; $scope ist collection, record, form oder media. |
| wbs_dataverse_connect_denied_notice | $html, $config, $scope | Markup, das angezeigt wird, wenn can_view abgelehnt hat; Add-ons ersetzen es durch eine Anmeldeaufforderung. |
| wbs_dataverse_connect_metadata_ttl | $seconds | Wie lange Tabellen-Metadaten im Cache bleiben. Standard: ein Tag. |
| wbs_dataverse_connect_metadata_attributes | $attrs, $table, $context | Die Attributzuordnung einer Tabelle nach dem Abruf (label, type, required, format, maxlength, options, targets). |
Formulare und Schreiben
| Filter | Argumente | Zweck |
| wbs_dataverse_connect_forms | $forms | Formulare im Code registrieren (key => config); Formulare aus der Einstellungsseite überschreiben sie. |
| wbs_dataverse_connect_normalize_form | $clean, $key, $config | Letzte Station der Formular-Normalisierung; Add-ons reichen hier zusätzliche Konfigurationsschlüssel durch. |
| wbs_dataverse_connect_form_view | $view, $config, $record | Das View Model eines gerenderten Formulars: Felder mit Beschriftungen, Optionen und Werten, Modus, Datensatz-ID, Turnstile Site Key. |
| wbs_dataverse_connect_form_record | $record, $config, $values | Letzte Station vor dem Schreiben: die Nutzlast aus column => value; $config['mode'] unterscheidet ein Anlegen von einer Aktualisierung. |
| wbs_dataverse_connect_bridge_maps | $maps | Die Zuordnungen der WBS-Forms-Bridge, indiziert nach Formular-Slug. |
| wbs_dataverse_connect_bridge_record | $record, $map, $submission, $form_id | Letzte Station vor einem Anlegen über die Bridge. |
Verbindung, Admin und Einstellungen
| Filter | Argumente | Zweck |
| wbs_dataverse_connect_connection | $conn, $context | Die Verbindung (tenant_id, client_id, client_secret, env_url, auth) für die Anfrage, die $context beschreibt (Typ collection, form, admin oder metadata, plus Konfiguration). |
| wbs_dataverse_connect_token_args | $args, $conn | Die wp_remote_post-Argumente der Token-Anfrage; hier lässt sich das Client Secret gegen eine Zertifikats-Assertion tauschen. |
| wbs_dataverse_connect_admin_tabs | $tabs | Tabs der Einstellungsseite (slug => label); ein hinzugefügter Tab wird über die Action render_tab_{slug} gerendert. |
| wbs_dataverse_connect_save_collection | $config, $post | Die Collection-Konfiguration, die gleich gespeichert wird, mit den POST-Daten (unslashed) für zusätzliche Zeilen. |
| wbs_dataverse_connect_save_form | $config, $post | Dasselbe für Formulare. |
| wbs_dataverse_connect_blocks_data | $data | Daten, die an den Block-Editor übergeben werden: Collections und Formulare als value/label-Paare, URLs der Einstellungsseite. |
| wbs_dataverse_connect_review_due | $due | false zurückgeben, um die einmalige Bewertungsanfrage auf einer Site zu unterdrücken. |
Health, Medien und Webhooks
| Filter | Argumente | Zweck |
| wbs_dataverse_connect_alert_recipients | $to | E-Mail-Adressen, an die Ausfall- und Wiederherstellungsmeldungen gehen. |
| wbs_dataverse_connect_alert_cooldown | $seconds | Cooldown, bevor zur selben Ausfallepisode erneut gemeldet wird. Standard: sechs Stunden. |
| wbs_dataverse_connect_media_ttl | $seconds | Wie lange über den Proxy ausgelieferte Bilder und Dateien im Cache bleiben, im Transient und per Cache-Control. Standard: ein Tag. |
| wbs_dataverse_connect_media_max_bytes | $bytes | Obergrenze für eine über den Proxy ausgelieferte Datei. Standard: 32 MB. |
| wbs_dataverse_connect_media_inline_types | $inline | MIME-Typen, die inline ausgeliefert werden; alles andere wird als Anhang heruntergeladen. |
| wbs_dataverse_connect_webhook_payload | $payload, $event, $hook | Die Nachricht, die gleich gesendet wird ({event, site, time, data}); $hook ist der empfangende Webhook, null bei einer Vorschau. |
| wbs_dataverse_connect_webhook_args | $args, $hook, $event | Die wp_remote_post-Argumente einer Zustellung, bevor der Body signiert wird. |
Actions
| Action | Argumente | Wird ausgelöst |
| wbs_dataverse_connect_record_created | $key, $entity_set, $id, $record | Nachdem ein Formular oder die Bridge einen Datensatz angelegt hat; $key ist der Formular-Key oder bridge:<slug>. |
| wbs_dataverse_connect_record_updated | $key, $entity_set, $id, $record | Nachdem ein Formular im Update-Modus einen Datensatz per PATCH geändert hat. |
| wbs_dataverse_connect_bridge_created | $id, $form_id, $record | Nachdem die WBS-Forms-Bridge eine Einsendung geschrieben hat (älteres Gegenstück zu record_created). |
| wbs_dataverse_connect_health_event | $kind, $state | Bei jedem erfassten Ausfall und jeder Wiederherstellung; $kind ist failure oder recovery. |
| wbs_dataverse_connect_webhook_dispatched | $event, $data, $sent | Nachdem ein Ereignis an seine Webhooks übergeben wurde, mit der Anzahl der Zustellungen. |
| wbs_dataverse_connect_collection_fields | $editing | Innerhalb der Tabelle des Collection-Editors, vor dem Submit-Button; $editing ist die Konfiguration oder null beim Hinzufügen. |
| wbs_dataverse_connect_form_fields | $editing | Dasselbe für den Formular-Editor. |
| wbs_dataverse_connect_render_tab_{slug} | keine | Rendert den Inhalt eines Tabs, der über admin_tabs hinzugefügt wurde. |
Die Bridge verarbeitet wbs_forms_after_submit($form_id, $fields, $meta) aus WBS Forms und beantwortet den Filter wbs_forms_submission_handled nach einem erfolgreichen Anlegen mit true.
Client-Funktionen
Add-ons und Theme-Code verwenden denselben Client wie das Plugin. Jeder Lesezugriff läuft über den Cache und den Health Monitor; Schreibzugriffe werden nie gecacht. Die Request-Funktionen geben das dekodierte Array oder einen WP_Error zurück; die Helfer unten geben zurück, was in ihrer Zeile steht.
| Funktion | Zweck |
wbs_dataverse_connect_get($path, $ttl = null, $context = []) | Gecachter GET relativ zur API-Basis; $ttl null ist der Site-Standard, 0 überspringt den Cache; $context['headers'] ergänzt zusätzliche Request-Header. |
wbs_dataverse_connect_post($path, $body, $context = []) | Anlegen. Gibt ['id' => guid] zurück. |
wbs_dataverse_connect_patch($path, $body, $context = []) | Aktualisierung eines einzelnen adressierten Datensatzes wie contacts(guid); mit ['headers' => ['If-Match' => '*']] werden Upserts unterbunden. |
wbs_dataverse_connect_get_raw($path, $context = []) | Rohbytes einer $value-Anfrage, für Medien; gibt body, type, name und status zurück. |
wbs_dataverse_connect_typed_value($field, $raw, $context = []) | Typisiert einen übermittelten Wert für die Web API anhand einer normalisierten Feldspezifikation; null bei leer, WP_Error bei ungültig. |
wbs_dataverse_connect_render_form($config, $record_id = '') | Rendert ein Formular, das an einen Datensatz gebunden ist. |
wbs_dataverse_connect_template($name, $vars = []) | Lädt ein Template mit Theme-Override. |
Templates
Templates liegen in wbs-connect-for-dataverse/templates/. Kopieren Sie eine Datei nach your-theme/wbs-connect-for-dataverse/ (Child-Themes funktionieren) und bearbeiten Sie die Kopie. Die Variablen werden in den Template-Scope extrahiert; alles in einem View Model ist bereits formatiert, das Template escapt nur und gibt aus.
| Template | Variablen |
| collection-list.php | $cards (vorgerendertes Card-HTML), $columns (1 bis 4) |
| collection-card.php | $vm: id, name, slug, url (Detail-Link oder leer), image, fields (Liste aus column, label, value), files, record (die Rohzeile) |
| collection-toolbar.php | $toolbar: action, hidden (Inputs als name => value), search (null oder name, id, value, label), filters (Liste aus column, name, id, label, options, value), sort (null oder name, id, options, value, label), count (int oder null), active, reset_url |
| collection-pagination.php | $pagination: page, has_prev, has_next, prev_url, next_url, count |
| record-detail.php | $vm wie oben, mit files als Liste aus column, label, url, name; $form (vorgerendertes Formular-HTML oder leer) |
| form.php | $config (normalisierte Formular-Konfiguration), $record_id (GUID oder leer), $rest_url, $nonce; das Template ruft wbs_dataverse_connect_form_view() für die typisierten Felder auf |
Frontend-Klassen tragen das Präfix dvc-. Der Submit-Handler des Formulars in assets/wbs-connect-for-dataverse.js liest die data-dvc-*-Attribute des Formularelements; ein eigenes form.php funktioniert also weiter, solange es diese Attribute behält.