API-Referenz.

Learn DXPR BuilderExtendArchitectuur en API’s

Die PHP-Dienste, JavaScript-Erweiterungspunkte und Routen, die DXPR Builder definiert. Dienst-IDs stammen aus dxpr_builder.services.yml, Routen aus dxpr_builder.routing.yml. Für Anfrage- und Antwortdetails jeder Route siehe API-Endpunkte.

PHP-Dienste

Dienst-ID Klasse (in src/) Zweck
dxpr_builder.service Service\DxprBuilderService Bereitet Builder-Inhalte für die Ausgabe vor, behandelt Pfad-Token, baut die Icon-Set-Registry
dxpr_builder.license_service Service\DxprBuilderLicenseService Lizenzstatus, abrechenbare Konten, Redaktions-Sync mit DXPR
dxpr_builder.key_service Service\DxprBuilderKeyService Liest und speichert den Produktschlüssel
dxpr_builder.jwt_decoder Service\DxprBuilderJWTDecoder Decodiert die Payload des Produktschlüssels
dxpr_builder.user_settings Service\UserSettings Die eigenen Editor-Einstellungen jeder bearbeitenden Person, gehalten in Benutzerdaten
dxpr_builder.content_lock Service\ContentLock Vermerkt, welches Konto eine Entitätsrevision bearbeitet
dxpr_builder.content_migration Service\ContentMigrationService Führt Inhaltsmigrationen aus; sammelt Dienste mit Tag dxpr_builder.content_migration
dxpr_builder.profile_handler Service\Handler\ProfileHandler Macht aus einem Profil Editor-Einstellungen
dxpr_builder.handler.block Service\Handler\BlockHandler Rendert Drupal-Blöcke, die als Elemente platziert sind
dxpr_builder.handler.view Service\Handler\ViewHandler Rendert Ansichtsanzeigen, die als Elemente platziert sind
dxpr_builder.template_image_validator Service\TemplateImageValidator Validiert Vorlagen-Vorschaubilder
dxpr_builder.rl_variant.extractor, dxpr_builder.rl_variant.registrar RlIntegration\Service\* A/B-Test-Varianten; ohne RL-Modul inaktiv
dxpr_builder.rl_sort.extractor, dxpr_builder.rl_sort.registrar RlIntegration\Service\* Smart-Sort-Experimente; ohne RL-Modul inaktiv
logger.channel.dxpr_builder Core-Logger-Kanal Protokollkanal dxpr_builder

DxprBuilderServiceInterface

Implementiert von dxpr_builder.service. Die Methoden, die Sie am wahrscheinlichsten aufrufen:

  • insertBaseTokens($content): ersetzt Basis-URL, Dateiverzeichnis und Modulpfad dieser Website durch Token. Der Editor speichert Inhalte in dieser Form.
  • replaceBaseTokens(&$content): void: expandiert die Token zurück zu URLs für die aktuelle Umgebung.
  • stripHtmlElementPersists(string $markup): string: entfernt die data-az-persist-Attribute. Führen Sie es auf Markup aus, das außerhalb des Editors geschrieben wurde; der Editor baut sie beim Laden neu auf.
  • getCmsElementNames(): die als Elemente angebotenen Block- und Ansichtsanzeigen, zwischengespeichert.
  • getIconSets(): array: die Icon-Set-Registry nach YAML-Erkennung und hook_dxpr_builder_icon_sets_alter().
$markup = \Drupal::service('dxpr_builder.service')->insertBaseTokens($html);

DxprBuilderLicenseServiceInterface

Implementiert von dxpr_builder.license_service.

  • isBillableUser(?AccountInterface $account = NULL): bool: TRUE für Benutzer 1 und für aktive Konten mit edit with dxpr builder, die nicht vom DXPR-Builder-Bearbeiten ausgeschlossen sind.
  • getLicenseInfo(): Lizenzstatus vom DXPR-Lizenzserver, zwischengespeichert. Ohne Produktschlüssel liefert es die Gratis-Stufe: ein Konto und 100 Inhalte.
  • syncAllUsersWithCentralStorage(string $operation, string $json_web_token = ''): void: sendet die Bearbeitenden dieser Website an DXPR. $operation ist eine der Interface-Konstanten DXPR_USER_SYNC_OPERATION (sync), DXPR_USER_ADD_OPERATION (add) oder DXPR_USER_REMOVE_OPERATION (remove).

