Liferay 7.4におけるWebコンテンツストラクチャーの新機能¶
Liferay 7.4では、フォームを構築するバックエンドのフレームワークとして、Webコンテンツの構造がDDM(Dynamic Data Mapping)からDE(Data Engine)に移行されました。
データエンジンフレームワークは、Webコンテンツ構造に新たな変化と強化をもたらします。
改良された新しいフィールドタイプ¶
データエンジンへの移行に伴い、フィールドタイプを追加し、改良しました。
[Select from List]フィールドのオプションをアルファベット順に並べることができます([Select from List]フィールドの詳細設定を使用します)。
数値フィールドを整数または小数のフィールドとして設定します。
グリッドフィールドは、[Webコンテンツ]と[ドキュメントとメディア]の新しいフィールドタイプです。 フォーム項目タイプのリファレンスを参照してください。
HTMLフィールドは、便利なツールバーを備えたリッチテキストフィールドに変更されました。
警告
**ブール値と複数選択フィールド:**データエンジンは当初 ブール値フィールドを搭載していませんでした。 代わりに、アップグレードされた構造体のブール値フィールドは、同じラベルと1つのオプションだけを使用して、Data Engineの複数選択フィールドを使用するように移行されました。 例えば、ブール値フィールドを持つ構造体上にテンプレートを構築した場合、いくつかの問題が発生する可能性があります。 Liferay 7.4 アップデート/GA 23で、データエンジンにブール値項目タイプが追加されました。 Update 23以降にアップグレードされた構造体は、Webコンテンツ構造体の7.3 DDM Booleanフィールドを7.4 DE Booleanフィールドに正常に変換します。 この変更以前にインストールをアップグレードした場合は、該当する構造を編集して、これらの単一オプションのMultiple SelectionフィールドをBooleanフィールドに手動で変更する必要があります。
子ストラクチャーをストラクチャーフィールドセットに置き換える¶
DDMでバックアップされた構造体は、親のフィールドと設定をすべて継承した子構造体を含むことができます。 Liferay 7.4では、フィールドセットを作成できるようになったので、この関係はもはや存在しません。このフィールドセットを使って、構造体に対して再利用可能なフィールドセットを作成することができます。 フィールドセットでは、編集しながら構造を確認できるため、編集の作業性が向上します。
警告
フィールドセットは、複数の構造体にまたがって再利用可能である。 一つの構造体の中で編集すると、すべての構造体が一度に変更されます。
フィールドセットや構造体がWebコンテンツで使用されている場合、編集するとユーザーへの警告が表示されます:
フィールドセットと連動するには、以下を行います。
[Webコンテンツストラクチャー]フォームビルダービューで、 [Fieldsets] タブをクリックします。
[Create New Fieldset] をクリックします。 フィールドセットに名前を付けます。
そのフィールドを追加し、設定します。 [保存] をクリックします。
新しい構造の作成を開始すると、既存のフィールドセットや構造を「フィールドセット」タブで選択できるようになります。 基本的なWebコンテンツ構造は、すぐに使えるフィールドセットとして含まれています。
ストラクチャー定義ソースの変更¶
DEではストラクチャーがJSONで表されます(DDMではXMLでした)。 Web Content Structures UI でコードを編集するのではなく、構造体定義をインポートおよびエクスポートして、構造体のソース JSON をローカルで操作できるようになりました。
警告
JSON構造体のソースは、一見すると複雑なので、注意して作業してください。 例えば、ストラクチャーにフィールドを追加する場合、 dataDefinitionFields
配列とdefaultDataLayout
要素の両方を更新しなければなりません。
構造体のJSONをエクスポートする¶
サイトメニュー →[コンテンツとデータ]→[Web Content]に移動します。
[Structures] タブをクリックします。
既存の構造がない場合は、構造を作成して保存します。
メイン構造体リストビューで,Actions メニューを開き, Export as JSON をクリックします.
構造体のJSONをインポートして既存の構造体を上書きする¶
既存の構造体のJSONを上書きする場合。
サイトメニュー →[コンテンツとデータ]→[Web Content]に移動します。
[Structures] タブをクリックします。
メイン構造体リストビューで、構造体のActionsメニューを開き、 Import and Override をクリックします。
JSONファイルをアップロードします。
構造体のJSONをインポートして新しい構造体を作成する¶
新しい構造をインポートするには
サイトメニュー →[コンテンツとデータ]→[Web Content]に移動します。
[Structures] タブをクリックします。
画面右上の[Web Content]のオプションメニューを開きます。
[Import Structure] をクリックします。
フレキシブルなストラクチャーレイアウト¶
以前は、構造体フィールドをフォーム上で順序付けし、ネストしてフォームの階層的なビューを作成することができました。 データエンジンの構造表現では、カラムを定義する機能が追加されています。
ストラクチャービルダーで2つのフォーム項目を隣同士に追加し、フィールドの端をドラッグして列のサイズを変更します。
カラムだけでなく、フィールドグループを使って、構造体のフィールドのサブセットをまとめてロックしておくと管理が楽になります。 フィールドを他のフィールドの上にドロップして、フィールドグループを作成します。
Webコンテンツストラクチャーキーの設定¶
警告
構造体キーは,新規構造体作成時(後述)または JSONを新規構造体としてインポートする 際に手動で設定することができます. 既存の構造体をインポートして上書きする](#importing-a-structure-s-json-to-overwrite-an-existing-structure) 場合でも、既存の構造体のキーを更新することはできない。
[システム設定]→ [Webコンテンツ]([コンテンツとデータ]の下)→ [管理]にアクセスします。 [自動生成ストラクチャーキー] のチェックを外します。
サイトメニュー →[コンテンツ&データ]→[Webコンテンツ]に移動します。 Structuresタブを開き、新しい構造を追加します。
フィールドを追加し、構造体に名前を付けます。 構造キーを手動で設定するには、設定アイコン (
) をクリックして、プロパティ サイドバーを開きます。
[ストラクチャーキー] フィールドを編集し、カスタム値を追加します(例:
MY_STRUCTURE_KEY
)。構造を保存します。
新しいデータエンジンに基づくストラクチャーでは、エクスポート処理でJSONからストラクチャーキーが取り除かれます。 つまり、定義を(例えば新しいサイトに)インポートすると、新しいストラクチャーキーが生成されます。 エクスポートとインポートのプロセスでストラクチャーキーを保持したい場合、または新しいカスタムキーを提供したい場合は、エクスポートされたJSONを編集する必要があります。
エクスポートされたJSON にカスタムストラクチャーキーを追加するには、以下の手順に従います。
エクスポートしたJSONファイル(例:
Structure_my structure_42153_20220721144913685.json
)を開きます。"dataDefinitionField"
要素の前に"dataDefinitionKey"
要素を追加します。{ "availableLanguageIds":["en_US"], "contentType":"journal", "dataDefinitionKey":"MY_STRUCTURE_KEY", "dataDefinitionFields":[{"..."}] }
ストラクチャー定義ファイルを インポート して、キーがインポートされたことを[Properties]タブで確認します。