oo

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フィールドは、便利なツールバーを備えたリッチテキストフィールドに変更されました。
warning

**ブール値と複数選択フィールド:**データエンジンは当初 ブール値フィールドを搭載していませんでした。 代わりに、アップグレードされた構造体のブール値フィールドは、同じラベルと1つのオプションだけを使用して、データエンジンの複数選択フィールドを使用するように移行されました。 例えば、テンプレートがブール値フィールドを持つ構造体上に構築されている場合など、このことからいくつかの問題が発生する可能性がある。 Liferay 7.4 アップデート/GA 23で、データエンジンにブール値項目タイプが追加されました。 Update 23 以降にアップグレードされた構造体は、ウェブコンテンツ構造体の 7.3 DDM 論理値フィールドを 7.4 DE 論理値フィールドに正常に変換しました。 この変更以前にインストールがアップグレードされた場合は、該当する構造を編集して、これらの単一オプションの複数選択フィールドをブール値フィールドに手動で変更する必要があります。

子ストラクチャーをストラクチャーフィールドセットに置き換える

DDMによってバックアップされた構造体には、親のフィールドと設定をすべて継承した子構造体を含めることができる。 Liferay 7.4ではフィールドセットを作成できるようになったので、この関係はなくなりました。 フィールドセットは、編集中に構造がどのようになっているかを見ることができるので、編集体験が向上する。

warning
  • フィールドセットは複数の構造体にわたって再利用可能である。 ひとつの構造体の中で編集すると、すべての構造体が一度に変更される。

  • フィールドセットや構造体がウェブコンテンツで使用されている場合、編集するとユーザーへの警告が表示されます:

    コンテンツ参照を持つ構造体やフィールドセットの編集には注意してください。

フィールドセットと連動するには、以下を行います。

  1. サイトメニュー( Site Menu ) にアクセスし、 コンテンツとデータウェブコンテンツ に移動する。

  2. ストラクチャー] タブを選択します。

  3. Add( Add Structure ) をクリックして、新しい構造を作成する。

  4. ウェブコンテンツ構造フォームビルダービュー(Form Builder Icon)で、 フィールドセット タブをクリックします。

  5. Create New Fieldset] をクリックします。 フィールドセットに名前を付けます。

  6. そのフィールドを追加し、設定します。 [Save] をクリックします。

構造体または構造体専用のフィールドセットを使用します。

新しい構造の作成を開始するとき、既存のフィールドセットまたは構造をフィールドセット・タブで選択することができる。 基本的なウェブコンテンツ構造は、すぐに使えるフィールドセットとして含まれています。

ストラクチャー定義ソースの変更

DEではストラクチャーがJSONで表されます(DDMではXMLでした)。 ウェブコンテンツ構造 UI でコードを編集するのではなく、構造定義をインポートおよびエクスポートして、構造のソース JSON をローカルで操作できるようになりました。

warning

JSON構造体のソースは、一見したところより複雑な場合があるので、慎重に扱うこと。 例えば、ストラクチャーにフィールドを追加する場合、 dataDefinitionFields配列とdefaultDataLayout要素の両方を更新しなければなりません。

構造体のJSONをエクスポートする

  1. サイトメニュー( Site Menu ) にアクセスし、 コンテンツとデータウェブコンテンツ に移動する。

  2. ストラクチャー] タブをクリックします。

  3. 既存の構造がない場合は、 を作成して保存する。

  4. メイン構造リストビューで、構造の アクション メニュー( Actions menu )を開き、 JSON としてエクスポート をクリックします。

構造のJSONをインポートして既存の構造を上書きする

既存の構造体のJSONを上書きする、

  1. サイトメニュー( Site Menu ) にアクセスし、 コンテンツとデータウェブコンテンツ に移動する。

  2. ストラクチャー] タブをクリックします。

  3. 既存の構造がない場合は、 を作成して保存する。

  4. メイン構造のリストビューで、構造の Actions メニュー(Actions menu)を開き、 Import and Override をクリックします。

  5. JSONファイルをアップロードします。

ウェブコンテンツ構造のJSONをエクスポートおよびインポートします。

構造のJSONをインポートして新しい構造を作成する

新しい構造をインポートするには

  1. サイトメニュー( Site Menu ) にアクセスし、 コンテンツとデータウェブコンテンツ に移動する。

  2. ストラクチャー] タブをクリックします。

  3. 画面右上にあるウェブコンテンツの オプション メニュー (Options Button) を開きます。

  4. Import Structure] をクリックします。

    JSON構造ファイルのインポート

フレキシブルなストラクチャーレイアウト

以前は、構造フィールドをフォーム上で並べたり、ネストさせたりして、フォームの階層ビューを作成することができました。 データエンジンの構造表現では、カラムを定義する機能が追加されている。

1行に2列の構造を作る。

ストラクチャービルダーで2つのフォーム項目を隣同士に追加し、フィールドの端をドラッグして列のサイズを変更します。

列だけでなく、フィールド・グループを使って、構造体のフィールドのサブセットをまとめてロックしておくと、管理が容易になる。 フィールドを他のフィールドの上にドロップしてフィールドグループを作成する。

Webコンテンツストラクチャーキーの設定

warning

構造体キーを手動で設定できるのは、新しい構造体を作成するとき(後述)か、 新しい構造体としてJSONをインポートする ときです。 既存の構造体をインポートして上書きする 場合でも、既存の構造体のキーを更新することはできません。

  1. Global Menu(Global Menu) を開き、 Control Panel タブを開きます。

  2. ConfigurationSystem SettingsWeb Content(under Content and Data)にアクセスしてください。

  3. 管理 をクリックします。 Autogenerate Structure Key のチェックを外し、 Update をクリックする。

  4. サイトメニュー( Site Menu ) にアクセスし、 コンテンツとデータウェブコンテンツ に移動する。 Structuresタブを開き、新しい構造を追加する。

  5. フィールドを追加し、構造体に名前を付ける。 構造キーを手動で設定するには、設定アイコン( Configuration )をクリックして、 プロパティサイドバー を開きます。

  6. ストラクチャーキー] フィールドを編集し、カスタム値を追加します(例: MY_STRUCTURE_KEY)。

  7. 構造を保存する。

新しいデータエンジンに基づくストラクチャーでは、エクスポート処理でJSONからストラクチャーキーが取り除かれます。 つまり、定義を(例えば新しいサイトに)インポートすると、新しいストラクチャーキーが生成されます。 エクスポートとインポートのプロセスでストラクチャーキーを保持したい場合、または新しいカスタムキーを提供したい場合は、エクスポートされたJSONを編集する必要があります。

エクスポートされたJSON にカスタムストラクチャーキーを追加するには、以下の手順に従います。

  1. エクスポートしたJSONファイル(例: Structure_my structure_42153_20220721144913685.json)を開きます。

  2. "dataDefinitionField"要素の前に"dataDefinitionKey"要素を追加します。

    {
       "availableLanguageIds":["en_US"],
       "contentType":"journal",
       "dataDefinitionKey":"MY_STRUCTURE_KEY",
       "dataDefinitionFields":[{"..."}]
    }
    
  3. ストラクチャー定義ファイルを インポート して、キーがインポートされたことを[Properties]タブで確認します。

    Propertiesタブには構造キーが表示され、それがカスタムキーであれ、Liferayによって自動生成されたキーであれ、表示されます。