APIエンドポイント.
このページではDXPR Builderがdxpr_builder.routing.ymlに登録する全ルートを
挙げます。HTTPメソッド、アクセス要件、リクエストパラメーター、レスポンス形状は
コントローラーの実装通りです。AJAXエンドポイントの想定クライアントはエディターの
JavaScriptです。このページに安定した公開APIはなく、パラメーター名はリリース間で
変わる場合があります。
アクセス要件
ルートは3種類の要件を使います。1つのルートが組み合わせることもあります。
| Requirement | Meaning |
|---|---|
_permission |
ユーザーは指定のDrupal権限が必要です。DXPR Builderはadminister dxpr builder configuration、edit with dxpr builder、administer dxpr_builder_profileをdxpr_builder.permissions.ymlで定義します。view mediaとadminister site configurationはコア由来です。 |
_csrf_token |
リクエストはtokenクエリーパラメーターに有効なCSRFトークンを持つ必要があります。主要AJAXハンドラー向けに、エディターはトークン付きURLを/dxpr_builder/csrf (またはdxpr_builder_csrfオペレーション) から取得します。他ルート向けに、フィールドフォーマッターはトークン付きURLをdrupalSettings.dxprBuilderに置きます (例: fileUploadUrl、entityLinkSuggestionsUrl、userSettingsUrl、aiAgent.endpointUrl)。 |
_dxpr_builder_billable_user |
ユーザーは課金対象ユーザーである必要があります。定義は下記の通りです。 |
「課金対象ユーザー」の意味
DxprBuilderBillableUserAccessCheckは、現在の アカウントに
DxprBuilderLicenseService::isBillableUser()がtrueを返す場合に
アクセスを許可します。そのメソッドはブロック済みアカウントと
dxpr_user_is_disavowedフィールド設定済みアカウント (管理者がUser Licenses
ページで編集から除外したユーザー) にfalseを返します。それ以外ではユーザー1と
edit with dxpr builder権限を持つ全アカウントにtrueを返します。要するに、
課金対象ユーザーとはDXPR Builderでの編集を許可された有効な非除外アカウントであり、
ライセンスサービスはこのアカウントをプロダクトキーに対して数えます。
HTTPメソッド
ルートがmethodsを宣言する場合、そのメソッドだけがルーティングされます。
宣言しない場合、ルートは任意のメソッドを受け付けます (Drupalの
MethodFilterはメソッド宣言ルートだけを絞ります)。エディターの
JavaScriptが実際に使うメソッドは、ソースで分かる場合に下の表に記載します。
エディターAJAXエンドポイント
CSRFトークンURL
| Path | /dxpr_builder/csrf |
| Route | dxpr_builder.csrf_refresh |
| Methods | Not declared (any method)。エディターはGETを送ります (backend-connect.js、fetchCsrfTokenUrl())。 |
| Requirements | Billable user |
| Controller | AjaxController::ajaxRefresh() |
リクエストはヘッダーX-Requested-With: XMLHttpRequestを持つ必要があります。
ない場合、コントローラーはJSON本文{"error": "Invalid request"}付きで
HTTP 403を返します。
| Parameter | Source | Required | Notes |
|---|---|---|---|
enterprise |
Query string | Optional | 設定値trueかつdxpr_builder_eモジュールありの場合、トークンはdxpr_builder_e.ajax_callbackルート用に生成されます。そのモジュールなしで設定値trueの場合、コントローラーは例外を投げます。 |
レスポンス: 主要AJAXハンドラーのURLとtokenクエリーパラメーターを持つ
JSON文字列です。URLはサイトルートからのパスです (ベースパス含み、ホストなし)。
JavaScriptは全ビルダーオペレーションをこのURLにPOSTします。
主要AJAXハンドラー
| Path | /dxpr_builder/ajax |
| Route | dxpr_builder.ajax_callback |
| Methods | Not declared (any method)。コントローラーは全パラメーターをPOST本文から読み、エディターはPOSTを送ります。 |
| Requirements | Billable user、CSRF token |
| Controller | AjaxController::ajaxCallback() |
POST本文のフィールドactionがオペレーションを選びます。全オペレーションと
パラメーターは主要AJAXハンドラーオペレーションに
挙げます。actionがないか不明な場合、コントローラーはコマンドなしの空Drupal
AjaxResponseを返します。課金対象ユーザー状態を再確認する多くのオペレーションは、
確認失敗時に同じ空レスポンスを返します。表は2つの例外を注記します。
AIチャット
| Path | /dxpr_builder/ajax/ai/chat |
| Route | dxpr_builder.ai_chat |
| Methods | POST |
| Requirements | edit with dxpr builder、billable user、CSRF token |
| Controller | AiChatController::chat() |
リクエスト本文はJSONです。コントローラーはリクエストをDrupal aiモジュールの
dxprプロバイダーに代理するので、APIキーはブラウザーに届きません。呼び出し前に、
ai_output_allowed_domains設定のドメインをaiモジュールのホスト名フィルターに
統合します (そのサービスがある場合)。値*はフィルターを完全信頼にします。
フィルターは後で元に戻します。
| Parameter | Source | Required | Notes |
|---|---|---|---|
messages |
JSON body | Required | オブジェクトの配列です。roleとcontentを持ちます。 |
stream |
JSON body | Optional | 真偽値です。既定はtrueです。 |
model |
JSON body | Optional | 既定はkavya-m1です。 |
prediction |
JSON body | Optional | 配列としてプロバイダー設定に渡します。 |
providers |
JSON body | Optional | プロバイダー設定にそのまま渡します。 |
allowed_html_tags |
JSON body | Optional | プロバイダー設定にそのまま渡します。 |
allowed_html_classes |
JSON body | Optional | プロバイダー設定にそのまま渡します。 |
web_search |
JSON body | Optional | 値falseだけが転送されます。他の値は無視します。 |
response_format |
JSON body | Optional | 配列としてプロバイダー設定に渡します。 |
レスポンス:
| Case | Status | Body |
|---|---|---|
Streamed (stream true and the provider streams) |
200、Content-Type: text/event-stream |
サーバー送信イベントです。各イベントはdata: <JSON>で、JSONはchoices[0].delta.contentを持ち、プロバイダーが提供する場合はid、object、created、model、original_model、usageを持ちます。ストリームはdata: [DONE]で終わります。 |
| Non-streamed | 200、application/json |
{"choices": [{"message": {"role": "assistant", "content": "<text>"}}]} |
Body is not JSON, or messages is missing or empty |
400、plain text | Invalid request: messages required |
model not in the allowed_models list of ai_provider_dxpr.settings (only checked when the ai_provider_dxpr module is installed and the list is set) |
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 exception | 500、application/json |
{"error": {"message": "The request could not be completed."}} |
AI画像生成
| Path | /dxpr_builder/ajax/ai/image |
| Route | dxpr_builder.ai_image |
| Methods | POST |
| Requirements | edit with dxpr builder、billable user、CSRF token |
| Controller | AiImageController::generate() |
| Parameter | Source | Required | Notes |
|---|---|---|---|
prompt |
JSON body | Required | テキストプロンプトです。 |
model |
JSON body | Optional | 既定はkavya-imageです。 |
size |
JSON body | Optional | 空でない場合にプロバイダー設定へ転送します。 |
quality |
JSON body | Optional | 空でない場合にプロバイダー設定へ転送します。 |
background |
JSON body | Optional | 空でない場合にプロバイダー設定へ転送します。 |
レスポンス:
| Case | Status | Body |
|---|---|---|
| Success | 200 | {"data": [{"b64_json": "<base64 image>"}]} (生成画像の最初の1点だけを返します) |
Body is not JSON, or prompt is missing |
400 | {"error": {"message": "Invalid request: prompt required"}} |
| Provider returned no image | 500 | {"error": {"message": "No image was generated"}} |
| Provider exception | 500 | {"error": {"message": "Image generation failed. Please try again."}} |
AI画像編集
| Path | /dxpr_builder/ajax/ai/image/edit |
| Route | dxpr_builder.ai_image_edit |
| Methods | POST |
| Requirements | edit with dxpr builder、billable user、CSRF token |
| Controller | AiImageController::edit() |
| Parameter | Source | Required | Notes |
|---|---|---|---|
prompt |
JSON body | Required | 編集指示です。 |
image |
JSON body | Required | Base64エンコードの元画像 (厳密デコード) です。 |
mimeType |
JSON body | Optional | 既定はimage/pngです。サブタイプがプロバイダーに渡すファイル拡張子になります。 |
model |
JSON body | Optional | 既定はkavya-imageです。 |
size、quality、background |
JSON body | Optional | 空でない場合にプロバイダー設定へ転送します。 |
レスポンス:
| Case | Status | Body |
|---|---|---|
| Success | 200 | {"data": [{"b64_json": "<base64 image>"}]} |
Body is not JSON, or prompt or image is missing |
400 | {"error": {"message": "Invalid request: prompt and image required"}} |
image is not valid base64 |
400 | {"error": {"message": "Invalid image data: base64 decode failed"}} |
| Provider returned no image | 500 | {"error": {"message": "No image was generated"}} |
| Provider exception | 500 | {"error": {"message": "Image editing failed. Please try again."}} |
ファイルアップロード
| Path | /dxpr_builder/ajax/file_upload |
| Route | dxpr_builder.ajax_file_upload_callback |
| Methods | POST、DELETE (ルーティングで宣言。コントローラーは単一のアップロードハンドラーで、個別の削除分岐なし) |
| Requirements | Billable user、CSRF token |
| Controller | UploadFileController::fileUpload() |
| Parameter | Source | Required | Notes |
|---|---|---|---|
upload |
マルチパートフォームのファイル。upload[] |
Required | 1点以上のアップロードファイルです。 |
コントローラーは各ファイルをクライアントMIMEタイプの前半で振り分けます。
<default scheme>://dxpr_builder_images、
dxpr_builder_videos、dxpr_builder_filesのいずれかです。
画像はMIMEタイプimage/gif、jpg、jpeg、png、
webp、avif、svgの拡張子が必要です。動画はvideo/webm、
ogv、ogg、mp4、quicktimeのいずれかです (例: .mov)。
サイズ上限はPHPのアップロード上限です。同名かつ同一SHA-256内容の既存管理ファイルで
ユーザーが閲覧できるものがある場合、再保存せず再利用します。
mediaモジュールがあり、image、media_image、video、
media_videoのいずれかのメディアタイプがある場合、ファイルの公開メディア
エンティティーを作成 (または再利用) します。ファイル利用はdxpr_builder
モジュール下に記録します。
レスポンス:
| Case | Status | Body |
|---|---|---|
| Success | 201 | JSON配列です。ファイルごとに1オブジェクト。url (絶対ファイルURL)、uuidとid (メディアエンティティーがある場合はそのID、なければファイルID)、fid (ファイルID)、entity_type (mediaまたはfile)。 |
No upload files |
400 | {"message": "No files were uploaded."} |
| Invalid upload, unwritable destination or save failure | 500 | {"message": "<reason>"} |
| Validation failure (extension or size) | 422 | {"message": "<violation messages>"} |
| Filename already locked by another request | 503 | {"message": "File \"<name>\" is already locked for writing."} |
メディアライブラリーダイアログ
| Path | /dxpr_builder/media-library |
| Route | dxpr_builder.media_library |
| Methods | Not declared (any method)。パラメーターはクエリー文字列から読みます。 |
| Requirements | view media。admin route |
| Controller | AjaxController::openImageMediaLibrary() |
| Parameter | Source | Required | Notes |
|---|---|---|---|
media_type |
Query string | Optional | image (既定) またはvideoです。 |
remaining_slots |
Query string | Optional | 開き手が受け付ける件数です。既定は1です。 |
uuid |
Query string | Optional | 開き手にはopener_parameters.uuidとして渡します。 |
提供するメディアタイプはmedia_browser設定に依存します。
media_libraryはimageまたはvideoメディアタイプを直接使い、
media_library_acquia_damはそのメディアタイプがある場合に
acquia_dam_image_assetまたはacquia_dam_video_assetを使います。
レスポンス:
| Case | Result |
|---|---|
| Success | 描画配列はMediaLibraryUiBuilder::buildUi()で作ります。開き手はmedia_library.opener.dxpr_builderです。Drupalはiframe向けHTMLページとして描画します。 |
media_library module not installed |
403、plain text Media Library is not enabled. Please enable it to access this feature. |
Unsupported media_type |
400、plain text Unsupported media type "<value>". |
media_browser setting has no usable media type |
400、plain text The "<setting>" settings is not supported. |
ヘルプリンク検証
| Path | /dxpr_builder/ajax/help_link_validator |
| Route | dxpr_builder.ajax_help_link_validator |
| Methods | Not declared (any method)。開発スクリプトdxpr_builder_dev.jsはフォームエンコード本文でPOSTを送ります。 |
| Requirements | Billable user |
| Controller | AjaxController::validateHelpLink() |
| Parameter | Source | Required | Notes |
|---|---|---|---|
help_link |
POST body | Required for a meaningful answer | 確認対象はhttpまたはhttpsのURLで、ホストdxpr.com、パス先頭/documentation/のものだけです。 |
レスポンスはJSON配列です。リンクへのHEADリクエスト (リダイレクト追従なし) が
200を返す場合に[true]、HTTPクライアントが例外の場合に[false]、
それ以外の場合 (パラメーターなし、URL不一致、非200ステータス含む) に[]です。
エンティティーリンク候補
| Path | /dxpr_builder/entity-link-suggestions |
| Route | dxpr_builder.entity_link_suggestions |
| Methods | GET |
| Requirements | edit with dxpr builder、CSRF token。no_cache route option |
| Controller | EntityLinkSuggestionsController::suggestions() |
| Parameter | Source | Required | Notes |
|---|---|---|---|
q |
Query string | Required for results | 検索テキストです。小文字化します。/node/123のような値はそのエンティティーを直接読み込みます。 |
langcode |
Query string | Optional | ホストエンティティーの言語です。既定は現在の言語です。この言語で利用できるエンティティーだけを返します。 |
バンドルはバンドル情報でckeditor5_link_suggestions有効のものです。
設定がない場合は全ノードバンドルを検索します。エンティティータイプごとに最大
100エンティティーを、コアのエンティティー参照選択プラグインによる
CONTAINS検索で照合します。
レスポンス: {"suggestions": [...]}です。非公開キャッシュ可能性と最大
300秒です。各候補はdescription、entity_type_id、entity_uuid、
group、label、pathを持ちます。qが何にも一致しない場合、
配列はdescription、label (小文字化した入力) 、path
(有効URLの場合は入力、それ以外は空文字列) を持つ手動リンク候補1点を持ちます。
qが空の場合、suggestionsは空配列です。
ユーザーエディター設定
| Path | /dxpr_builder/user-settings |
| Route | dxpr_builder.user_settings |
| Methods | POST |
| Requirements | edit with dxpr builder、CSRF token。no_cache route option |
| Controller | UserSettingsController::save() |
ユーザーが自分のエディター設定を変える場合にエディターがこのリクエストを送ります
(例: Editor settings下)。値はuser.dataにユーザーアカウントと共に
格納します。モジュールはdxpr_builderです。
| Parameter | Source | Required | Notes |
|---|---|---|---|
controls_layout |
JSON body | Required (the only setting) | element、breadcrumb、defaultのいずれか。defaultはユーザーの選択を削除し、プロファイルまたはサイト設定が適用されます。 |
レスポンス:
| Case | Status | Body |
|---|---|---|
| Saved | 200 | {"settings": {"controls_layout": "<value>"}}。保存後の全設定です。選択の格納がないユーザーにはdefaultです。 |
| Body is not a non-empty JSON object, or a name or value is invalid | 400 | {"error": "Invalid setting or value."}。何も格納しません。 |
主要AJAXハンドラーオペレーション
全オペレーションは/dxpr_builder/csrfから得たトークンクエリーパラメーター付きで
/dxpr_builder/ajaxに行きます。オペレーション名はPOST本文のフィールド
actionで送ります。他の全パラメーターは別記なき限りPOST本文のフィールドです。
「Re-checks billable」カラムはスイッチ内でisBillableUser()を再呼び出しする
オペレーションを示します。確認失敗時は行の別記なき限り上記の空
AjaxResponseを返します。
セッションとアクセス
| Operation | Parameters | Re-checks billable | Returns |
|---|---|---|---|
dxpr_login |
None | No | JSON真偽値です。現在のユーザーが課金対象かどうかです。 |
dxpr_builder_csrf |
None | Yes | JSON文字列です。トークン (token) クエリーパラメーター付きハンドラーURLです。/dxpr_builder/csrfと同じですが、enterprise選択肢はありません。 |
コンテナー (DXPR Builderフォーマッターで描画するフィールド)
| Operation | Parameters | Re-checks billable | Returns |
|---|---|---|---|
dxpr_get_container_types |
None | Yes | JSONオブジェクトはentity_type|bundleをキー、entity_type - bundleを値とします。既定ビューディスプレイが最低1フィールドにdxpr_builder_textフォーマッターを使うバンドルごとに1項目です。 |
dxpr_get_container_names |
container_type (required、entity_type|bundle) |
Yes (returns an empty JSON string instead of the empty response) | JSONオブジェクトはentity_id|field_name (翻訳可能エンティティーではentity_id|field_name|langcode) をキー、entity label|field labelを値とします。container_typeがない場合や課金確認の失敗時は空JSON文字列のレスポンスです。 |
dxpr_save_container |
type (required、entity_type|bundle)。name (required、entity_id|field_nameまたはentity_id|revision_id|field_name)。htmlContent (required、encoded markup)。lang (optional、defaults to the site default language) |
Yes | 成功時はJSON空文字列です。htmlContentが文字列でない場合や言語が非翻訳可能エンティティーに適用されない場合はJSONメッセージ付きHTTP 400、要求翻訳がない場合は404、エンティティーを読み込めない場合は500です。 |
dxpr_save_containerは次を行います。
- 復号対象は
htmlContentです。各バイトを7でXORし、URLデコードします。 - 結果を指定フィールドの最初のデルタに書き込みます。
- エンティティータイプがリビジョン対応の場合、ログメッセージ
Saved with DXPR builder付きで新しい既定リビジョンを作ります。 - エンティティーのコンテンツロックを削除します。
- 保存したインラインブロックを参照するLayout Builderセクションの
block_revision_idを更新します。 - 状態値
dxpr_builder.saves_countを増やします。
保存はユーザーがエンティティーへのupdateアクセスを持つ場合だけ行います。
ない場合も、オペレーションは空文字列の成功レスポンスを返します。
CMSエレメント (ブロックとビュー)
| Operation | Parameters | Re-checks billable | Returns |
|---|---|---|---|
dxpr_builder_get_cms_element_names |
None | Yes | JSONオブジェクトはDxprBuilderService::getCmsElementNames()由来です。キーlist、disallowed、blockCategoriesです。 |
dxpr_get_cms_element_settings |
name (required)。view-<view_id>-<display_id>またはblock-<plugin_id>。ajax_page_state[libraries] (optional、comma-separated libraries already loaded) |
Yes | JSONオブジェクトはcss、js、settings、dataを持ちます。ビューの場合、dataは描画済み公開フィルターウィジェットです。ブロックの場合、dataは<form>タグで包んだブロック設定フォームです。provider、admin_label、label、label_display、context_mappingの各エレメントを除き、全detailsエレメントを開きます。 |
dxpr_builder_load_cms_element |
name (required、parsed by parseStringForCmsElementInfo())。settings (required)。data (required、array)。ajax_page_state[libraries] (optional) |
No | JSONオブジェクトはcss、js、settings、dataを持ちます。dataは描画済みブロックまたはビューディスプレイです。 |
両方のsettings返却オペレーションで、cssとjsはページにまだない
描画済みアセットタグであり、settingsは復号済みdrupalSettings
オブジェクトです。ない場合は空文字列です。
ページテンプレート
| Operation | Parameters | Re-checks billable | Returns |
|---|---|---|---|
dxpr_get_page_templates |
None | Yes | 有効ページテンプレートのJSON配列です。各項目はtitle、uuid、module (常にnull。エンティティーは格納しません)、category、date、weight (整数)、image (data: URL、またはモジュールのnot-found.png URL) を持ちます。 |
dxpr_load_page_template |
uuid (required) |
Yes | 基本トークン置換済みテンプレートマークアップを含むHTMLレスポンスです。一致する有効テンプレートがない場合は空です。 |
ユーザーテンプレート
| Operation | Parameters | Re-checks billable | Returns |
|---|---|---|---|
dxpr_get_templates |
None | Yes | 現在のユーザーが所有するテンプレートまたはグローバル指定のテンプレートのJSON配列です。作者アカウントがもうないテンプレートは除きます。各項目はid、uuid、name、global、current_user_is_author、author_id、author_name、typeを持ち、格納時はimage (data: URL) を持ちます。 |
dxpr_load_template |
uuid (required) |
Yes | 基本トークン置換済みテンプレートマークアップを含むHTMLレスポンスです。一致する有効テンプレートがない場合は空です。 |
dxpr_save_template |
name (required)。template (required、markup)。type (optional、defaults to custom)。global (optional、cast to boolean)。image (optional。POST本文のbase64文字列またはdata:image URL、またはimage名のマルチパートファイルフィールド) |
Yes | JSONオブジェクトはmessageとcodeを持ちます。成功時はcode 200、同マシン名のテンプレートがある場合はcode 409 (HTTPステータス200)、画像が有効な画像データでない場合はHTTP 400でcode 400です。 |
dxpr_delete_template |
name (required) |
Yes | JSON空文字列です。 |
マシン名はnameを小文字化し、a-z0-9_外の文字の連続をアンダー
スコアに置き換えて作ります。格納済みテンプレートにタイプがない場合、
typeはマークアップのdata-azb属性にフォールバックします。
画像
| Operation | Parameters | Re-checks billable | Returns |
|---|---|---|---|
dxpr_builder_get_image_urls |
entityIDs (required、array)。imageStyle (required。original for the unstyled file)。entityType (required。media resolves media items、any other value is used as the entity type of the IDs) |
Yes | テキスト本文です。カンマ区切り画像URL。fidクエリーパラメーター付きルート相対URLをファイルが与えます。image/videoタイプのメディアアイテムは元ファイルに解決します。acquia_dam_image_assetアイテムはmid、acquiaDamAsset、imageStyle付きDAM URLを与えます。他のメディアアイテムは飛ばします。entityIDsが空の場合や解決できるメディアアイテムがない場合は本文なしHTTP 204です。 |
dxpr_builder_get_image_style_url |
imageStyle (required)。entityId (required)。entityTypeId (required、fileまたはmedia) |
Yes | テキスト本文です。ファイルの場合: 画像スタイル経由のルート相対URL (SVGファイルとoriginalはスタイルを飛ばします) でfidクエリーパラメーター付き。acquia_dam_image_assetメディアアイテムの場合: DAM URL。他の全エンティティーやエンティティー未検出の場合は本文なしHTTP 204です。 |
dxpr_builder_get_image_metadata |
entityId (required)。entityType (required、fileまたはmedia) |
Yes (returns 403 JSON instead of the empty response) | {"data": {"alt": "...", "title": "..."}}はメディアアイテムの画像ソースフィールド由来です (Acquia DAMアセットはDAM代替テキストと空タイトルを与えます)。ファイルの場合、値はそのファイルをfield_media_imageで参照する最初のメディアアイテム由来です。エンティティーがファイルでもメディアアイテムでもない場合や、ファイルを参照するメディアがない場合、dataは空配列です。エラー: 400 {"error": "Missing required parameters"}、404 {"error": "Entity not found"}、500 {"error": "Failed to load entity"}、403 {"error": "Access denied"}。 |
コンテンツロック
| Operation | Parameters | Re-checks billable | Returns |
|---|---|---|---|
dxpr_content_lock_status |
entity_id、revision_id、entity_type、langcode (all required) |
No | JSONオブジェクトはstatus (真偽値) とlabel (エンティティーラベル) を持ちます。ロック時はentity_lock_author_idとentity_lock_author_nameも持ちます。 |
dxpr_toggle_content_lock |
entity_id、revision_id、entity_type、langcode、toggle_action (all required。lockはロックを作り、他値は解除します) |
No | JSONオブジェクトはlabelとstatus (ロック後はtrue、解除後はfalse) を持ちます。エンティティーを読み込めない場合やユーザーにupdateアクセスがない場合は空JSON配列 ([]) です。 |
管理ページ
これらの全ルートは任意のメソッドを受け付けます (methodsキーなし)。
{...}を含むパスは設定エンティティーIDを取ります。{migration_id}は
移行IDです。
| Path | Route | Permission | Purpose |
|---|---|---|---|
/admin/dxpr_studio |
dxpr_builder.admin.studio |
administer dxpr builder configuration |
DXPR Studio概要です。子ページを挙げるコアの管理メニューブロックページです。 |
/admin/dxpr_studio/dxpr_builder |
dxpr_builder.admin.studio.builder |
administer dxpr builder configuration |
DXPR Builder概要です。コアの管理メニューブロックページです。 |
/admin/dxpr_studio/dxpr_builder/settings |
dxpr_builder.settings |
administer dxpr builder configuration |
DxprBuilderSettingsForm。モジュール設定フォームです。 |
/admin/dxpr_studio/dxpr_builder/ai_settings |
dxpr_builder.ai_settings |
administer dxpr builder configuration |
DxprBuilderAiSettingsForm。AI設定フォームです。 |
/admin/dxpr_studio/dxpr_builder/user_templates |
entity.dxpr_builder_user_template.collection |
administer site configuration |
設定エンティティーdxpr_builder_user_templateの一覧です。 |
/admin/dxpr_studio/dxpr_builder/user_templates/add |
entity.dxpr_builder_user_template.add_form |
administer site configuration |
ユーザーテンプレートを追加します。 |
/admin/dxpr_studio/dxpr_builder/user_templates/{dxpr_builder_user_template} |
entity.dxpr_builder_user_template.edit_form |
administer site configuration |
ユーザーテンプレートを編集します。 |
/admin/dxpr_studio/dxpr_builder/user_templates/{dxpr_builder_user_template}/delete |
entity.dxpr_builder_user_template.delete_form |
administer site configuration |
ユーザーテンプレートを削除します (確認フォーム)。 |
/admin/dxpr_studio/dxpr_builder/page_template |
entity.dxpr_builder_page_template.collection |
administer site configuration |
設定エンティティーdxpr_builder_page_templateの一覧です。 |
/admin/dxpr_studio/dxpr_builder/page_template/add |
entity.dxpr_builder_page_template.add_form |
administer site configuration |
ページテンプレートを追加します。 |
/admin/dxpr_studio/dxpr_builder/page_template/create |
dxpr_builder.create_page_template |
administer dxpr builder configuration |
PageController::createPageTemplate()。uuidクエリーパラメーターで指定した有効ユーザーテンプレートを、同IDとカテゴリーDXPRの新しいページテンプレートに複写します。ステータスまたはエラーメッセージを設定し、ユーザーテンプレート一覧へリダイレクトします。 |
/admin/dxpr_studio/dxpr_builder/page_template/{dxpr_builder_page_template} |
entity.dxpr_builder_page_template.edit_form |
administer site configuration |
ページテンプレートを編集します。 |
/admin/dxpr_studio/dxpr_builder/page_template/{dxpr_builder_page_template}/delete |
entity.dxpr_builder_page_template.delete_form |
administer site configuration |
ページテンプレートを削除します (確認フォーム)。 |
/admin/dxpr_studio/dxpr_builder/profile |
entity.dxpr_builder_profile.collection |
administer dxpr_builder_profile |
設定エンティティーdxpr_builder_profileの一覧です。 |
/admin/dxpr_studio/dxpr_builder/profile/add |
entity.dxpr_builder_profile.add_form |
administer dxpr_builder_profile |
プロファイルを追加します。 |
/admin/dxpr_studio/dxpr_builder/profile/{dxpr_builder_profile} |
entity.dxpr_builder_profile.edit_form |
administer dxpr_builder_profile |
プロファイルを編集します。 |
/admin/dxpr_studio/dxpr_builder/profile/{dxpr_builder_profile}/delete |
entity.dxpr_builder_profile.delete_form |
administer dxpr_builder_profile |
プロファイルを削除します (確認フォーム)。 |
/admin/dxpr_studio/dxpr_builder/user_licenses |
dxpr_builder.user_licenses |
administer dxpr builder configuration |
PageController::userLicensesPage()。ライセンス済みユーザーの非キャッシュ表です (カラムUser、Roles、Sites、Assigned、Operations)。その上に、ライセンス情報がある場合は独自ライセンス概要カード (dxpr-license-info) を描画し、解放済みライセンスが30日待ちの間は「Next license available on」通知を出します。このルートではLicense infoブロックは何も描画しないので、概要が二重に出ることはありません。 |
/admin/dxpr_studio/dxpr_builder/user_licenses/sites |
dxpr_builder.user_licenses.sites |
administer dxpr builder configuration |
PageController::userLicensesSitesPage()。mailリクエストパラメーター指定ユーザーの記録済みドメインの項目一覧です。ライセンス表からモーダルで開きます。 |
/admin/dxpr_studio/dxpr_builder/content |
dxpr_builder.licensed_content |
administer dxpr builder configuration |
PageController::licensedContentPage()。DXPR Builderで編集したコンテンツアイテムのページ付き表 (20件ごと) です。コンテンツアイテムライセンス概要付きです。needs_migration=1クエリーパラメーターはコンテンツ移行が必要な項目だけを表示します。ライセンス情報がない場合は空です。 |
/admin/dxpr_studio/dxpr_builder/migration-status |
dxpr_builder.migration_status |
administer dxpr builder configuration |
MigrationStatusController::statusPage()。登録済みコンテンツ移行と保留項目の非キャッシュ表です。各保留移行にはRun nowリンクがあり、保留があればRun all pending migrationsボタンが現れます。 |
/admin/dxpr_studio/dxpr_builder/migration-run/{migration_id} |
dxpr_builder.migration_run_confirm |
administer dxpr builder configuration |
MigrationRunConfirmForm。確認して1つの移行をバッチ実行し、ステータスページに戻ります。 |
/admin/dxpr_studio/dxpr_builder/migration-run-all |
dxpr_builder.migration_run_all_confirm |
administer dxpr builder configuration |
MigrationRunAllConfirmForm。確認して登録済み全移行を1バッチ実行し、ステータスページに戻ります。 |
/dxpr-builder/disavow-user |
dxpr_builder.disavow_user_confirm |
administer dxpr builder configuration |
DisavowUserConfirmForm。uidクエリーパラメーター指定ユーザーのDXPR Builder編集からの除外を確認します。 |
/dxpr-builder/delete-stale-user |
dxpr_builder.delete_stale_user_confirm |
administer dxpr builder configuration |
DeleteStaleUserConfirmForm。emailクエリーパラメーター指定メールアドレスのライセンスデータ削除を確認します。 |