バージョン管理されたレイアウトAPIの変更
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、Sitecore 8で導入されたバージョン付きレイアウトの実装による変更点Sitecore APIについて説明します。
Sitecore。FieldIDsクラス
public static readonly ID FinalLayoutFieldフィールドがクラスに追加されました。このフィールドは__Final Renderingsフィールドの識別子を格納します。
Sitecore。Data.Fields.LayoutFieldクラス
このセクションでは、LayoutFieldクラスのいくつかの変更点について説明します。
公開の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;
公開の静的文字列GetFieldValue(NotNull Field field)メソッド
Sitecore 8以前は、公開の静的文字列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);
公開の静的空虚SetFieldValue(NotNull Field field, NotNull 文字列値)メソッド
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。レイアウト。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