Riferimento API.

Impara DXPR BuilderEstendiArchitettura e API

I servizi PHP, i punti di estensione JavaScript e le route che DXPR Builder definisce. Gli ID dei servizi vengono da dxpr_builder.services.yml, le route da dxpr_builder.routing.yml. Per i dettagli di richiesta e risposta di ogni route, vedi Endpoint API.

Servizi PHP

ID servizio Classe (in src/) Scopo
dxpr_builder.service Service\DxprBuilderService Prepara i contenuti builder per l’output, gestisce i token di percorso, costruisce il registro dei set di icone
dxpr_builder.license_service Service\DxprBuilderLicenseService Stato della licenza, utenti fatturabili, sincronizzazione editor con DXPR
dxpr_builder.key_service Service\DxprBuilderKeyService Legge e memorizza la chiave prodotto
dxpr_builder.jwt_decoder Service\DxprBuilderJWTDecoder Decodifica il payload della chiave prodotto
dxpr_builder.user_settings Service\UserSettings Le impostazioni editor proprie di ogni editor, conservate nei dati utente
dxpr_builder.content_lock Service\ContentLock Registra quale utente modifica una revisione di entità
dxpr_builder.content_migration Service\ContentMigrationService Esegue migrazioni di contenuti; raccoglie i servizi taggati dxpr_builder.content_migration
dxpr_builder.profile_handler Service\Handler\ProfileHandler Trasforma un profilo in impostazioni editor
dxpr_builder.handler.block Service\Handler\BlockHandler Renderizza i blocchi Drupal messi come elementi
dxpr_builder.handler.view Service\Handler\ViewHandler Renderizza le visualizzazioni di viste messe come elementi
dxpr_builder.template_image_validator Service\TemplateImageValidator Valida le immagini di anteprima dei modelli
dxpr_builder.rl_variant.extractor, dxpr_builder.rl_variant.registrar RlIntegration\Service\* Varianti di test A/B; inattivo senza il modulo RL
dxpr_builder.rl_sort.extractor, dxpr_builder.rl_sort.registrar RlIntegration\Service\* Esperimenti di ordinamento intelligente; inattivo senza il modulo RL
logger.channel.dxpr_builder canale di log del core Canale di log dxpr_builder

DxprBuilderServiceInterface

Implementata da dxpr_builder.service. I metodi che più probabilmente chiamerai:

  • insertBaseTokens($content): sostituisce l’URL base di questo sito, la directory dei file e il percorso del modulo con token. L’editor memorizza i contenuti in questa forma.
  • replaceBaseTokens(&$content): void: espande i token di nuovo in URL per l’ambiente corrente.
  • stripHtmlElementPersists(string $markup): string: rimuove gli attributi data-az-persist. Eseguilo su markup scritto fuori dall’editor; l’editor li ricostruisce al caricamento.
  • getCmsElementNames(): i blocchi e le visualizzazioni di viste offerti come elementi, in cache.
  • getIconSets(): array: il registro dei set di icone dopo rilevamento YAML e hook_dxpr_builder_icon_sets_alter().
$markup = \Drupal::service('dxpr_builder.service')->insertBaseTokens($html);

DxprBuilderLicenseServiceInterface

Implementata da dxpr_builder.license_service.

  • isBillableUser(?AccountInterface $account = NULL): bool: TRUE per l’user 1 e per gli account attivi con edit with dxpr builder non esclusi dalla modifica con DXPR Builder.
  • getLicenseInfo(): stato della licenza dal server delle licenze DXPR, in cache. Senza chiave prodotto restituisce il piano gratuito: un utente e 100 elementi di contenuto.
  • syncAllUsersWithCentralStorage(string $operation, string $json_web_token = ''): void: invia gli editor di questo sito a DXPR. $operation è una delle costanti di interfaccia DXPR_USER_SYNC_OPERATION (sync), DXPR_USER_ADD_OPERATION (add) o DXPR_USER_REMOVE_OPERATION (remove).

DxprBuilderKeyService

  • getApiKey(): ?string: la chiave prodotto. Quando l’impostazione api_key_storage è key, legge l’entità Key indicata in key_provider; altrimenti legge json_web_token.
  • setApiKey(string $key_value, string $storage_type = 'config', ?string $selected_key_id = NULL): void: memorizza la chiave in config o in un’entità Key.

DxprBuilderJWTDecoder

  • decodeJwt(string $access_token): restituisce i claim sub, scope e dxpr_tier della chiave prodotto, ciascuno NULL quando il token non si legge. Il risultato è in cache per token.

Punti di estensione JavaScript

Gli script dell’editor condividono due array su window.dxprBuilder. Inserisci i tuoi oggetti tra lo script che crea l’array e dxpr_builder.js, che li legge una volta all’esecuzione.

Array Creato da Cosa ne fa dxpr_builder.js con esso
dxpr_param_types dxpr_param_types.js Registra ogni oggetto come tipo di parametro con register_param_type()
dxpr_elements dxpr_elements.js create_dxpr_elements() registra ogni definizione con register_animated_element() e ne converte i params con make_param_type()

I tipi di parametro registrati dal modulo sono boxmodel, checkbox, checkboxes, colorpicker, datetime, dropdown, dxb_slider, html, icon, image, images, link, links, numericfield, row_layout, saved_datetime, social_links, textarea, textfield e video. Un parametro con un type sconosciuto è renderizzato come semplice input di testo.

Elementi personalizzati mostra una definizione completa di elemento e come caricarla al momento giusto.

Route dell’editor

Legenda accessi: billable è il controllo _dxpr_builder_billable_user (user 1, o un account attivo con edit with dxpr builder non escluso); CSRF è _csrf_token.

Percorso Nome route Metodi Accesso
/dxpr_builder/ajax dxpr_builder.ajax_callback qualsiasi 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 qualsiasi billable
/dxpr_builder/ajax/help_link_validator dxpr_builder.ajax_help_link_validator qualsiasi billable
/dxpr_builder/media-library dxpr_builder.media_library qualsiasi 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

Route admin

Tutte le pagine admin stanno in DXPR Studio > DXPR Builder. La colonna delle schede mostra l’etichetta nel menu admin.

Percorso Scheda Permesso
/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