データエンジンを使用したWebコンテンツ構造
Liferay 7.4以降、Webコンテンツ構造は、フォーム構築のためのバックエンドフレームワークとして、Dynamic Data Mapping(DDM)からData Engine(DE)へと移行されました。

データエンジンフレームワークは、ウェブコンテンツ構造に新たな変更と機能強化をもたらします。
改良された新しいフィールドタイプ
データエンジンへの移行に伴い、フィールドタイプを追加し、改良しました。
- 「リストから選択」フィールドのオプションは、アルファベット順に並べ替えることができます(「リストから選択」フィールドの詳細設定を使用してください)。
- 数値フィールドを整数または小数のフィールドとして設定します。
- グリッドフィールドは、ウェブコンテンツ、ドキュメント、メディアにおける新しいフィールドタイプです。 詳細については、 フォームフィールドタイプのリファレンス を参照してください。
- HTMLフィールドは、便利なツールバーを備えたリッチテキストフィールドに置き換えられました。
ブール値フィールドと複数選択フィールドの比較: データ エンジンには当初ブール値フィールドは含まれていませんでした。 その代わりに、アップグレードされた構造内のブール型フィールドは、同じラベルと1つのオプションのみを使用するデータエンジンの複数選択フィールドに移行するように変更されました。 これによっていくつかの問題が生じる可能性があります。例えば、テンプレートがブール型フィールドを持つ構造に基づいて構築されている場合などです。 Liferay 7.4 アップデート/GA 23で、データエンジンにブール値項目タイプが追加されました。 アップデート23後のアップグレードされた構造では、Webコンテンツ構造内の7.3 DDMブール型フィールドが7.4 DEブール型フィールドに正常に変換されます。 この変更が行われる前にインストール環境をアップグレードした場合は、影響を受ける構造を編集して、これらの単一オプションの複数選択フィールドをブール型フィールドに手動で変更する必要があります。
リッチテキストフィールドの動作変更
データエンジンフレームワークへの移行の一環として、Webコンテンツ構造におけるリッチテキストフィールドに大幅な変更が加えられました。 新しいリッチテキストフィールドは、デフォルトのWYSIWYGエディタとしてCKEditorを使用し、以前のダイナミックデータマッピング(DDM)リッチテキストフィールドに取って代わります。
Liferay DXP 2024.Q1+/Portal GA112+以降では、 クライアント拡張機能 を使用して CKEditor の設定をカスタマイズでき、ニーズに合わせてエディターを柔軟に調整できます。
子ストラクチャーをストラクチャーフィールドセットに置き換える
DDMによってサポートされる構造には、親構造のすべてのフィールドと設定を継承する子構造が含まれる可能性があります。 この関係性はもはや存在しません。なぜなら、フィールドセットを作成できるようになり、それを使って構造体用の再利用可能なフィールドセットを作成できるようになったからです。 フィールドセットを使用すると、編集中に構造がどのように見えるかを確認できるため、編集作業の効率が向上します。
フィールドセットは複数の構造間で再利用可能です。 単一の構造内で編集すると、すべての構造に同時に変更が加えられます。
Webコンテンツでフィールドセットまたは構造が使用されている場合、編集時にユーザーに警告が表示されます。

フィールドセットと連動するには、以下を行います。
-
サイトメニュー (
) に移動し、 コンテンツ & データ → ウェブコンテンツ に移動します。 -
構造 タブを選択します。
-
新規 をクリックして、新しい構造を作成します。
-
ウェブコンテンツ構造フォームビルダービュー(
)で、 フィールドセット タブをクリックします。 -
新しいフィールドセットを作成 をクリックします。 フィールドセットに名前を付けます。
-
そのフィールドを追加し、設定します。 [保存]をクリックします。

新しい構造を作成する際、既存のフィールドセットまたは構造は「フィールドセット」タブで選択できます。 基本的なウェブコンテンツ構造は、すぐに使えるフィールドセットとして含まれています。
ストラクチャー定義ソースの変更
DEではストラクチャーがJSONで表されます(DDMではXMLでした)。 ウェブコンテンツ構造のUIでコードを編集する代わりに、構造定義をインポートおよびエクスポートして、構造のソースJSONをローカルで操作できるようになりました。
JSON構造のソースコードを扱う際は注意してください。一見したよりも複雑な場合があります。 例えば、構造にフィールドを追加する場合は、 dataDefinitionFields 配列と defaultDataLayout 要素の両方を更新する必要があります。
Liferay DXP 2025.Q1+/Portal GA132+では、Webコンテンツ構造は内部で生成された外部参照コード(ERC)とともにエクスポートされます。 新しいシステムや環境にインポートされた場合、ERCによってその構造を参照するエンティティは、手動での更新なしに引き続き機能します。
構造体のJSONをエクスポートする
-
サイトメニュー (
) に移動し、 コンテンツ & データ → ウェブコンテンツ に移動します。 -
構造 タブをクリックします。
-
既存の構造がない場合は、 作成し、 保存します。
-
メイン構造リストビューで、構造の アクション メニュー (
) を開き、 JSON としてエクスポート をクリックします。
既存の構造を上書きするために構造のJSONをインポートする
既存の構造の JSON を上書きするには、
-
サイトメニュー (
) に移動し、 コンテンツ & データ → ウェブコンテンツ に移動します。 -
構造 タブをクリックします。
-
既存の構造がない場合は、 作成し、 保存します。
-
メイン構造リストビューで、構造の アクション メニュー (
) を開き、 インポートとオーバーライド をクリックします。 -
JSONファイルをアップロードします。

