Pontos de extremidade da API.

Aprender DXPR BuilderReferênciaConfiguração e API

Esta página lista todas as rotas que o DXPR Builder regista em dxpr_builder.routing.yml, com os métodos HTTP, requisitos de acesso, parâmetros de pedido e formas de resposta conforme implementados nos controladores. O JavaScript do editor é o cliente previsto para os pontos de extremidade AJAX; nada nesta página é uma API pública estável, e os nomes de parâmetros podem mudar entre lançamentos.

Requisitos de acesso

As rotas usam três tipos de requisito. Uma rota pode combiná-los.

Requisito Significado
_permission O utilizador precisa da permissão Drupal indicada. O DXPR Builder define administer dxpr builder configuration, edit with dxpr builder e administer dxpr_builder_profile em dxpr_builder.permissions.yml; view media e administer site configuration vêm do núcleo.
_csrf_token O pedido tem de transportar um token CSRF válido no token parâmetro de consulta. Para o processador AJAX principal, o editor obtém um URL com o token de /dxpr_builder/csrf (ou do dxpr_builder_csrf operation). Para as outras rotas, o formatador de campo coloca URLs com um token em drupalSettings.dxprBuilder, por exemplo fileUploadUrl, entityLinkSuggestionsUrl, userSettingsUrl e aiAgent.endpointUrl.
_dxpr_builder_billable_user O utilizador tem de ser um utilizador faturável, como definido abaixo.

O que significa "utilizador faturável"

DxprBuilderBillableUserAccessCheck permite o acesso quando DxprBuilderLicenseService::isBillableUser() devolve verdadeiro para a conta atual. Esse método devolve falso para contas bloqueadas e para contas cujo dxpr_user_is_disavowed campo está definido (um administrador exclui um utilizador da edição na página User Licenses). Caso contrário, devolve verdadeiro para o utilizador 1 e para qualquer conta que tenha a edit with dxpr builder permissão. Em resumo: um utilizador faturável é uma conta ativa e não excluída com permissão para editar com o DXPR Builder, e o serviço de licenças conta estas contas na sua chave de produto.

Métodos HTTP

Quando uma rota declara methods, só esses métodos são encaminhados. Quando não declara, a rota aceita qualquer método (o MethodFilter do Drupal só filtra rotas que declaram métodos). As tabelas abaixo indicam o método que o JavaScript do editor usa de facto quando isso está visível no código.

Pontos de extremidade AJAX do editor

URL de token CSRF

Caminho /dxpr_builder/csrf
Rota dxpr_builder.csrf_refresh
Métodos Não declarado (qualquer método). O editor envia GET (backend-connect.js, fetchCsrfTokenUrl()).
Requisitos Utilizador faturável
Controlador AjaxController::ajaxRefresh()

O pedido tem de transportar o cabeçalho X-Requested-With: XMLHttpRequest; sem ele, o controlador devolve HTTP 403 com o corpo JSON {"error": "Invalid request"}.

Parâmetro Origem Obrigatório Notas
enterprise Query string Optional Quando definido como true e o dxpr_builder_e módulo está instalado, o token é gerado para a dxpr_builder_e.ajax_callback rota. Quando definido como true sem esse módulo, o controlador dispara uma exceção.

Resposta: uma string JSON com o URL do processador AJAX principal e um token parâmetro de consulta. O URL é um caminho desde a raiz do site (caminho base incluído, sem anfitrião). O JavaScript publica todas as operações do construtor neste URL.

Processador AJAX principal

Caminho /dxpr_builder/ajax
Rota dxpr_builder.ajax_callback
Métodos Não declarado (qualquer método). O controlador lê todos os parâmetros do corpo POST e o editor envia POST.
Requisitos Utilizador faturável, token CSRF
Controlador AjaxController::ajaxCallback()

O campo do corpo POST action seleciona a operação. Todas as operações e os seus parâmetros estão listados em Operações do processador AJAX principal. Quando action falta ou é desconhecido, o controlador devolve um Drupal vazio AjaxResponse sem comandos. A maioria das operações que voltam a verificar o estado de utilizador faturável devolve a mesma resposta vazia quando essa verificação falha; as tabelas indicam as duas exceções.

Chat de IA

Caminho /dxpr_builder/ajax/ai/chat
Rota dxpr_builder.ai_chat
Métodos POST
Requisitos edit with dxpr builder, utilizador faturável, token CSRF
Controlador AiChatController::chat()

