---
title: "バージョン管理されたレイアウトAPIの変更"
slug: "the-versioned-layout-api-changes"
abstract: "このトピックでは、バージョン管理されたレイアウトによって導入されたコンテンツAPIの変更について説明します。"
---
# バージョン管理されたレイアウトAPIの変更

このトピックでは、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