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."} |
|
|
| 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. |
Validador de ligações de ajuda
|
|
| 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.
Sugestões de ligações de entidades
|
|
| 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). |
| 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:
- Descodifica
htmlContent: XOR a cada byte com 7 e depois descodificação de URL.
- Escreve o resultado no primeiro delta do campo indicado.
- Cria uma nova revisão predefinida com a mensagem de registo
Saved with DXPR builder quando o tipo de entidade permite revisões.
- Remove qualquer bloqueio de conteúdo da entidade.
- Atualizações
block_revision_id em secções Layout Builder que referenciam o bloco em linha guardado.
- 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.