APIリファレンス.
DXPR Builderが定義するPHPサービス、JavaScript拡張ポイント、ルートです。サービスIDはdxpr_builder.services.ymlから、ルートはdxpr_builder.routing.ymlから来ます。各ルートのリクエスト・応答の詳細はAPIエンドポイントを参照。
PHPサービス
| サービスID | クラス(src/内) |
目的 |
|---|---|---|
dxpr_builder.service |
Service\DxprBuilderService |
出力用にBuilderコンテンツを準備し、パストークンを処理してアイコンセットレジストリーを構築 |
dxpr_builder.license_service |
Service\DxprBuilderLicenseService |
ライセンス状態、課金対象利用者、DXPRとの編集者同期 |
dxpr_builder.key_service |
Service\DxprBuilderKeyService |
プロダクトキーの読み取りと保存 |
dxpr_builder.jwt_decoder |
Service\DxprBuilderJWTDecoder |
プロダクトキーペイロードのデコード |
dxpr_builder.user_settings |
Service\UserSettings |
各編集者独自のエディター設定。利用者データに保持 |
dxpr_builder.content_lock |
Service\ContentLock |
エンティティリビジョンを編集中の利用者を記録 |
dxpr_builder.content_migration |
Service\ContentMigrationService |
コンテンツマイグレーションを実行します。収集対象はタグdxpr_builder.content_migration |
dxpr_builder.profile_handler |
Service\Handler\ProfileHandler |
プロフィールをエディター設定に変換 |
dxpr_builder.handler.block |
Service\Handler\BlockHandler |
エレメントとして配置されたDrupalブロックをレンダー |
dxpr_builder.handler.view |
Service\Handler\ViewHandler |
エレメントとして配置されたViewsディスプレイをレンダー |
dxpr_builder.template_image_validator |
Service\TemplateImageValidator |
テンプレートプレビュー画像を検証 |
dxpr_builder.rl_variant.extractor、dxpr_builder.rl_variant.registrar |
RlIntegration\Service\* |
A/Bテストバリアント。RLモジュールなしでは非活性 |
dxpr_builder.rl_sort.extractor、dxpr_builder.rl_sort.registrar |
RlIntegration\Service\* |
スマートソート実験。RLモジュールなしでは非活性 |
logger.channel.dxpr_builder |
コアのロガーチャンネル | ログチャンネルdxpr_builder |
DxprBuilderServiceInterface
実装はdxpr_builder.service。呼び出す可能性が高いメソッドです。
insertBaseTokens($content):このサイトのベースURL、ファイルディレクトリ、モジュールパスをトークンに置換します。エディターはこの形式でコンテンツを保存します。replaceBaseTokens(&$content): void:トークンを現在の環境のURLに戻します。stripHtmlElementPersists(string $markup): string:data-az-persist属性を取り除きます。エディター外で書いたマークアップに実行します。エディターは読み込み時に再構築します。getCmsElementNames():エレメントとして提供されるブロックとViewsディスプレイ。キャッシュ済み。getIconSets(): array:YAML検出とhook_dxpr_builder_icon_sets_alter()の後のアイコンセットレジストリー。
$markup = \Drupal::service('dxpr_builder.service')->insertBaseTokens($html);
DxprBuilderLicenseServiceInterface
実装はdxpr_builder.license_service。
isBillableUser(?AccountInterface $account = NULL): bool:利用者1と、DXPR Builder編集から除外されていないedit with dxpr builder付きの有効アカウントにTRUE。getLicenseInfo():DXPRライセンスサーバーからのライセンス状態。キャッシュ済み。プロダクトキーなしではフリーティア(1利用者、100コンテンツアイテム)を返します。syncAllUsersWithCentralStorage(string $operation, string $json_web_token = ''): void:このサイトの編集者をDXPRに送信します。$operationはインターフェース定数DXPR_USER_SYNC_OPERATION(sync)、DXPR_USER_ADD_OPERATION(add)、DXPR_USER_REMOVE_OPERATION(remove)のいずれか。
DxprBuilderKeyService
getApiKey(): ?string:プロダクトキー。api_key_storage設定がkeyの場合、key_providerで指定されたKeyエンティティを読み取ります。そうでなければjson_web_tokenを読み取ります。setApiKey(string $key_value, string $storage_type = 'config', ?string $selected_key_id = NULL): void:キーを設定またはKeyエンティティに保存します。
DxprBuilderJWTDecoder
decodeJwt(string $access_token):プロダクトキーのsub、scope、dxpr_tierクレームを返します。トークンが読めない場合は各NULLです。結果はトークンごとにキャッシュされます。
JavaScript拡張ポイント
エディタースクリプトはwindow.dxprBuilder上の2つの配列を共有します。配列を作るスクリプトとdxpr_builder.js(実行時に1度読み取る)の間で独自オブジェクトをプッシュします。
| 配列 | 作成者 | 何をdxpr_builder.jsが処理するか |
|---|---|---|
dxpr_param_types |
dxpr_param_types.js |
各オブジェクトのパラメータータイプ登録はregister_param_type() |
dxpr_elements |
dxpr_elements.js |
create_dxpr_elements()は各定義をregister_animated_element()で登録します。paramsの変換はmake_param_type() |
モジュールが登録するパラメータータイプはboxmodel、checkbox、checkboxes、colorpicker、datetime、dropdown、dxb_slider、html、icon、image、images、link、links、numericfield、row_layout、saved_datetime、social_links、textarea、textfield、videoです。不明なtypeのパラメーターは通常のテキスト入力としてレンダーされます。
カスタムエレメントは完全なエレメント定義と適切なタイミングでの読み込み方法を示します。
エディタールート
アクセス凡例。billableは_dxpr_builder_billable_userチェック(利用者1、または除外されていないedit with dxpr builder付きの有効アカウント)です。CSRFは_csrf_tokenです。
| パス | ルート名 | メソッド | アクセス |
|---|---|---|---|
/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 |
管理ルート
すべての管理ページはDXPR Studio > DXPR Builder配下にあります。タブ列は管理メニューのラベルを示します。
| パス | タブ | 権限 |
|---|---|---|
/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 |