O corpo do pedido é JSON. O controlador reencaminha o pedido para o dxpr fornecedor do Drupal ai módulo, para nenhuma chave de API chegar ao navegador. Antes da chamada, funde os domínios de ai_output_allowed_domains definição no ai filtro de nome de anfitrião do módulo, quando esse serviço existe. Um valor de * define antes o filtro como confiança total. O filtro é reposto depois.

Parâmetro Origem Obrigatório Notas
messages Corpo JSON Obrigatório Array de objetos com role e content.
stream Corpo JSON Optional Booleano, predefinição true.
model Corpo JSON Optional Default kavya-m1.
prediction Corpo JSON Optional Passado para a configuração do fornecedor como array.
providers Corpo JSON Optional Passado para a configuração do fornecedor.
allowed_html_tags Corpo JSON Optional Passado para a configuração do fornecedor.
allowed_html_classes Corpo JSON Optional Passado para a configuração do fornecedor.
web_search Corpo JSON Optional Apenas o valor false é reencaminhado; qualquer outro valor é ignorado.
response_format Corpo JSON Optional Passado para a configuração do fornecedor como array.

Respostas:

Caso Estado Corpo
Transmitido (stream verdadeiro e o fornecedor transmite) 200, Content-Type: text/event-stream Eventos enviados pelo servidor. Cada evento é data: <JSON> onde o JSON tem choices[0].delta.content e, quando o fornecedor os fornece, id, object, created, model, original_model e usage. O fluxo termina com data: [DONE].
Não transmitido 200, application/json {"choices": [{"message": {"role": "assistant", "content": "<text>"}}]}
O corpo não é JSON, ou messages falta ou está vazio 400, texto simples Invalid request: messages required
model não no allowed_models lista de ai_provider_dxpr.settings (só verificado quando o ai_provider_dxpr módulo está instalado e a lista está definida) 403, application/json {"error": {"code": "model_not_allowed", "message": "The selected model is not allowed. Please refresh the page to update your model options."}}
Exceção do fornecedor 500, application/json {"error": {"message": "The request could not be completed."}}

Geração de imagens por IA

Caminho /dxpr_builder/ajax/ai/image
Rota dxpr_builder.ai_image
Métodos POST
Requisitos edit with dxpr builder, utilizador faturável, token CSRF
Controlador AiImageController::generate()
Parâmetro Origem Obrigatório Notas
prompt Corpo JSON Obrigatório Prompt de texto.
model Corpo JSON Optional Default kavya-image.
size Corpo JSON Optional Reencaminhado para a configuração do fornecedor quando não vazio.
quality Corpo JSON Optional Reencaminhado para a configuração do fornecedor quando não vazio.
background Corpo JSON Optional Reencaminhado para a configuração do fornecedor quando não vazio.

Respostas:

Caso Estado Corpo
Sucesso 200 {"data": [{"b64_json": "<base64 image>"}]} (só é devolvida a primeira imagem gerada)
O corpo não é JSON, ou prompt falta 400 {"error": {"message": "Invalid request: prompt required"}}
O fornecedor não devolveu nenhuma imagem 500 {"error": {"message": "No image was generated"}}
Exceção do fornecedor 500 {"error": {"message": "Image generation failed. Please try again."}}

Edição de imagens por IA

Caminho /dxpr_builder/ajax/ai/image/edit
Rota dxpr_builder.ai_image_edit
Métodos POST
Requisitos edit with dxpr builder, utilizador faturável, token CSRF
Controlador AiImageController::edit()
Parâmetro Origem Obrigatório Notas
prompt Corpo JSON Obrigatório Instrução de edição.
image Corpo JSON Obrigatório Imagem de origem codificada em Base64 (descodificação estrita).
mimeType Corpo JSON Optional Default image/png; o subtipo torna-se a extensão de ficheiro passada ao fornecedor.
model Corpo JSON Optional Default kavya-image.
size, quality, background Corpo JSON Optional Reencaminhado para a configuração do fornecedor quando não vazio.

Respostas:

Caso Estado Corpo
Sucesso 200 {"data": [{"b64_json": "<base64 image>"}]}
O corpo não é JSON, ou prompt ou image falta 400 {"error": {"message": "Invalid request: prompt and image required"}}
image não é base64 válido 400 {"error": {"message": "Invalid image data: base64 decode failed"}}
O fornecedor não devolveu nenhuma imagem 500 {"error": {"message": "No image was generated"}}
Exceção do fornecedor 500 {"error": {"message": "Image editing failed. Please try again."}}

