Liferay 7.4におけるWebコンテンツストラクチャーの新機能
Liferay 7.4では、フォームを構築するためのバックエンドフレームワークとして、Dynamic Data Mapping (DDM)からData Engine (DE)に移行しました。
データエンジン・フレームワークは、ウェブコンテンツ構造に新たな変化と強化をもたらす。
改良された新しいフィールドタイプ
データエンジンへの移行に伴い、フィールドタイプを追加し、改良しました。
- Select from listフィールドのオプションはアルファベット順に並べることができます(Select from listフィールドの詳細設定を使用してください)。
- 数値フィールドを整数または小数のフィールドとして設定します。
- グリッドフィールドは、ウェブコンテンツやドキュメント、メディアにおける新しいフィールドタイプである。 詳細は Forms Field Type Reference を参照のこと。
- HTMLフィールドは、便利なツールバーを備えたリッチテキストフィールドに変更されました。
**ブール値と複数選択フィールド:**データエンジンは当初 ブール値フィールドを搭載していませんでした。 代わりに、アップグレードされた構造体のブール値フィールドは、同じラベルと1つのオプションだけを使用して、データエンジンの複数選択フィールドを使用するように移行されました。 例えば、テンプレートがブール値フィールドを持つ構造体上に構築されている場合など、このことからいくつかの問題が発生する可能性がある。 Liferay 7.4 アップデート/GA 23で、データエンジンにブール値項目タイプが追加されました。 Update 23 以降にアップグレードされた構造体は、ウェブコンテンツ構造体の 7.3 DDM 論理値フィールドを 7.4 DE 論理値フィールドに正常に変換しました。 この変更以前にインストールがアップグレードされた場合は、該当する構造を編集して、これらの単一オプションの複数選択フィールドをブール値フィールドに手動で変更する必要があります。
子ストラクチャーをストラクチャーフィールドセットに置き換える
DDMによってバックアップされた構造体には、親のフィールドと設定をすべて継承した子構造体を含めることができる。 Liferay 7.4ではフィールドセットを作成できるようになったので、この関係はなくなりました。 フィールドセットは、編集中に構造がどのようになっているかを見ることができるので、編集体験が向上する。
-
フィールドセットは複数の構造体にわたって再利用可能である。 ひとつの構造体の中で編集すると、すべての構造体が一度に変更される。
-
フィールドセットや構造体がウェブコンテンツで使用されている場合、編集するとユーザーへの警告が表示されます:
フィールドセットと連動するには、以下を行います。
-
サイトメニュー( ) にアクセスし、 コンテンツとデータ → ウェブコンテンツ に移動する。
-
[ストラクチャー] タブを選択します。
-
Add( ) をクリックして、新しい構造を作成する。
-
ウェブコンテンツ構造フォームビルダービュー()で、 フィールドセット タブをクリックします。
-
[Create New Fieldset] をクリックします。 フィールドセットに名前を付けます。
-
そのフィールドを追加し、設定します。 [Save] をクリックします。
新しい構造の作成を開始するとき、既存のフィールドセットまたは構造をフィールドセット・タブで選択することができる。 基本的なウェブコンテンツ構造は、すぐに使えるフィールドセットとして含まれています。
ストラクチャー定義ソースの変更
DEではストラクチャーがJSONで表されます(DDMではXMLでした)。 ウェブコンテンツ構造 UI でコードを編集するのではなく、構造定義をインポートおよびエクスポートして、構造のソース JSON をローカルで操作できるようになりました。
JSON構造体のソースは、一見したところより複雑な場合があるので、慎重に扱うこと。 例えば、ストラクチャーにフィールドを追加する場合、 dataDefinitionFields
配列とdefaultDataLayout
要素の両方を更新しなければなりません。
構造体のJSONをエクスポートする
-
サイトメニュー( ) にアクセスし、 コンテンツとデータ → ウェブコンテンツ に移動する。
-
[ストラクチャー] タブをクリックします。
-
メイン構造リストビューで、構造の アクション メニュー( )を開き、 JSON としてエクスポート をクリックします。
構造のJSONをインポートして既存の構造を上書きする
既存の構造体のJSONを上書きする、
-
サイトメニュー( ) にアクセスし、 コンテンツとデータ → ウェブコンテンツ に移動する。
-
[ストラクチャー] タブをクリックします。
-
メイン構造のリストビューで、構造の Actions メニュー()を開き、 Import and Override をクリックします。
-
JSONファイルをアップロードします。
構造のJSONをインポートして新しい構造を作成する
新しい構造をインポートするには
-
サイトメニュー( ) にアクセスし、 コンテンツとデータ → ウェブコンテンツ に移動する。
-
[ストラクチャー] タブをクリックします。
-
画面右上にあるウェブコンテンツの オプション メニュー () を開きます。
-
[Import Structure] をクリックします。
フレキシブルなストラクチャーレイアウト
以前は、構造フィールドをフォーム上で並べたり、ネストさせたりして、フォームの階層ビューを作成することができました。 データエンジンの構造表現では、カラムを定義する機能が追加されている。
ストラクチャービルダーで2つのフォーム項目を隣同士に追加し、フィールドの端をドラッグして列のサイズを変更します。
列だけでなく、フィールド・グループを使って、構造体のフィールドのサブセットをまとめてロックしておくと、管理が容易になる。 フィールドを他のフィールドの上にドロップしてフィールドグループを作成する。
Webコンテンツストラクチャーキーの設定
構造体キーを手動で設定できるのは、新しい構造体を作成するとき(後述)か、 新しい構造体としてJSONをインポートする ときです。 既存の構造体をインポートして上書きする 場合でも、既存の構造体のキーを更新することはできません。
-
Global Menu() を開き、 Control Panel タブを開きます。
-
Configuration → System Settings → Web Content(under Content and Data)にアクセスしてください。
-
管理 をクリックします。 Autogenerate Structure Key のチェックを外し、 Update をクリックする。
-
サイトメニュー( ) にアクセスし、 コンテンツとデータ → ウェブコンテンツ に移動する。 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]タブで確認します。