サイト初期化クライアント拡張機能の使用
Liferay DXP 2023.Q4+/ポータル GA100+
Site Initializer クライアント拡張機能を使用すると、構成とコンテンツを備えたサイトをすばやく作成または更新できます。 クライアント拡張機能をビルドしてデプロイするには、 サンプル ワークスペース から開始します。
前提条件
-
サポートされているバージョンの Javaをインストールします。
-
サンプルワークスペースをダウンロードし、解凍します。
curl -o com.liferay.sample.workspace-latest.zip https://repository.liferay.com/nexus/service/local/artifact/maven/content\?r\=liferay-public-releases\&g\=com.liferay.workspace\&a\=com.liferay.sample.workspace\&\v\=LATEST\&p\=zip
unzip com.liferay.sample.workspace-latest.zip
必要なすべてのツールと Site Initializer クライアント拡張機能は、サンプル ワークスペースに含まれています。
サイト初期化子を調べる
Site Initializerクライアント拡張機能は、サンプルワークスペースの client-extensions/liferay-sample-site-initializer/ フォルダにあります。 client-extension.yaml ファイルに定義されています。
liferay-sample-site-initializer:
name: Liferay Sample Site Initializer
oAuthApplicationHeadlessServer: liferay-sample-site-initializer-oauth-application-headless-server
siteExternalReferenceCode: liferaySample
siteName: Liferay Sample
type: siteInitializer
この YAML の ID は Liferay-sample-site-initializer で、タイプや新しいサイトの名前 (Liferay Sample) など、Site Initializer クライアント拡張機能の主要な構成が含まれています。
また、クライアント拡張機能をデプロイするときに認証に必要な OAuth ヘッドレス サーバー クライアント拡張機能定義も含まれています。
liferay-sample-site-initializer-oauth-application-headless-server:
.serviceAddress: localhost:8080
.serviceScheme: http
name: Liferay Sample OAuth Application Headless Server
scopes:
- Liferay.Headless.Site.everything
type: oAuthApplicationHeadlessServer
サンプル クライアント拡張機能には、事前定義されたコンテンツを含む site-initializer/ フォルダーもあります。 documents/group/ フォルダには 1 つのドキュメントが含まれており、 journal-articles/ には Web コンテンツ記事があります。 詳細については、「 サイト初期化子へのコンテンツの追加 」を参照してください。
サイトに新しい語彙を追加する
サイト初期化子にコンテンツを追加するには、アセット タイプに応じて特定の場所に正しいファイル を追加する必要があります。
Liferay サンプル サイトのカテゴリに新しい語彙を追加します。
-
site-initializer/フォルダに、新しいtaxonomy-vocabularies/フォルダを追加します。 -
新しい
taxonomy-vocabularies/フォルダに移動し、その中にgroup/サブフォルダを追加します。group/フォルダー内に語彙を追加すると、語彙の範囲が新しいサイトに設定されます。 -
新しい
group/フォルダーに移動し、fruits.jsonという名前の新しい JSON ファイルを作成します。touch fruits.json -
fruits.jsonを開き、この JSON を新しい Fruits 語彙として保存します。{ "description": "This is a vocabulary for things related to fruits.", "externalReferenceCode": "FruitVocabulary", "name": "Fruits", "numberOfTaxonomyCategories": 1 } -
fruits.jsonファイルの横に、fruits/という新しいフォルダーを作成します。フォルダーに語彙の JSON ファイルと同じ名前を付けると、フォルダーにその語彙のカテゴリが含まれていることが示されます。 カテゴリ JSON ファイルの横にフォルダーを作成してサブカテゴリを追加することで、同じことを行うことができます。
-
fruits/フォルダに、apple.jsonという新しいファイルを追加します。 -
apple.jsonを開き、この JSON を Apple カテゴリに保存します。{ "description": "This category is for things related to apples.", "externalReferenceCode": "AppleCategory", "name": "Apple", "numberOfTaxonomyCategories": 0, "taxonomyCategoryProperties": [] }
これで、新しいサイトに、1 つのカテゴリを含む新しい語彙を追加するのに十分な情報が追加されました。
Liferayにサイトをデプロイする
新しいLiferay インスタンスを起動し、以下を実行します。
docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.132-ga132
http://localhost:8080でLiferayにサインインします。 メールアドレス test@liferay.com とパスワード testを使用してください。 プロンプトが表示されたら、パスワードを learnに変更します。
次に、サンプル ワークスペース内のクライアント拡張プロジェクトのフォルダーから次のコマンドを実行します。
../../gradlew clean deploy -Ddeploy.docker.container.id=$(docker ps -lq)
これにより、クライアント拡張が構築され、Liferayのdeploy/フォルダにzipをデプロイします。
クライアント拡張機能をLiferay SaaSにデプロイするには、Liferay Cloud コマンドラインツール を使用して lcp deployを実行します。
ワークスペース内のすべてのクライアント拡張機能を同時にデプロイするには、 client-extensions/ フォルダーからコマンドを実行します。
Liferayインスタンスのコンソールでデプロイメントを確認します。
STARTED liferaysamplesiteinitializer_7.4.13
サイトと語彙を見つける
-
Liferay インスタンスに管理者としてログインします。
-
グローバル メニュー (
) → コントロール パネル → サイトをクリックします。[サイト] ページでは、クライアント拡張機能からの サンプル サイトがリストに表示されます。
-
サンプルサイトの場合は、 [アクション] (
) → [サイト設定に移動]をクリックします。![新しいサイトのデータを表示するには、[サイト設定に移動] をクリックします。](https://resources.learn.liferay.com/images/dxp/latest/en/development/importing-exporting-data/using-a-site-initializer-client-extension/images/01.png)
-
左側のサイト メニューで、 分類 → カテゴリをクリックします。
「カテゴリ」ページでは、果物の語彙がサイトに追加されていることがわかります。 Fruits 語彙を選択すると、そこに含まれる Apple カテゴリも表示されます。

今後の流れ
Site Initializer クライアント拡張機能を使用して新しいサイトを正常に作成しました。 次は他のクライアント拡張タイプのデプロイメントを試してみましょう。