Carregamento de ficheiros

Caminho /dxpr_builder/ajax/file_upload
Rota dxpr_builder.ajax_file_upload_callback
Métodos POST, DELETE (declarado no encaminhamento; o controlador tem um único processador de carregamento e nenhum ramo de eliminação separado)
Requisitos Utilizador faturável, token CSRF
Controlador UploadFileController::fileUpload()
Parâmetro Origem Obrigatório Notas
upload Ficheiros de formulário multipart, enviados como upload[] Obrigatório Um ou mais ficheiros carregados.

O controlador ordena cada ficheiro pela primeira parte do seu tipo MIME de cliente em <default scheme>://dxpr_builder_images, dxpr_builder_videos ou dxpr_builder_files. Uma imagem precisa de uma extensão dos tipos MIME image/gif, jpg, jpeg, png, webp, avif ou svg. Um vídeo precisa de um de video/webm, ogv, ogg, mp4 ou quicktime (por exemplo .mov). O limite de tamanho é o máximo de carregamento do PHP. Um ficheiro com o mesmo nome e conteúdo SHA-256 idêntico a um ficheiro gerido existente que o utilizador pode ver é reutilizado em vez de guardado de novo. Quando o media módulo está instalado e um tipo de média chamado image, media_image, video ou media_video existe, uma entidade de média publicada é criada (ou reutilizada) para o ficheiro. O módulo dxpr_builder regista o uso do ficheiro.

Respostas:

Caso Estado Corpo
Sucesso 201 Array JSON, um objeto por ficheiro: url (URL de ficheiro absoluto), uuid e id (da entidade de média quando existe, senão do ficheiro), fid (ID de ficheiro), entity_type (media ou file).
Sem ficheiros upload enviados 400 {"message": "No files were uploaded."}
Carregamento inválido, destino não gravável ou falha ao guardar 500 {"message": "<reason>"}
Falha de validação (extensão ou tamanho) 422 {"message": "<violation messages>"}
Nome de ficheiro já bloqueado por outro pedido 503 {"message": "File \"<name>\" is already locked for writing."}

Caixa de diálogo da biblioteca de média

Caminho /dxpr_builder/media-library
Rota dxpr_builder.media_library
Métodos Não declarado (qualquer método). Os parâmetros são lidos da query string.
Requisitos view media; rota de administração
Controlador AjaxController::openImageMediaLibrary()
Parâmetro Origem Obrigatório Notas
media_type Query string Optional image (predefinição) ou video.
remaining_slots Query string Optional Número de itens que o abridor aceita; predefine-se 1.
uuid Query string Optional Passado ao abridor como opener_parameters.uuid.

O tipo de média oferecido depende do media_browser definição: media_library usa o image ou video tipo de média diretamente; media_library_acquia_dam usa acquia_dam_image_asset ou acquia_dam_video_asset quando esse tipo de média existe.

Respostas:

Caso Resultado
Sucesso Um array de apresentação construído por MediaLibraryUiBuilder::buildUi() com o abridor media_library.opener.dxpr_builder. O Drupal apresenta-o como uma página HTML destinada a um iframe.
media_library módulo não instalado 403, texto simples Media Library is not enabled. Please enable it to access this feature.
Não suportado media_type 400, texto simples Unsupported media type "<value>".
media_browser a definição não tem nenhum tipo de média utilizável 400, texto simples The "<setting>" settings is not supported.
Caminho /dxpr_builder/ajax/help_link_validator
Rota dxpr_builder.ajax_help_link_validator
Métodos Não declarado (qualquer método). O script de desenvolvimento dxpr_builder_dev.js envia POST com corpo codificado como formulário.
Requisitos Utilizador faturável
Controlador AjaxController::validateHelpLink()
Parâmetro Origem Obrigatório Notas
help_link POST body Obrigatório para uma resposta útil Apenas http ou https URLs no anfitrião dxpr.com com um caminho a começar por /documentation/ são verificados.

Resposta: um array JSON. [true] quando um pedido HEAD à ligação (sem seguir redirecionamentos) devolve 200; [false] quando o cliente HTTP dispara; [] em todos os outros casos, incluindo um parâmetro em falta, um URL não correspondente ou um estado diferente de 200.

