Deze pagina toont elke route die DXPR Builder registreert in
dxpr_builder.routing.yml, met de HTTP-methoden, toegangsvereisten, requestparameters en responsevormen zoals
geïmplementeerd in de controllers. De JavaScript van de editor is de
bedoelde client voor de AJAX-eindpunten; niets op deze pagina is een
stabiele publieke API, en parameternamen kunnen veranderen tussen
releases.
Toegangsvereisten
Routes gebruiken drie soorten vereisten. Een route kan ze combineren.
| Vereiste |
Betekenis |
_permission |
De gebruiker heeft de genoemde Drupal-permissie nodig. DXPR Builder definieert administer dxpr builder configuration, edit with dxpr builder en administer dxpr_builder_profile in dxpr_builder.permissions.yml; view media en administer site configuration komen uit core. |
_csrf_token |
Het verzoek moet een geldig CSRF-token dragen in de token-queryparameter. Voor de hoofd-AJAX-handler haalt de editor een URL met het token op van /dxpr_builder/csrf (of van de dxpr_builder_csrf-bewerking). Voor de andere routes zet de veldnotatie URL’s met een token in drupalSettings.dxprBuilder, bijvoorbeeld fileUploadUrl, entityLinkSuggestionsUrl, userSettingsUrl en aiAgent.endpointUrl. |
_dxpr_builder_billable_user |
De gebruiker moet een factureerbare gebruiker zijn, zoals hieronder gedefinieerd. |
Wat “factureerbare gebruiker” betekent
DxprBuilderBillableUserAccessCheck geeft toegang wanneer
DxprBuilderLicenseService::isBillableUser() true teruggeeft voor het
actuele account. Die methode geeft false terug voor geblokkeerde accounts
en voor accounts waarvan het veld dxpr_user_is_disavowed is ingesteld (een
beheerder sluit een gebruiker uit van bewerken op de pagina Gebruikerslicenties).
Anders geeft hij true terug voor gebruiker 1 en voor elk account
met de permissie edit with dxpr builder. Kortom: een
factureerbare gebruiker is een actief, niet-uitgesloten account dat mag
bewerken met DXPR Builder, en de licentieservice telt deze
accounts tegen je productsleutel.
HTTP-methoden
Waar een route methods declareert, worden alleen die methoden gerouteerd.
Waar hij dat niet doet, accepteert de route elke methode (Drupal’s
MethodFilter filtert alleen routes die methoden declareren). De tabellen hieronder vermelden de methode die de
JavaScript van de editor daadwerkelijk gebruikt wanneer dat zichtbaar is in de bron.
Editor-AJAX-eindpunten
CSRF-token-URL
|
|
| Pad |
/dxpr_builder/csrf |
| Route |
dxpr_builder.csrf_refresh |
| Methoden |
Niet gedeclareerd (elke methode). De editor stuurt GET (backend-connect.js, fetchCsrfTokenUrl()). |
| Vereisten |
Factureerbare gebruiker |
| Controller |
AjaxController::ajaxRefresh() |
Het verzoek moet de header X-Requested-With: XMLHttpRequest dragen; zonder hem geeft de controller HTTP 403 terug met
de JSON-body {"error": "Invalid request"}.
| Parameter |
Bron |
Vereist |
Opmerkingen |
enterprise |
Querystring |
Optioneel |
Wanneer ingesteld op true en de module dxpr_builder_e is geïnstalleerd, wordt het token gegenereerd voor de route dxpr_builder_e.ajax_callback. Wanneer ingesteld op true zonder die module gooit de controller een exceptie. |
Antwoord: een JSON-string met de URL van de hoofd-AJAX-handler en
een token-queryparameter. De URL is een pad vanaf de siteroot
(basispad inbegrepen, geen host). De JavaScript post elke builder-bewerking naar deze URL.
Hoofd-AJAX-handler
|
|
| Pad |
/dxpr_builder/ajax |
| Route |
dxpr_builder.ajax_callback |
| Methoden |
Niet gedeclareerd (elke methode). De controller leest elke parameter uit de POST-body, en de editor stuurt POST. |
| Vereisten |
Factureerbare gebruiker, CSRF-token |
| Controller |
AjaxController::ajaxCallback() |
Het POST-bodyveld action selecteert de bewerking. Elke
bewerking en zijn parameters staan onder
Bewerkingen van hoofd-AJAX-handler.
Wanneer action ontbreekt of onbekend is, geeft de controller een
lege Drupal-AjaxResponse terug zonder commando’s. De meeste bewerkingen die
de status factureerbare gebruiker opnieuw controleren geven hetzelfde lege antwoord
wanneer die controle faalt; de tabellen vermelden de twee uitzonderingen.
AI-chat
|
|
| Pad |
/dxpr_builder/ajax/ai/chat |
| Route |
dxpr_builder.ai_chat |
| Methoden |
POST |
| Vereisten |
edit with dxpr builder, factureerbare gebruiker, CSRF-token |
| Controller |
AiChatController::chat() |
De requestbody is JSON. De controller proxyt het verzoek naar de
dxpr-provider van de Drupal-module ai, zodat geen API-sleutel
de browser bereikt. Vóór de call voegt hij de domeinen uit de
instelling ai_output_allowed_domains samen in het hostnaamfilter van de module
ai, wanneer die service bestaat. Een waarde * zet het
filter in plaats daarvan op volledig vertrouwen. Het filter wordt daarna hersteld.
| Parameter |
Bron |
Vereist |
Opmerkingen |
messages |
JSON-body |
Vereist |
Array van objecten met role en content. |
stream |
JSON-body |
Optioneel |
Boolean, standaard true. |
model |
JSON-body |
Optioneel |
Standaard kavya-m1. |
prediction |
JSON-body |
Optioneel |
Doorgegeven aan de providerconfiguratie als array. |
providers |
JSON-body |
Optioneel |
Doorgegeven aan de providerconfiguratie. |
allowed_html_tags |
JSON-body |
Optioneel |
Doorgegeven aan de providerconfiguratie. |
allowed_html_classes |
JSON-body |
Optioneel |
Doorgegeven aan de providerconfiguratie. |
web_search |
JSON-body |
Optioneel |
Alleen de waarde false wordt doorgestuurd; elke andere waarde wordt genegeerd. |
response_format |
JSON-body |
Optioneel |
Doorgegeven aan de providerconfiguratie als array. |
Antwoorden:
| Geval |
Status |
Body |
Gestreamd (stream true en de provider streamt) |
200, Content-Type: text/event-stream |
Server-sent events. Elk event is data: <JSON> waarbij de JSON choices[0].delta.content heeft en, wanneer de provider ze levert, id, object, created, model, original_model en usage. De stream eindigt met data: [DONE]. |
| Niet-gestreamd |
200, application/json |
{"choices": [{"message": {"role": "assistant", "content": "<text>"}}]} |
Body is geen JSON, of messages ontbreekt of is leeg |
400, platte tekst |
Invalid request: messages required |
model niet in de allowed_models-lijst van ai_provider_dxpr.settings (alleen gecontroleerd wanneer de module ai_provider_dxpr is geïnstalleerd en de lijst is ingesteld) |
403, application/json |
{"error": {"code": "model_not_allowed", "message": "The selected model is not allowed. Please refresh the page to update your model options."}} |
| Provider-exceptie |
500, application/json |
{"error": {"message": "The request could not be completed."}} |
AI-afbeeldingsgeneratie
|
|
| Pad |
/dxpr_builder/ajax/ai/image |
| Route |
dxpr_builder.ai_image |
| Methoden |
POST |
| Vereisten |
edit with dxpr builder, factureerbare gebruiker, CSRF-token |
| Controller |
AiImageController::generate() |
| Parameter |
Bron |
Vereist |
Opmerkingen |
prompt |
JSON-body |
Vereist |
Tekstprompt. |
model |
JSON-body |
Optioneel |
Standaard kavya-image. |
size |
JSON-body |
Optioneel |
Doorgestuurd naar de providerconfiguratie wanneer niet-leeg. |
quality |
JSON-body |
Optioneel |
Doorgestuurd naar de providerconfiguratie wanneer niet-leeg. |
background |
JSON-body |
Optioneel |
Doorgestuurd naar de providerconfiguratie wanneer niet-leeg. |
Antwoorden:
| Geval |
Status |
Body |
| Succes |
200 |
{"data": [{"b64_json": "<base64 image>"}]} (alleen de eerste gegenereerde afbeelding wordt teruggegeven) |
Body is geen JSON, of prompt ontbreekt |
400 |
{"error": {"message": "Invalid request: prompt required"}} |
| Provider gaf geen afbeelding terug |
500 |
{"error": {"message": "No image was generated"}} |
| Provider-exceptie |
500 |
{"error": {"message": "Image generation failed. Please try again."}} |
AI-afbeeldingsbewerking
|
|
| Pad |
/dxpr_builder/ajax/ai/image/edit |
| Route |
dxpr_builder.ai_image_edit |
| Methoden |
POST |
| Vereisten |
edit with dxpr builder, factureerbare gebruiker, CSRF-token |
| Controller |
AiImageController::edit() |
| Parameter |
Bron |
Vereist |
Opmerkingen |
prompt |
JSON-body |
Vereist |
Bewerkingsinstructie. |
image |
JSON-body |
Vereist |
Base64-gecodeerde bronafbeelding (strikte decodering). |
mimeType |
JSON-body |
Optioneel |
Standaard image/png; het subtype wordt de bestandsextensie doorgegeven aan de provider. |
model |
JSON-body |
Optioneel |
Standaard kavya-image. |
size, quality, background |
JSON-body |
Optioneel |
Doorgestuurd naar de providerconfiguratie wanneer niet-leeg. |
Antwoorden:
| Geval |
Status |
Body |
| Succes |
200 |
{"data": [{"b64_json": "<base64 image>"}]} |
Body is geen JSON, of prompt of image ontbreekt |
400 |
{"error": {"message": "Invalid request: prompt and image required"}} |
image is geen geldige base64 |
400 |
{"error": {"message": "Invalid image data: base64 decode failed"}} |
| Provider gaf geen afbeelding terug |
500 |
{"error": {"message": "No image was generated"}} |
| Provider-exceptie |
500 |
{"error": {"message": "Image editing failed. Please try again."}} |
Bestandsupload
|
|
| Pad |
/dxpr_builder/ajax/file_upload |
| Route |
dxpr_builder.ajax_file_upload_callback |
| Methoden |
POST, DELETE (gedeclareerd in routing; de controller heeft één uploadhandler en geen aparte delete-tak) |
| Vereisten |
Factureerbare gebruiker, CSRF-token |
| Controller |
UploadFileController::fileUpload() |
| Parameter |
Bron |
Vereist |
Opmerkingen |
upload |
Multipart-formulierbestanden, verstuurd als upload[] |
Vereist |
Eén of meer geüploade bestanden. |
De controller sorteert elk bestand op het eerste deel van zijn client-MIME-type naar <default scheme>://dxpr_builder_images,
dxpr_builder_videos of dxpr_builder_files. Een afbeelding heeft een
extensie van de MIME-typen image/gif, jpg, jpeg, png,
webp, avif of svg nodig. Een video heeft een van video/webm, ogv,
ogg, mp4 of quicktime nodig (bijvoorbeeld .mov). De groottelimiet
is het uploadmaximum van PHP. Een bestand met dezelfde naam en identieke
SHA-256-inhoud als een bestaand beheerd bestand dat de gebruiker kan bekijken
wordt hergebruikt in plaats van opnieuw bewaard. Wanneer de
module media is geïnstalleerd en een mediatype met de naam image,
media_image, video of media_video bestaat, wordt een gepubliceerde media-entiteit aangemaakt (of hergebruikt) voor het bestand. Bestandsgebruik wordt
geregistreerd onder de module dxpr_builder.
Antwoorden:
| Geval |
Status |
Body |
| Succes |
201 |
JSON-array, één object per bestand: url (absolute bestands-URL), uuid en id (van de media-entiteit wanneer die bestaat, anders van het bestand), fid (bestands-ID), entity_type (media of file). |
Geen upload-bestanden |
400 |
{"message": "No files were uploaded."} |
| Ongeldige upload, niet-schrijfbare bestemming of bewaarfout |
500 |
{"message": "<reason>"} |
| Validatiefout (extensie of grootte) |
422 |
{"message": "<violation messages>"} |
| Bestandsnaam al vergrendeld door een ander verzoek |
503 |
{"message": "File \"<name>\" is already locked for writing."} |
|
|
| Pad |
/dxpr_builder/media-library |
| Route |
dxpr_builder.media_library |
| Methoden |
Niet gedeclareerd (elke methode). Parameters worden gelezen uit de querystring. |
| Vereisten |
view media; adminroute |
| Controller |
AjaxController::openImageMediaLibrary() |
| Parameter |
Bron |
Vereist |
Opmerkingen |
media_type |
Querystring |
Optioneel |
image (standaard) of video. |
remaining_slots |
Querystring |
Optioneel |
Aantal items dat de opener accepteert; standaard 1. |
uuid |
Querystring |
Optioneel |
Doorgegeven aan de opener als opener_parameters.uuid. |
Het aangeboden mediatype hangt af van de instelling media_browser:
media_library gebruikt het mediatype image of video direct;
media_library_acquia_dam gebruikt acquia_dam_image_asset of
acquia_dam_video_asset wanneer dat mediatype bestaat.
Antwoorden:
| Geval |
Resultaat |
| Succes |
Een renderarray gebouwd door MediaLibraryUiBuilder::buildUi() met de opener media_library.opener.dxpr_builder. Drupal rendert hem als HTML-pagina bedoeld voor een iframe. |
media_library-module niet geïnstalleerd |
403, plain text Media Library is not enabled. Please enable it to access this feature. |
Niet-ondersteunde media_type |
400, plain text Unsupported media type "<value>". |
media_browser-instelling heeft geen bruikbaar mediatype |
400, plain text The "<setting>" settings is not supported. |
Helplinkvalidator
|
|
| Pad |
/dxpr_builder/ajax/help_link_validator |
| Route |
dxpr_builder.ajax_help_link_validator |
| Methoden |
Niet gedeclareerd (elke methode). Het dev-script dxpr_builder_dev.js stuurt POST met een form-gecodeerde body. |
| Vereisten |
Factureerbare gebruiker |
| Controller |
AjaxController::validateHelpLink() |
| Parameter |
Bron |
Vereist |
Opmerkingen |
help_link |
POST-body |
Vereist voor een zinvol antwoord |
Alleen http- of https-URL’s op host dxpr.com met een pad beginnend met /documentation/ worden gecontroleerd. |
Antwoord: een JSON-array. [true] wanneer een HEAD-verzoek aan de link
(zonder redirects te volgen) 200 teruggeeft; [false] wanneer de HTTP-client gooit; [] in elk ander geval, inclusief een ontbrekende
parameter, een niet-matchende URL of een niet-200-status.
Entiteitslinksuggesties
|
|
| Pad |
/dxpr_builder/entity-link-suggestions |
| Route |
dxpr_builder.entity_link_suggestions |
| Methoden |
GET |
| Vereisten |
edit with dxpr builder, CSRF-token; no_cache-routeoptie |
| Controller |
EntityLinkSuggestionsController::suggestions() |
| Parameter |
Bron |
Vereist |
Opmerkingen |
q |
Querystring |
Vereist voor resultaten |
Zoektekst, in kleine letters. Een waarde zoals /node/123 laadt die entiteit direct. |
langcode |
Querystring |
Optioneel |
Taal van de hostentiteit; standaard de actuele taal. Alleen entiteiten beschikbaar in deze taal worden teruggegeven. |
Bundels zijn die met ckeditor5_link_suggestions ingeschakeld in
hun bundelinfo; wanneer geen zijn geconfigureerd, worden alle nodebundels
doorzocht. Tot 100 entiteiten per entiteittype worden gematcht met een
CONTAINS-zoekopdracht via de entity-reference-selectieplug-ins van core.
Antwoord: {"suggestions": [...]} met private-cacheerbaarheid en een
max-age van 300 seconden. Elke suggestie heeft description,
entity_type_id, entity_uuid, group, label en path. Wanneer
q niets matcht, bevat de array één suggestie voor een handmatige link
met description, label (de ingevoerde tekst in kleine letters) en
path (de invoer wanneer het een geldige URL is, anders een lege
string). Wanneer q leeg is, is suggestions een lege array.
Editorinstellingen van gebruiker
|
|
| Pad |
/dxpr_builder/user-settings |
| Route |
dxpr_builder.user_settings |
| Methoden |
POST |
| Vereisten |
edit with dxpr builder, CSRF-token; no_cache-routeoptie |
| Controller |
UserSettingsController::save() |
De editor stuurt dit verzoek wanneer een gebruiker zijn eigen editor-instellingen wijzigt, bijvoorbeeld onder Editorinstellingen. De waarden worden
bewaard bij het gebruikersaccount in user.data, module
dxpr_builder.
| Parameter |
Bron |
Vereist |
Opmerkingen |
controls_layout |
JSON-body |
Vereist (de enige instelling) |
element, breadcrumb of default. default verwijdert de keuze van de gebruiker, zodat de profiel- of site-instelling geldt. |
Antwoorden:
| Geval |
Status |
Body |
| Bewaard |
200 |
{"settings": {"controls_layout": "<value>"}}: elke instelling na bewaren, default waar de gebruiker geen keuze bewaard heeft. |
| Body is geen niet-leeg JSON-object, of een naam of waarde is ongeldig |
400 |
{"error": "Invalid setting or value."}. Niets wordt bewaard. |
Bewerkingen van hoofd-AJAX-handler
Alle bewerkingen gaan naar /dxpr_builder/ajax met de token-query-parameter verkregen van /dxpr_builder/csrf. De bewerkingsnaam wordt
verstuurd in het POST-bodyveld action; alle andere parameters zijn
POST-bodyvelden tenzij anders vermeld. De kolom “Controleert opnieuw factureerbaar”
markeert bewerkingen die isBillableUser() opnieuw aanroepen in de
switch. Wanneer die controle faalt geven ze de lege
AjaxResponse terug zoals hierboven beschreven, tenzij de rij anders zegt.
Sessie en toegang
| Bewerking |
Parameters |
Controleert opnieuw factureerbaar |
Retourneert |
dxpr_login |
Geen |
Nee |
JSON-boolean: of de actuele gebruiker factureerbaar is. |
dxpr_builder_csrf |
Geen |
Ja |
JSON-string: de handler-URL met een token-queryparameter (zelfde als /dxpr_builder/csrf zonder de enterprise-optie). |
| Bewerking |
Parameters |
Controleert opnieuw factureerbaar |
Retourneert |
dxpr_get_container_types |
Geen |
Ja |
JSON-object gesleuteld entity_type|bundle met waarde entity_type - bundle, één invoer per bundel waarvan de standaardweergave de notatie dxpr_builder_text op minstens één veld gebruikt. |
dxpr_get_container_names |
container_type (vereist, entity_type|bundle) |
Ja (geeft een lege JSON-string terug in plaats van het lege antwoord) |
JSON-object gesleuteld entity_id|field_name (of entity_id|field_name|langcode voor vertaalbare entiteiten) met waarde entity label|field label. Wanneer container_type ontbreekt, of de factureerbaar-controle faalt, is het antwoord een lege JSON-string. |
dxpr_save_container |
type (vereist, entity_type|bundle); name (vereist, entity_id|field_name of entity_id|revision_id|field_name); htmlContent (vereist, gecodeerde markup); lang (optioneel, standaard de standaardtaal van de site) |
Ja |
JSON lege string bij succes. HTTP 400 met een JSON-bericht wanneer htmlContent geen string is of de taal niet geldt voor een niet-vertaalbare entiteit; 404 wanneer de gevraagde vertaling niet bestaat; 500 wanneer de entiteit niet geladen kan worden. |
dxpr_save_container doet het volgende:
- Decodeert
htmlContent: XOR elke byte met 7, dan URL-decoderen.
- Schrijft het resultaat naar de eerste delta van het genoemde veld.
- Maakt een nieuwe standaardrevisie met het logbericht
Saved with DXPR builder wanneer het entiteittype reviseerbaar is.
- Verwijdert elke inhoudsvergrendeling voor de entiteit.
- Werkt
block_revision_id bij in Layout Builder-secties die het
bewaarde inlineblok refereren.
- Verhoogt de statewaarde
dxpr_builder.saves_count.
Het bewaren gebeurt alleen wanneer de gebruiker update-toegang heeft tot de
entiteit. Zonder hem geeft de bewerking toch het lege-string-succesantwoord.
CMS-elementen (blokken en views)
| Bewerking |
Parameters |
Controleert opnieuw factureerbaar |
Retourneert |
dxpr_builder_get_cms_element_names |
Geen |
Ja |
JSON-object van DxprBuilderService::getCmsElementNames() met sleutels list, disallowed en blockCategories. |
dxpr_get_cms_element_settings |
name (vereist): view-<view_id>-<display_id> of block-<plugin_id>; ajax_page_state[libraries] (optioneel, door komma’s gescheiden reeds geladen bibliotheken) |
Ja |
JSON-object met css, js, settings en data. Voor een view is data de gerenderde exposed-filterwidgets; voor een blok is data het configuratieformulier van het blok gewikkeld in <form>-tags, met de elementen provider, admin_label, label, label_display en context_mapping verwijderd en alle details-elementen geopend. |
dxpr_builder_load_cms_element |
name (vereist, geparst door parseStringForCmsElementInfo()); settings (vereist); data (vereist, array); ajax_page_state[libraries] (optioneel) |
Nee |
JSON-object met css, js, settings en data, waarbij data de gerenderde blok- of viewweergave is. |
In beide settings-teruggevende bewerkingen zijn css en js
gerenderde assettags die nog niet op de pagina staan, en
settings is het gedecodeerde drupalSettings-object, of een lege
string wanneer die er niet zijn.
Paginasjablonen
| Bewerking |
Parameters |
Controleert opnieuw factureerbaar |
Retourneert |
dxpr_get_page_templates |
Geen |
Ja |
JSON-array van ingeschakelde paginasjablonen, elk met title, uuid, module (altijd null: de entiteit bewaart hem niet), category, date, weight (integer) en image (een data:-URL, of de not-found.png-URL van de module). |
dxpr_load_page_template |
uuid (vereist) |
Ja |
HTML-antwoord met de sjabloonmarkup met vervangen basistokens; leeg wanneer geen ingeschakeld sjabloon matcht. |
Gebruikerssjablonen
| Bewerking |
Parameters |
Controleert opnieuw factureerbaar |
Retourneert |
dxpr_get_templates |
Geen |
Ja |
JSON-array van sjablonen van de actuele gebruiker of gemarkeerd globaal; sjablonen waarvan het auteursaccount niet meer bestaat worden weggelaten. Elke invoer heeft id, uuid, name, global, current_user_is_author, author_id, author_name, type en, wanneer bewaard, image (een data:-URL). |
dxpr_load_template |
uuid (vereist) |
Ja |
HTML-antwoord met de sjabloonmarkup met vervangen basistokens; leeg wanneer geen ingeschakeld sjabloon matcht. |
dxpr_save_template |
name (vereist); template (vereist, markup); type (optioneel, standaard custom); global (optioneel, gecast naar boolean); image (optioneel: een base64-string of data:image-URL in de POST-body, of een multipart-bestandsveld met de naam image) |
Ja |
JSON-object met message en code. code 200 bij succes; code 409 (HTTP-status 200) wanneer een sjabloon met dezelfde machinenaam bestaat; code 400 met HTTP 400 wanneer de afbeelding geen geldige afbeeldingsdata is. |
dxpr_delete_template |
name (vereist) |
Ja |
JSON lege string. |
De machinenaam is afgeleid van name door hem in kleine letters te
zetten en elke reeks tekens buiten a-z0-9_ te vervangen door een
underscore. type valt terug op het data-azb-attribuut in de
markup wanneer een bewaard sjabloon geen type heeft.
Afbeeldingen
| Bewerking |
Parameters |
Controleert opnieuw factureerbaar |
Retourneert |
dxpr_builder_get_image_urls |
entityIDs (vereist, array); imageStyle (vereist; original voor het ongestileerde bestand); entityType (vereist; media lost media-items op, elke andere waarde wordt gebruikt als het entiteittype van de ID’s) |
Ja |
Tekstbody: door komma’s gescheiden afbeeldings-URL’s. Bestanden geven een root-relatieve URL met een fid-queryparameter. Media-items van het type image of video lossen op naar hun bronbestand. acquia_dam_image_asset-items geven de DAM-URL met mid, acquiaDamAsset en imageStyle toegevoegd. Andere media-items worden overgeslagen. HTTP 204 zonder body wanneer entityIDs leeg is, of wanneer geen media-item opgelost kan worden. |
dxpr_builder_get_image_style_url |
imageStyle (vereist); entityId (vereist); entityTypeId (vereist, file of media) |
Ja |
Tekstbody. Voor een bestand: zijn root-relatieve URL via de afbeeldingsstijl (SVG-bestanden en original slaan de stijl over), met een fid-queryparameter. Voor een acquia_dam_image_asset-media-item: de DAM-URL. HTTP 204 zonder body voor elke andere entiteit, of wanneer de entiteit niet gevonden is. |
dxpr_builder_get_image_metadata |
entityId (vereist); entityType (vereist, file of media) |
Ja (geeft 403-JSON terug in plaats van het lege antwoord) |
{"data": {"alt": "...", "title": "..."}} uit het afbeeldingsbronveld van het media-item (een Acquia DAM-asset geeft zijn DAM-alt-tekst en een lege titel). Voor een bestand komen de waarden uit het eerste media-item waarvan field_media_image ernaar verwijst. data is een lege array wanneer de entiteit geen bestand noch media-item is, of wanneer geen media naar het bestand verwijst. Fouten: 400 {"error": "Missing required parameters"}, 404 {"error": "Entity not found"}, 500 {"error": "Failed to load entity"}, 403 {"error": "Access denied"}. |
Inhoudsvergrendelingen
| Bewerking |
Parameters |
Controleert opnieuw factureerbaar |
Retourneert |
dxpr_content_lock_status |
entity_id, revision_id, entity_type, langcode (alle vereist) |
Nee |
JSON-object met status (boolean) en label (entiteitslabel); wanneer vergrendeld, ook entity_lock_author_id en entity_lock_author_name. |
dxpr_toggle_content_lock |
entity_id, revision_id, entity_type, langcode, toggle_action (alle vereist; lock maakt de vergrendeling, elke andere waarde verwijdert hem) |
Nee |
JSON-object met label en status (true na vergrendelen, false na ontgrendelen). Een lege JSON-array ([]) wanneer de entiteit niet geladen kan worden of de gebruiker geen update-toegang heeft. |
Adminpagina’s
Al deze routes accepteren elke methode (geen methods-sleutel). Paden
met {...} nemen de configuratie-entiteits-ID, of de migratie-ID
voor {migration_id}.
| Pad |
Route |
Permissie |
Doel |
/admin/dxpr_studio |
dxpr_builder.admin.studio |
administer dxpr builder configuration |
DXPR Studio-overzicht; adminmenublokpagina van core met kindpagina’s. |
/admin/dxpr_studio/dxpr_builder |
dxpr_builder.admin.studio.builder |
administer dxpr builder configuration |
DXPR Builder-overzicht; adminmenublokpagina van core. |
/admin/dxpr_studio/dxpr_builder/settings |
dxpr_builder.settings |
administer dxpr builder configuration |
DxprBuilderSettingsForm: het module-instellingenformulier. |
/admin/dxpr_studio/dxpr_builder/ai_settings |
dxpr_builder.ai_settings |
administer dxpr builder configuration |
DxprBuilderAiSettingsForm: het AI-instellingenformulier. |
/admin/dxpr_studio/dxpr_builder/user_templates |
entity.dxpr_builder_user_template.collection |
administer site configuration |
Lijst van dxpr_builder_user_template-configuratie-entiteiten. |
/admin/dxpr_studio/dxpr_builder/user_templates/add |
entity.dxpr_builder_user_template.add_form |
administer site configuration |
Een gebruikerssjabloon toevoegen. |
/admin/dxpr_studio/dxpr_builder/user_templates/{dxpr_builder_user_template} |
entity.dxpr_builder_user_template.edit_form |
administer site configuration |
Een gebruikerssjabloon bewerken. |
/admin/dxpr_studio/dxpr_builder/user_templates/{dxpr_builder_user_template}/delete |
entity.dxpr_builder_user_template.delete_form |
administer site configuration |
Een gebruikerssjabloon verwijderen (bevestigingsformulier). |
/admin/dxpr_studio/dxpr_builder/page_template |
entity.dxpr_builder_page_template.collection |
administer site configuration |
Lijst van dxpr_builder_page_template-configuratie-entiteiten. |
/admin/dxpr_studio/dxpr_builder/page_template/add |
entity.dxpr_builder_page_template.add_form |
administer site configuration |
Een paginasjabloon toevoegen. |
/admin/dxpr_studio/dxpr_builder/page_template/create |
dxpr_builder.create_page_template |
administer dxpr builder configuration |
PageController::createPageTemplate(): kopieert het ingeschakelde gebruikerssjabloon geïdentificeerd door de uuid-queryparameter naar een nieuw paginasjabloon met dezelfde ID en categorie DXPR. Hij zet een status- of foutbericht en leidt om naar de gebruikerssjabloonlijst. |
/admin/dxpr_studio/dxpr_builder/page_template/{dxpr_builder_page_template} |
entity.dxpr_builder_page_template.edit_form |
administer site configuration |
Een paginasjabloon bewerken. |
/admin/dxpr_studio/dxpr_builder/page_template/{dxpr_builder_page_template}/delete |
entity.dxpr_builder_page_template.delete_form |
administer site configuration |
Een paginasjabloon verwijderen (bevestigingsformulier). |
/admin/dxpr_studio/dxpr_builder/profile |
entity.dxpr_builder_profile.collection |
administer dxpr_builder_profile |
Lijst van dxpr_builder_profile-configuratie-entiteiten. |
/admin/dxpr_studio/dxpr_builder/profile/add |
entity.dxpr_builder_profile.add_form |
administer dxpr_builder_profile |
Een profiel toevoegen. |
/admin/dxpr_studio/dxpr_builder/profile/{dxpr_builder_profile} |
entity.dxpr_builder_profile.edit_form |
administer dxpr_builder_profile |
Een profiel bewerken. |
/admin/dxpr_studio/dxpr_builder/profile/{dxpr_builder_profile}/delete |
entity.dxpr_builder_profile.delete_form |
administer dxpr_builder_profile |
Een profiel verwijderen (bevestigingsformulier). |
/admin/dxpr_studio/dxpr_builder/user_licenses |
dxpr_builder.user_licenses |
administer dxpr builder configuration |
PageController::userLicensesPage(): niet-gecachete tabel van gelicentieerde gebruikers (kolommen User, Roles, Sites, Assigned en Operations). Daarboven rendert de pagina zijn eigen licentieoverzichtskaart (dxpr-license-info) wanneer licentie-informatie beschikbaar is, en, terwijl een vrijgemaakte licentie zijn 30 dagen uitzit, een melding “Next license available on”. Op deze route rendert het blok Licentie-info niets, zodat het overzicht nooit twee keer toont. |
/admin/dxpr_studio/dxpr_builder/user_licenses/sites |
dxpr_builder.user_licenses.sites |
administer dxpr builder configuration |
PageController::userLicensesSitesPage(): itemlijst van de domeinen geregistreerd voor de gebruiker gegeven in de mail-requestparameter; geopend in een modaal vanuit de licentietabel. |
/admin/dxpr_studio/dxpr_builder/content |
dxpr_builder.licensed_content |
administer dxpr builder configuration |
PageController::licensedContentPage(): gepagineerde tabel (20 per pagina) van contentitems bewerkt met DXPR Builder, met het contentitems-licentieoverzicht. De queryparameter needs_migration=1 toont alleen items die een inhoudsmigratie nodig hebben. Leeg wanneer geen licentie-informatie beschikbaar is. |
/admin/dxpr_studio/dxpr_builder/migration-status |
dxpr_builder.migration_status |
administer dxpr builder configuration |
MigrationStatusController::statusPage(): niet-gecachete tabel van geregistreerde inhoudsmigraties met hun openstaande items. Elke openstaande migratie heeft een link Nu uitvoeren, en een knop Alle openstaande migraties uitvoeren verschijnt wanneer er openstaan. |
/admin/dxpr_studio/dxpr_builder/migration-run/{migration_id} |
dxpr_builder.migration_run_confirm |
administer dxpr builder configuration |
MigrationRunConfirmForm: bevestigt, voert dan één migratie uit als batch en keert terug naar de statuspagina. |
/admin/dxpr_studio/dxpr_builder/migration-run-all |
dxpr_builder.migration_run_all_confirm |
administer dxpr builder configuration |
MigrationRunAllConfirmForm: bevestigt, voert dan elke geregistreerde migratie uit als één batch en keert terug naar de statuspagina. |
/dxpr-builder/disavow-user |
dxpr_builder.disavow_user_confirm |
administer dxpr builder configuration |
DisavowUserConfirmForm: bevestigt het uitsluiten van de gebruiker gegeven in de uid-queryparameter van bewerken met DXPR Builder. |
/dxpr-builder/delete-stale-user |
dxpr_builder.delete_stale_user_confirm |
administer dxpr builder configuration |
DeleteStaleUserConfirmForm: bevestigt het verwijderen van licentiegegevens voor het e-mailadres gegeven in de email-queryparameter. |
Wat nu?
- Configuratiereferentie voor de instellingen
die de mediabrowser en het AI-gedrag van deze eindpunten regelen.
- PHP API voor de services die de
controllers aanroepen.
- Hooks API voor de hooks waarmee
andere modules buildergedrag wijzigen.