インポートおよびオーバーライドの動作は、「構造キーの自動生成」設定によって異なります。
- 有効にすると、インポートが失敗し、UIに「 構造キーは変更できません。」と表示されます。
- 無効にした場合、インポートは成功し、JSONファイルからのキーが構造体のキーに置き換えられます。
この設定を構成する方法については、 Webコンテンツ構造キーの設定 を参照してください。
構造体のJSONをインポートして新しい構造体を作成する
新しい構造をインポートするには、
-
サイトメニュー (
) に移動し、 コンテンツ & データ → ウェブコンテンツ に移動します。 -
構造 タブをクリックします。
-
画面右上の オプション メニュー (
) を開いて、Web コンテンツを表示します。 -
をクリックして構造をインポートします。

フレキシブルなストラクチャーレイアウト
以前は、フォーム上で構造フィールドの順序を並べ替えたり、ネストしたりすることで、フォームの階層構造を作成することができました。 データエンジンによる構造表現では、列を定義する機能が追加されます。

ストラクチャービルダーで2つのフォーム項目を隣同士に追加し、フィールドの端をドラッグして列のサイズを変更します。
列に加えて、フィールドグループを使用して構造体のフィールドの一部をまとめてロックすることで、管理を容易にすることができます。 フィールドを別のフィールドの上にドラッグ&ドロップすることで、フィールドグループを作成できます。
Webコンテンツストラクチャーキーの設定
新しい構造体を作成するときや、JSONを新しい構造体としてインポートするときに、構造体キーを手動で設定することができます。
既存の構造をインポートして上書きする場合、構造のキーを更新することはできません。
インポートとオーバーライドは、「構造キーの自動生成」設定にも依存します。 インポートの失敗やキーの変更を避けるため、まずこの設定を確認してください。 詳細については、 既存の構造を上書きするための構造の JSON のインポート を参照してください。
-
グローバルメニュー(
)を開き、[Control Panel(コントロールパネル)]タブに移動します。 -
システムレベルで設定するには、 設定 → システム設定 → Web コンテンツ (コンテンツ & データの下) に移動します。
-
Liferay DXP 2024.Q4+/Portal GA129+ インスタンスレベルで設定するには、 設定 → インスタンス設定 → Web コンテンツ (コンテンツ & データの下) に移動します。
-
管理 をクリックします。 構造キーの自動生成 のチェックを外し、 更新 をクリックします。
Liferay DXP 2024.Q4+/Portal GA129+の場合は、[仮想インスタンススコープ] の下にある Web コンテンツ をクリックします。 構造キーの自動生成 のチェックを外し、 更新 をクリックします。
ヒントWeb コンテンツ テンプレートに同じ設定を適用するには、 テンプレート キーの自動生成 のチェックを外します。
-
サイトメニュー (
) に移動し、 コンテンツ & データ → ウェブコンテンツ に移動します。 「構造物」タブを開き、新しい構造物を追加します。 -
フィールドを追加し、構造体に名前を付けます。 構造キーを手動で設定するには、設定アイコン(
)をクリックしてプロパティサイドバーを開きます。 -
[ストラクチャーキー]フィールドを編集し、カスタム値を追加します(例:
MY_STRUCTURE_KEY)。 -
構造物を保存してください。
新しいデータエンジンに基づくストラクチャーでは、エクスポート処理でJSONからストラクチャーキーが取り除かれます。 つまり、定義を(例えば新しいサイトに)インポートすると、新しいストラクチャーキーが生成されます。 エクスポートとインポートのプロセスでストラクチャーキーを保持したい場合、または新しいカスタムキーを提供したい場合は、エクスポートされたJSONを編集する必要があります。
エクスポートされた JSON にカスタム構造キーを追加するには、
-
エクスポートしたJSONファイル(例:
Structure_my structure_42153_20220721144913685.json)を開きます。 -
"dataDefinitionKey"要素を"dataDefinitionField"要素の前に追加します。{ "availableLanguageIds": ["en_US"], "contentType": "journal", "dataDefinitionKey": "MY_STRUCTURE_KEY", "dataDefinitionFields": [{"..."}] } -
構造定義ファイルをインポートし、Properties タブで確認してキーがインポートされたことを確認する。

開発者向け注意事項:ヘッドレスAPIレスポンスにおける互換性のない変更点
データエンジンフレームワークへの移行により、ヘッドレスAPIの 構造化コンテンツ エンドポイントに互換性のない変更が導入されました。
-
ネストされたフィールド:レスポンスでは、ネストされたフィールドをグループ化するために新しいFieldSetタイプが使用されるようになり、レスポンス構造にレイヤーが追加されます。 アプリケーションは、これらのネストされたフィールドを解析および処理するためのロジックをリファクタリングする必要があります。
-
選択フィールドのデータ形式:選択フィールドのデータ属性が変更されたため、選択フィールドの値の取得方法と処理方法に影響があります。 以前のフォーマットに依存しているアプリケーションは、互換性を確保するためにアップデートが必要です。