Caminho /dxpr_builder/entity-link-suggestions
Rota dxpr_builder.entity_link_suggestions
Métodos GET
Requisitos edit with dxpr builder, token CSRF; no_cache opção de rota
Controlador EntityLinkSuggestionsController::suggestions()
Parâmetro Origem Obrigatório Notas
q Query string Obrigatório para resultados Texto de pesquisa, em minúsculas. Um valor como /node/123 carrega essa entidade diretamente.
langcode Query string Optional Língua da entidade anfitriã; predefine-se a língua atual. Só são devolvidas entidades disponíveis nesta língua.

Os pacotes são os com ckeditor5_link_suggestions ativado na sua informação de pacote; quando nenhum está configurado, pesquisam-se todos os pacotes de nós. Até 100 entidades por tipo de entidade são associadas com um CONTAINS pesquisa através dos plugins de seleção de referências de entidades do núcleo.

Resposta: {"suggestions": [...]} com possibilidade de cache privada e idade máxima de 300 segundos. Cada sugestão tem description, entity_type_id, entity_uuid, group, label e path. Quando q não corresponde a nada, o array contém uma única sugestão de ligação manual com description, label (a entrada em minúsculas) e path (a entrada quando é um URL válido, senão uma string vazia). Quando q está vazio, suggestions é um array vazio.

Definições de editor do utilizador

Caminho /dxpr_builder/user-settings
Rota dxpr_builder.user_settings
Métodos POST
Requisitos edit with dxpr builder, token CSRF; no_cache opção de rota
Controlador UserSettingsController::save()

O editor envia este pedido quando um utilizador muda as suas próprias definições de editor, por exemplo em Definições do editor. Os valores são guardados com a conta de utilizador em user.data, módulo dxpr_builder.

Parâmetro Origem Obrigatório Notas
controls_layout Corpo JSON Obrigatório (a única definição) element, breadcrumb ou default. default remove a escolha do utilizador, para se aplicar o perfil ou a definição do site.

Respostas:

Caso Estado Corpo
Guardado 200 {"settings": {"controls_layout": "<value>"}}: todas as definições depois de guardar, default onde o utilizador não tem nenhuma escolha guardada.
O corpo não é um objeto JSON não vazio, ou um nome ou valor é inválido 400 {"error": "Invalid setting or value."}. Nada é guardado.

Operações do processador AJAX principal

Todas as operações vão para /dxpr_builder/ajax com o parâmetro de consulta de token obtido de /dxpr_builder/csrf. O nome da operação é enviado no campo do corpo POST action; todos os outros parâmetros são campos do corpo POST salvo indicação em contrário. A coluna "Re-checks billable" marca as operações que chamam isBillableUser() novamente dentro do switch. Quando essa verificação falha, devolvem a vazia AjaxResponse descrito acima, salvo se a linha disser o contrário.

Sessão e acesso

Operação Parâmetros Reverifica faturável Devolve
dxpr_login None No Booleano JSON: se o utilizador atual é faturável.
dxpr_builder_csrf None Yes String JSON: o URL do processador com um token parâmetro de consulta (igual a /dxpr_builder/csrf sem o enterprise opção).

Contentores (campos apresentados com o formatador DXPR Builder)

Operação Parâmetros Reverifica faturável Devolve
dxpr_get_container_types None Yes Objeto JSON indexado entity_type|bundle com valor entity_type - bundle, uma entrada por pacote cuja apresentação de vista predefinida usa o dxpr_builder_text formatador em pelo menos um campo.
dxpr_get_container_names container_type (obrigatório, entity_type|bundle) Sim (devolve uma string JSON vazia em vez da resposta vazia) Objeto JSON indexado entity_id|field_name (ou entity_id|field_name|langcode para entidades traduzíveis) com valor entity label|field label. Quando container_type falta, ou a verificação de faturável falha, a resposta é uma string JSON vazia.
dxpr_save_container type (obrigatório, entity_type|bundle); name (obrigatório, entity_id|field_name ou entity_id|revision_id|field_name); htmlContent (obrigatório, marcação codificada); lang (opcional, predefine-se a língua predefinida do site) Yes String JSON vazia em caso de sucesso. HTTP 400 com mensagem JSON quando htmlContent não é uma string ou a língua não se aplica a uma entidade não traduzível; 404 quando a tradução pedida não existe; 500 quando a entidade não pode ser carregada.

