APIリファレンス.

Learn DXPR BuilderExtendArchitectuur en API’s

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