1. バージョン管理されたレイアウト

バージョン管理されたレイアウトAPIの変更

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このトピックでは、Sitecore 8でバージョン管理されたレイアウトの実装によって導入されたSitecore APIの変更について説明します。

Sitecore.FieldIDsクラス

public static readonly ID FinalLayoutFieldフィールドがクラスに追加されました。このフィールドには、__Final Renderingsフィールドの識別子が格納されます。

Sitecore.Data.Fields.LayoutFieldクラス

このセクションでは、LayoutFieldクラスに対するいくつかの変更について説明します。

public LayoutField(NotNull Item item) コンストラクタ

Sitecore 8より前のバージョンでは、コンストラクターは常に共有 __Renderingsフィールドからレイアウト データをロードしていました。

Sitecore 8以降では、コンストラクターは、アイテムがバージョン管理された __Final Renderingsフィールドに値を持っているかどうかを確認します。その場合、レイアウト データはこのフィールドから読み込まれます。そうでない場合は、レイアウト データは共有 __Renderingsフィールドから読み込まれます。

Sitecore 8以降では、コンストラクターを使用してアイテムのレイアウトを取得または設定する必要があります。

var layout = new LayoutField(contextItem).Value;

new LayoutField(contextItem).Value = layoutXmlValue;

public static string GetFieldValue(NotNull Field field) メソッド

Sitecore 8より前のバージョンでは、public static string GetFieldValue(NotNull Field field) メソッドは、共有 __Renderingsフィールドからのみレイアウト データを返していました。Sitecore 8以降では、このメソッドは共有 __Renderingsフィールドまたはバージョン管理された __Final Renderingsフィールドからレイアウト データを返すことができます。

このメソッドは、フィールドの未処理の値を返しません。レイアウトパッチ適用ワークフローを使用して結果のレイアウトを計算し、このレイアウトを返します。

バージョン対応登録された __Final Renderingsフィールドを引数として渡すと、このフィールドのXMLパッチが結果のレイアウトに適用されます。

共有 __Renderingsフィールドを引数として渡すと、__Final Renderingsフィールドの値は無視されます。

Sitecore 8以降では、バージョン管理された __Final Renderingsフィールドの値を無視する場合は、次の方法を使用してレイアウト データを取得する必要があります。

var sharedLayout = LayoutField.GetFieldValue(item.FieldsFieldIDs.LayoutField);

public static void SetFieldValue(NotNull Field field, NotNull string value) メソッド

Sitecore 8より前は、この方法を使用してレイアウト データを共有 __Renderingsフィールドに保存することしかできませんでした。

Sitecore 8以降では、この方法を使用して、レイアウト データを共有 __Renderingsフィールドまたはバージョン管理された __Final Renderingsフィールドに保存できます。

この方法では、常に完全なレイアウト値がフィールドに保存されるわけではありません。可能な場合は、選択したフィールドにXMLパッチのみを保存します。

Sitecore 8以降では、次の方法を使用してレイアウト データを共有 __Renderingsフィールドに保存する必要があります。

LayoutField.SetFieldValue(item.FieldsFieldIDs.LayoutField, sharedLayout);

Sitecore.Data.Items.ItemUtilクラス

  • public static void SetLayoutDetails(NotNull Item item, NotNull string sharedLayout, NotNull string finalLayout)メソッドが追加されました。

    Sitecore 8以降では、次の方法を使用して、アイテムの共有レイアウトと最終レイアウトを保存する必要があります。

    ItemUtil.SetLayoutDetails(item, sharedLayout, finalLayout);

  • public static void ResetLayoutDetails(NotNull Item item, bool resetShared, ResetFinalLayoutOptions resetFinal)メソッドが追加されました。

    Sitecore 8以降では、次の方法を使用して、アイテムの共有レイアウトと最終レイアウトをリセットする必要があります。

    ItemUtil.ResetLayoutDetails(item, resetSharedLayout, resetFinalLayout);

Sitecore.Data.Items.RenderingItemクラス

public string GetMultiVariateTestForLanguage(NotNull Language language) メソッドが削除されました。

Sitecore.Layouts.MultiVariateTestingExtensionsクラス

共有__Renderingsフィールドがすべての言語の多変量テストデータの格納に使用されなくなったため、Sitecore.Layouts.MultiVariateTestingExtensionsクラスは削除されました。アイテムの各バージョンは、バージョン対応の __Final Renderingsフィールドに異なる多変量テスト データを持つことができます。

共有__Renderingsフィールド

すべての言語の多変量テストデータは、共有 __Renderingsフィールドに保存されなくなりました。アイテムの各バージョンは、バージョン対応の __Final Renderingsフィールドに異なる多変量テスト データを持つことができます。

Sitecore.Shell.Applications.ContentEditor.LayoutFieldクラス

次のプロパティがクラスに追加されました。

  • public string FieldID

  • public string ItemLanguage

  • public string ItemVersion

この記事を改善するための提案がある場合は、 お知らせください!