dxpr_save_container faz o seguinte:

  1. Descodifica htmlContent: XOR a cada byte com 7 e depois descodificação de URL.
  2. Escreve o resultado no primeiro delta do campo indicado.
  3. Cria uma nova revisão predefinida com a mensagem de registo Saved with DXPR builder quando o tipo de entidade permite revisões.
  4. Remove qualquer bloqueio de conteúdo da entidade.
  5. Atualizações block_revision_id em secções Layout Builder que referenciam o bloco em linha guardado.
  6. Incrementa o dxpr_builder.saves_count valor de estado.

A gravação só acontece quando o utilizador tem update acesso à entidade. Sem ele, a operação continua a devolver a resposta de sucesso de string vazia.

Elementos CMS (blocos e vistas)

Operação Parâmetros Reverifica faturável Devolve
dxpr_builder_get_cms_element_names None Yes Objeto JSON de DxprBuilderService::getCmsElementNames() com chaves list, disallowed e blockCategories.
dxpr_get_cms_element_settings name (obrigatório): view-<view_id>-<display_id> ou block-<plugin_id>; ajax_page_state[libraries] (opcional, bibliotecas separadas por vírgulas já carregadas) Yes Objeto JSON com css, js, settings e data. Para uma vista, data são os widgets de filtros expostos apresentados; para um bloco, data é o formulário de configuração do bloco envolvido em <form> etiquetas, com as provider, admin_label, label, label_display e context_mapping elementos removidos e todos os elementos details abertos.
dxpr_builder_load_cms_element name (obrigatório, analisado por parseStringForCmsElementInfo()); settings (obrigatório); data (obrigatório, array); ajax_page_state[libraries] (opcional) No Objeto JSON com css, js, settings e data, onde data é o bloco ou apresentação de vista apresentado.

Em ambos settingsoperações que devolvem, css e js são etiquetas de recursos apresentadas ainda não presentes na página, e settings é o descodificado drupalSettings objeto, ou uma string vazia quando não há nenhum.

Modelos de página

Operação Parâmetros Reverifica faturável Devolve
dxpr_get_page_templates None Yes Array JSON de modelos de página ativados, cada um com title, uuid, module (sempre null: a entidade não o guarda), category, date, weight (inteiro) e image (um data: URL, ou do not-found.png URL).
dxpr_load_page_template uuid (obrigatório) Yes Resposta HTML com a marcação do modelo e tokens base substituídos; vazia quando nenhum modelo ativado corresponde.

Modelos de utilizador

Operação Parâmetros Reverifica faturável Devolve
dxpr_get_templates None Yes Array JSON de modelos do utilizador atual ou marcados como globais; modelos cujo autor já não existe são excluídos. Cada entrada tem id, uuid, name, global, current_user_is_author, author_id, author_name, type e, quando guardado, image (um data: URL).
dxpr_load_template uuid (obrigatório) Yes Resposta HTML com a marcação do modelo e tokens base substituídos; vazia quando nenhum modelo ativado corresponde.
dxpr_save_template name (obrigatório); template (obrigatório, marcação); type (opcional, predefine-se custom); global (opcional, convertido para booleano); image (opcional: uma string base64 ou data:image URL no corpo POST, ou um campo de ficheiro multipart chamado image) Yes Objeto JSON com message e code. code 200 em caso de sucesso; code 409 (estado HTTP 200) quando existe um modelo com o mesmo nome de máquina; code 400 com HTTP 400 quando a imagem não são dados de imagem válidos.
dxpr_delete_template name (obrigatório) Yes String JSON vazia.

O nome de máquina deriva de name passando-o para minúsculas e substituindo cada sequência de carateres fora de a-z0-9_ por um sublinhado. type recorre ao data-azb atributo na marcação quando um modelo guardado não tem tipo.

Imagens

