マルチサイトでの利用.
DXPR BuilderはDrupalマルチサイトでも個別サーバーと同様に動作します。モジュールコードは1つ、サイトごとに1つのデータベース、すべてのサイトで共有する1つのプロダクトキーです。このページでは、共有されるもの、サイトごとのもの、設定方法を説明します。
サイト横断のライセンス
1つのプロダクトキーがすべてのサイトに対応します。ライセンスはサイト単位ではなく編集者単位で、件数はDXPRライセンスサーバーが保持します。
- 各サイトはホスト名と編集者(除外されていない
edit with dxpr builder権限のアカウントとuser 1)をライセンスサーバー (src/Service/DxprBuilderLicenseService.php)に送信します。有効なメールアドレスのないアカウントは送信されません。 - サーバーはメールアドレスごとに、そのアドレスが編集したドメインの一覧付きで1レコードを保持します。同じメールアドレスで3サイトを編集する人は1件と数えます。
- 各サイトは共有の編集者一覧をサーバーから取得し、合計をステータスレポートとUser Licensesページに報告します。一覧は24時間キャッシュされます。
編集者の数え方と解放についてはマルチサイトライセンスをご覧ください。
共有されるものとサイトごとのもの
コードベースを通じて共有されるものは次のとおりです。
- モジュールとそのサブモジュール(
modules/contrib/dxpr_builder内にあります)。 - エディターのJavaScript。Asset sourceがCloud(デフォルト)の場合、すべてのサイトはDXPR CDNから同じリリースを読み込みます。モジュールディレクトリーにローカルビルドがある場合は、代わりにそこからファイルを読み込みます。
- モジュールとテーマが宣言するアイコンセットとユーティリティクラス(
*.dxpr_icon_sets.yml、テーマの.info.yml内のdxpr_builder_classes)。テーマのクラスは、そのテーマが有効なサイトにのみ表示されます。
サイトごとに異なるもの(そのサイトのデータベースと設定に存在するため)は次のとおりです。
dxpr_builder.settings。プロダクトキーまたはそれを保持するKeyエンティティ、Custom styles、Sideload Bootstrap files、 メディア用のBrowser type、テキストフィルターとエディターアセット設定。- Keyエンティティ自体(
key.key.*)。プロダクトキーをKeyモジュールで保存している場合。 - AI設定(DXPR Studio > DXPR Builder > AI)。有効なモデルを含みます。
- ビルダープロファイル(
dxpr_builder.dxpr_builder_profile.*)、ページテンプレート(dxpr_builder.page_template.*)、ユーザーテンプレート(dxpr_builder.user_template.*)。 - 各サイトのファイルディレクトリー内のアップロード画像(
dxpr_builder_images、dxpr_builder_videos、dxpr_builder_files)。
Bootstrap設定にはNone (theme provides Bootstrap)とBootstrap 5の2つの値があります。サイトが使うテーマに応じてサイトごとに選びます。
マルチサイトに新しいサイトを追加する
-
サイトの
sites/<name>/settings.phpとデータベースを、通常のDrupalマルチサイトと同様に作成します。 -
そのサイトでモジュールを有効にします。
drush --uri=https://<site-host> en dxpr_builder -y -
そのサイトでDXPR Studio > DXPR Builder > General Settings (
/admin/dxpr_studio/dxpr_builder/settings)を開きます。Licenseセクションに、他のサイトで使うのと同じプロダクトキーを貼り付けるか、それを保持するこのサイトのキーを選択します。 -
設定するのはSideload Bootstrap filesで、サイトのテーマに合わせます。
-
そのサイトのビルダープロファイルを作成し、必要に応じて下記の方法でテンプレートをインポートします。
サイト間でテンプレートを共有する
ページテンプレートとユーザーテンプレートは設定エンティティのため、設定のエクスポート・インポートで移動できます。
-
ソースサイトの設定をエクスポートします。
drush --uri=https://<source-host> config:export -
コピーするのは
dxpr_builder.page_template.*.ymlとdxpr_builder.user_template.*.ymlファイルで、ターゲットサイトの設定同期ディレクトリーに入れます。 -
ターゲットサイトでインポートします。
drush --uri=https://<target-host> config:import --partial
ユーザーテンプレートにはuidが付きます。エクスポートファイルはソースサイト上の所有者のユーザーIDを参照するため、インポート後に所有者を確認します。
次のステップ
- マルチサイトライセンス:編集者の数え方とライセンスの解放。
- テンプレートのインポートとエクスポート:管理画面経由での個別テンプレートの移動。