サイト初期化クライアント拡張機能の使用
Liferay DXP 2023.Q4+/Portal 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 クライアント拡張機能は、サンプルワークスペースの 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 など、サイト初期化クライアント拡張機能のキー構成が含まれています。
また、クライアント拡張機能をデプロイする際に認証に必要な 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/ フォルダには単一のドキュメントが含まれており、 journal-articles/ にはウェブコンテンツ記事が含まれています。 詳細については、 サイト初期化子へのコンテンツの追加 を参照してください。
サイトに新しい語彙を追加する
サイト初期化子にコンテンツを追加するには、アセットの種類に応じて特定の場所に適切なファイル を追加する必要があります。
Liferayサンプルサイト用のカテゴリを持つ新しい語彙を追加します。
-
site-initializer/フォルダー内に、新しいtaxonomy-vocabularies/フォルダーを追加します。 -
新しく作成された
taxonomy-vocabularies/フォルダーに移動し、その中に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を開き、Apple カテゴリ用にこの JSON を保存します。{ "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インスタンスにログインしてください。
-
グローバルメニュー (
) → コントロールパネル → サイト をクリックします。サイトページには、クライアント拡張機能の サンプル サイトがリストに表示されます。
-
サンプルサイトの場合は、 アクション (
)→ サイト設定へ移動をクリックします。
-
左側のサイトメニューで、 分類 → カテゴリ をクリックします。
「カテゴリー」ページでは、サイトに「果物」に関する語彙が追加されていることが確認できます。 「果物」の語彙を選択すると、その中に含まれる「リンゴ」のカテゴリも表示されます。

さいごに
サイト初期化クライアント拡張機能を使用して、新しいサイトの作成に成功しました。 次は他のクライアント拡張タイプのデプロイメントを試してみましょう。