Operação Parâmetros Reverifica faturável Devolve
dxpr_builder_get_image_urls entityIDs (obrigatório, array); imageStyle (obrigatório; original para o ficheiro sem estilo); entityType (obrigatório; media resolve itens de média; qualquer outro valor é usado como tipo de entidade dos IDs) Yes Corpo de texto: URLs de imagens separados por vírgulas. Os ficheiros dão um URL relativo à raiz com um fid parâmetro de consulta. Itens de média do image ou video tipo resolvem para o seu ficheiro de origem. acquia_dam_image_asset itens dão o URL DAM com mid, acquiaDamAsset e imageStyle adicionado. Os outros itens de média são saltados. HTTP 204 sem corpo quando entityIDs está vazio, ou quando nenhum item de média pode ser resolvido.
dxpr_builder_get_image_style_url imageStyle (obrigatório); entityId (obrigatório); entityTypeId (obrigatório, file ou media) Yes Corpo de texto. Para um ficheiro: o seu URL relativo à raiz através do estilo de imagem (ficheiros SVG e original saltar o estilo), com um fid parâmetro de consulta. Para um acquia_dam_image_asset item de média: o URL DAM. HTTP 204 sem corpo para qualquer outra entidade, ou quando a entidade não é encontrada.
dxpr_builder_get_image_metadata entityId (obrigatório); entityType (obrigatório, file ou media) Sim (devolve 403 JSON em vez da resposta vazia) {"data": {"alt": "...", "title": "..."}} do campo de origem de imagem do item de média (um recurso Acquia DAM dá o seu texto alternativo DAM e um título vazio). Para um ficheiro, os valores vêm do primeiro item de média cujo field_media_image o referencia. data é um array vazio quando a entidade não é um ficheiro nem um item de média, ou quando nenhuma média referencia o ficheiro. Erros: 400 {"error": "Missing required parameters"}, 404 {"error": "Entity not found"}, 500 {"error": "Failed to load entity"}, 403 {"error": "Access denied"}.

Bloqueios de conteúdo

Operação Parâmetros Reverifica faturável Devolve
dxpr_content_lock_status entity_id, revision_id, entity_type, langcode (todos obrigatórios) No Objeto JSON com status (booleano) e label (rótulo de entidade); quando bloqueado, também entity_lock_author_id e entity_lock_author_name.
dxpr_toggle_content_lock entity_id, revision_id, entity_type, langcode, toggle_action (todos obrigatórios; lock cria o bloqueio; qualquer outro valor remove-o) No Objeto JSON com label e status (true depois de bloquear, false depois de desbloquear). Um array JSON vazio ([]) quando a entidade não pode ser carregada ou o utilizador não tem update acesso.

Páginas de administração

Todas estas rotas aceitam qualquer método (sem methods chave). Caminhos que contêm {...} levam o ID da entidade de configuração, ou o ID de migração para {migration_id}.