DxprBuilderKeyService

  • getApiKey(): ?string: der Produktschlüssel. Wenn die api_key_storage-Einstellung key ist, liest er die Key-Entität, die in key_provider genannt ist; sonst liest er json_web_token.
  • setApiKey(string $key_value, string $storage_type = 'config', ?string $selected_key_id = NULL): void: speichert den Schlüssel in der Konfiguration oder in einer Key-Entität.

DxprBuilderJWTDecoder

  • decodeJwt(string $access_token): liefert die Claims sub, scope und dxpr_tier des Produktschlüssels, je NULL, wenn das Token nicht lesbar ist. Das Ergebnis wird pro Token zwischengespeichert.

JavaScript-Erweiterungspunkte

Die Editor-Skripte teilen zwei Arrays auf window.dxprBuilder. Pushen Sie eigene Objekte darauf, zwischen dem Skript, das das Array erzeugt, und dxpr_builder.js, das sie beim Laufen einmal liest.

Array Erzeugt von Was dxpr_builder.js damit tut
dxpr_param_types dxpr_param_types.js Registriert jedes Objekt als Parametertyp mit register_param_type()
dxpr_elements dxpr_elements.js create_dxpr_elements() registriert jede Definition mit register_animated_element() und konvertiert ihre params durch make_param_type()

Die Parametertypen, die das Modul registriert, sind boxmodel, checkbox, checkboxes, colorpicker, datetime, dropdown, dxb_slider, html, icon, image, images, link, links, numericfield, row_layout, saved_datetime, social_links, textarea, textfield und video. Ein Parameter mit unbekanntem type rendert als schlichte Texteingabe.

Eigene Elemente zeigt eine vollständige Elementdefinition und wie sie im richtigen Moment geladen wird.

Editor-Routen

Legende: billable ist die _dxpr_builder_billable_user-Prüfung (Benutzer 1, oder ein aktives Konto mit edit with dxpr builder, das nicht ausgeschlossen ist); CSRF ist _csrf_token.

Pfad Routenname Methoden Zugang
/dxpr_builder/ajax dxpr_builder.ajax_callback any billable, CSRF
/dxpr_builder/ajax/file_upload dxpr_builder.ajax_file_upload_callback POST, DELETE billable, CSRF
/dxpr_builder/ajax/ai/chat dxpr_builder.ai_chat POST edit with dxpr builder, billable, CSRF
/dxpr_builder/ajax/ai/image dxpr_builder.ai_image POST edit with dxpr builder, billable, CSRF
/dxpr_builder/ajax/ai/image/edit dxpr_builder.ai_image_edit POST edit with dxpr builder, billable, CSRF
/dxpr_builder/csrf dxpr_builder.csrf_refresh any billable
/dxpr_builder/ajax/help_link_validator dxpr_builder.ajax_help_link_validator any billable
/dxpr_builder/media-library dxpr_builder.media_library any view media
/dxpr_builder/entity-link-suggestions dxpr_builder.entity_link_suggestions GET edit with dxpr builder, CSRF
/dxpr_builder/user-settings dxpr_builder.user_settings POST edit with dxpr builder, CSRF

Admin-Routen

Alle Admin-Seiten liegen unter DXPR Studio > DXPR Builder. Die Tab-Spalte zeigt die Bezeichnung im Admin-Menü.

Pfad Tab Berechtigung
/admin/dxpr_studio DXPR Studio administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder DXPR Builder administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/settings General Settings administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/ai_settings AI administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/content Content Items administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/migration-status Migrations (under Content Items) administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/page_template Page Templates administer site configuration
/admin/dxpr_studio/dxpr_builder/user_licenses User Licenses administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/profile User Profiles administer dxpr_builder_profile
/admin/dxpr_studio/dxpr_builder/user_templates User Templates administer site configuration