Referência de API.

Learn DXPR BuilderExtendArchitectuur en API’s

Os serviços PHP, pontos de extensão JavaScript e rotas que o DXPR Builder define. Os identificadores de serviço vêm de dxpr_builder.services.yml, as rotas de dxpr_builder.routing.yml. Para detalhes de pedido e resposta de cada rota, consulte Endpoints de API.

Serviços PHP

Service ID Class (in src/) Purpose
dxpr_builder.service Service\DxprBuilderService Prepara conteúdo do construtor para saída, trata tokens de caminho, constrói o registo de conjuntos de ícones
dxpr_builder.license_service Service\DxprBuilderLicenseService Estado da licença, utilizadores faturáveis, sincronização de editores com a DXPR
dxpr_builder.key_service Service\DxprBuilderKeyService Lê e guarda a chave de produto
dxpr_builder.jwt_decoder Service\DxprBuilderJWTDecoder Descodifica o conteúdo da chave de produto
dxpr_builder.user_settings Service\UserSettings As definições de editor próprias de cada editor, guardadas em dados de utilizador
dxpr_builder.content_lock Service\ContentLock Regista que utilizador está a editar uma revisão de entidade
dxpr_builder.content_migration Service\ContentMigrationService Corre migrações de conteúdo; recolhe serviços etiquetados com dxpr_builder.content_migration
dxpr_builder.profile_handler Service\Handler\ProfileHandler Transforma um perfil em definições de editor
dxpr_builder.handler.block Service\Handler\BlockHandler Apresenta blocos do Drupal colocados como elementos
dxpr_builder.handler.view Service\Handler\ViewHandler Apresenta apresentações de vistas colocadas como elementos
dxpr_builder.template_image_validator Service\TemplateImageValidator Valida imagens de pré-visualização de modelos
dxpr_builder.rl_variant.extractor, dxpr_builder.rl_variant.registrar RlIntegration\Service\* Variantes de teste A/B; inativo sem o módulo RL
dxpr_builder.rl_sort.extractor, dxpr_builder.rl_sort.registrar RlIntegration\Service\* Experiências de ordenação inteligente; inativo sem o módulo RL
logger.channel.dxpr_builder canal de registo do núcleo Canal de registo dxpr_builder

DxprBuilderServiceInterface

Implementado por dxpr_builder.service. Os métodos com maior probabilidade de chamar:

  • insertBaseTokens($content): substitui o URL base deste site, o diretório de ficheiros e o caminho do módulo por tokens. O editor guarda o conteúdo nesta forma.
  • replaceBaseTokens(&$content): void: expande os tokens de volta em URL para o ambiente atual.
  • stripHtmlElementPersists(string $markup): string: remove os atributos data-az-persist. Corra-o em marcação escrita fora do editor; o editor reconstrói-os ao carregar.
  • getCmsElementNames(): os blocos e apresentações de vistas oferecidos como elementos, em cache.
  • getIconSets(): array: o registo de conjuntos de ícones após descoberta YAML e hook_dxpr_builder_icon_sets_alter().
$markup = \Drupal::service('dxpr_builder.service')->insertBaseTokens($html);

DxprBuilderLicenseServiceInterface

Implementado por dxpr_builder.license_service.

  • isBillableUser(?AccountInterface $account = NULL): bool: TRUE para o utilizador 1 e para contas ativas com edit with dxpr builder não excluídas da edição do DXPR Builder.
  • getLicenseInfo(): estado da licença do servidor de licenças da DXPR, em cache. Sem chave de produto devolve o plano gratuito: um utilizador e 100 conteúdos.
  • syncAllUsersWithCentralStorage(string $operation, string $json_web_token = ''): void: envia os editores deste site para a DXPR. $operation é uma das constantes de interface DXPR_USER_SYNC_OPERATION (sync), DXPR_USER_ADD_OPERATION (add) ou DXPR_USER_REMOVE_OPERATION (remove).

DxprBuilderKeyService

  • getApiKey(): ?string: a chave de produto. Quando a definição api_key_storage é key, lê a entidade Key indicada em key_provider; senão lê json_web_token.
  • setApiKey(string $key_value, string $storage_type = 'config', ?string $selected_key_id = NULL): void: guarda a chave na configuração ou numa entidade Key.

DxprBuilderJWTDecoder

  • decodeJwt(string $access_token): devolve as afirmações sub, scope e dxpr_tier da chave de produto, cada uma NULL quando o token não pode ser lido. O resultado fica em cache por token.

Pontos de extensão JavaScript

Os scripts do editor partilham dois arrays em window.dxprBuilder. Empurre os objetos próprios para eles entre o script que cria o array e dxpr_builder.js, que os lê uma vez ao correr.

Array Created by What dxpr_builder.js does with it
dxpr_param_types dxpr_param_types.js Regista cada objeto como tipo de parâmetro com register_param_type()
dxpr_elements dxpr_elements.js create_dxpr_elements() regista cada definição com register_animated_element() e converte os params com make_param_type()

Os tipos de parâmetro que o módulo regista são 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. Um parâmetro com type desconhecido apresenta-se como entrada de texto simples.

Elementos personalizados mostra uma definição de elemento completa e como a carregar no momento certo.

Rotas do editor

Legenda de acesso: billable é a verificação _dxpr_builder_billable_user (utilizador 1, ou uma conta ativa com edit with dxpr builder não excluída); CSRF é _csrf_token.

Path Route name Methods Access
/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

Rotas de administração

Todas as páginas de administração ficam em DXPR Studio > DXPR Builder. A coluna do separador mostra a etiqueta no menu de administração.

Path Tab Permission
/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