Caminho Rota Permissão Objetivo
/admin/dxpr_studio dxpr_builder.admin.studio administer dxpr builder configuration Vista geral do DXPR Studio; página de bloco de menu de administração do núcleo que lista páginas filhas.
/admin/dxpr_studio/dxpr_builder dxpr_builder.admin.studio.builder administer dxpr builder configuration Vista geral do DXPR Builder; página de bloco de menu de administração do núcleo.
/admin/dxpr_studio/dxpr_builder/settings dxpr_builder.settings administer dxpr builder configuration DxprBuilderSettingsForm: o formulário de definições do módulo.
/admin/dxpr_studio/dxpr_builder/ai_settings dxpr_builder.ai_settings administer dxpr builder configuration DxprBuilderAiSettingsForm: o formulário de definições de IA.
/admin/dxpr_studio/dxpr_builder/user_templates entity.dxpr_builder_user_template.collection administer site configuration Lista de dxpr_builder_user_template entidades de configuração.
/admin/dxpr_studio/dxpr_builder/user_templates/add entity.dxpr_builder_user_template.add_form administer site configuration Adicionar um modelo de utilizador.
/admin/dxpr_studio/dxpr_builder/user_templates/{dxpr_builder_user_template} entity.dxpr_builder_user_template.edit_form administer site configuration Editar um modelo de utilizador.
/admin/dxpr_studio/dxpr_builder/user_templates/{dxpr_builder_user_template}/delete entity.dxpr_builder_user_template.delete_form administer site configuration Apagar um modelo de utilizador (formulário de confirmação).
/admin/dxpr_studio/dxpr_builder/page_template entity.dxpr_builder_page_template.collection administer site configuration Lista de dxpr_builder_page_template entidades de configuração.
/admin/dxpr_studio/dxpr_builder/page_template/add entity.dxpr_builder_page_template.add_form administer site configuration Adicionar um modelo de página.
/admin/dxpr_studio/dxpr_builder/page_template/create dxpr_builder.create_page_template administer dxpr builder configuration PageController::createPageTemplate(): copia o modelo de utilizador ativado identificado pelo uuid parâmetro de consulta num modelo de página novo com o mesmo ID e categoria DXPR. Define uma mensagem de estado ou erro e redireciona para a lista de modelos de utilizador.
/admin/dxpr_studio/dxpr_builder/page_template/{dxpr_builder_page_template} entity.dxpr_builder_page_template.edit_form administer site configuration Editar um modelo de página.
/admin/dxpr_studio/dxpr_builder/page_template/{dxpr_builder_page_template}/delete entity.dxpr_builder_page_template.delete_form administer site configuration Apagar um modelo de página (formulário de confirmação).
/admin/dxpr_studio/dxpr_builder/profile entity.dxpr_builder_profile.collection administer dxpr_builder_profile Lista de dxpr_builder_profile entidades de configuração.
/admin/dxpr_studio/dxpr_builder/profile/add entity.dxpr_builder_profile.add_form administer dxpr_builder_profile Adicionar um perfil.
/admin/dxpr_studio/dxpr_builder/profile/{dxpr_builder_profile} entity.dxpr_builder_profile.edit_form administer dxpr_builder_profile Editar um perfil.
/admin/dxpr_studio/dxpr_builder/profile/{dxpr_builder_profile}/delete entity.dxpr_builder_profile.delete_form administer dxpr_builder_profile Apagar um perfil (formulário de confirmação).
/admin/dxpr_studio/dxpr_builder/user_licenses dxpr_builder.user_licenses administer dxpr builder configuration PageController::userLicensesPage(): tabela sem cache de utilizadores licenciados (colunas User, Roles, Sites, Assigned e Operations). Por cima, a página apresenta o seu próprio cartão de resumo de licença (dxpr-license-info) quando há informação de licença disponível e, enquanto uma licença libertada aguarda os seus 30 dias, um aviso "Next license available on". Nesta rota, o Informações de licença bloco não apresenta nada, para o resumo nunca aparecer duas vezes.
/admin/dxpr_studio/dxpr_builder/user_licenses/sites dxpr_builder.user_licenses.sites administer dxpr builder configuration PageController::userLicensesSitesPage(): lista de itens dos domínios registados para o utilizador indicado no mail parâmetro de pedido; aberto numa janela a partir da tabela de licenças.
/admin/dxpr_studio/dxpr_builder/content dxpr_builder.licensed_content administer dxpr builder configuration PageController::licensedContentPage(): tabela paginada (20 por página) de conteúdos editados com o DXPR Builder, com o resumo de licença de conteúdos. O parâmetro de consulta needs_migration=1 mostra apenas itens que precisam de uma migração de conteúdo. Vazio quando não há informação de licença disponível.
/admin/dxpr_studio/dxpr_builder/migration-status dxpr_builder.migration_status administer dxpr builder configuration MigrationStatusController::statusPage(): tabela sem cache de migrações de conteúdo registadas com os seus itens pendentes. Cada migração pendente tem um Correr agora ligação, e uma Correr todas as migrações pendentes botão aparece quando há pendentes.
/admin/dxpr_studio/dxpr_builder/migration-run/{migration_id} dxpr_builder.migration_run_confirm administer dxpr builder configuration MigrationRunConfirmForm: confirma e depois corre uma migração em lote e volta à página de estado.
/admin/dxpr_studio/dxpr_builder/migration-run-all dxpr_builder.migration_run_all_confirm administer dxpr builder configuration MigrationRunAllConfirmForm: confirma e depois corre todas as migrações registadas num lote e volta à página de estado.
/dxpr-builder/disavow-user dxpr_builder.disavow_user_confirm administer dxpr builder configuration DisavowUserConfirmForm: confirma a exclusão do utilizador indicado no uid parâmetro de consulta da edição do DXPR Builder.
/dxpr-builder/delete-stale-user dxpr_builder.delete_stale_user_confirm administer dxpr builder configuration DeleteStaleUserConfirmForm: confirma a remoção dos dados de licença do endereço de e-mail indicado no email parâmetro de consulta.

E a seguir?

  • Referência de configuração para as definições que controlam o navegador de média e o comportamento de IA usados por estes pontos de extremidade.
  • API PHP para os serviços que os controladores chamam.
  • API de hooks para os hooks que permitem a outros módulos alterar o comportamento do construtor.