Scriban コンテキストに埋め込まれたアイテムとオブジェクト

SXA は、いくつかのオブジェクトを Scriban レンダリング コンテキストに埋め込みます。これらのオブジェクトは、通常の Scriban 変数と同様に使用できます。このトピックでは、デフォルトの埋め込みアイテムとオブジェクトについて説明します。

注記

使用可能な埋め込みオブジェクトは、コンポーネントの HTML とコンテンツをレンダリングするためのほとんどの機能をカバーしています。より多くの機能が必要な場合、SXA には、追加のオブジェクトを Scriban コンテキストに挿入し、アイテム プロパティ リストを拡張できる 2 つのパイプラインが付属しています。

Sitecore はコンテンツをアイテム内に保存するため、SXA は Scriban ランタイム内にいくつかのコンテンツ アイテムを埋め込みます。これらのアイテムを使用して、フィールドのコンテンツにアクセスしたり、子または親を取得してアイテム構造をトラバースしたりできます。

埋め込みアイテム

タイプ

バリュー

i_home

Sitecore.Data.Items.Item

レンダリング プロセスが実行されるサイトのホーム ページ アイテム。

i_datasource

Sitecore.Data.Items.Item

コンポーネントのデータ ソースとして指定されたアイテム。

i_item

Sitecore.Data.Items.Item

レンダリング バリアント コンテキスト内の現在のアイテム。多くの場合、これは i_datasource と同じです。

Scriban テンプレートがクエリーリファレンスのレンダリング バリアント フィールド内に埋め込まれていた場合、i_item は、他のレンダリング バリアント フィールドがレンダリング処理に使用する当該のアイテムとなります。

i_site

Sitecore.Data.Items.Item

サイトのルート アイテム。ほとんどの場合、このアイテムはホームページの親です。

i_page

Sitecore.Data.Items.Item

現在レンダリングされているページを表すアイテム。

コンテキスト オブジェクトを使用すると、より複雑なロジックを実行できます。たとえば、ページが表示される状況に応じて異なるコンテンツをレンダリングしたり、追加のデータをエディターにはレンダリングして訪問者には非表示にしたり、ページの言語に応じて異なるテキストをレンダリングしたりします。

コンテキスト オブジェクトは次の表にリストされており、表の後に詳しく説明されています。

コンテキスト オブジェクト

タイプ

バリュー

o_language

言語

現在のページの言語。

o_model

オブジェクト

MVC コントローラーのレンダリングに渡されるモデル

o_geospatial

Sitecore.XA.Foundation.Search.Models.Geospatial

地理空間プロパティを持つ現在レンダリングされているアイテムの位置情報。

o_context

Sitecore.XA.Foundation.Abstractions.IContext

現在レンダリングされているページのコンテキスト情報。

o_pagemode

Sitecore.XA.Foundation.Abstractions.IPageMode

現在レンダリングされているページのコンテキスト情報。

o_language

現在のページの言語。

o_model

MVC モデル オブジェクト。このオブジェクトは、使用されるコンポーネントによって異なります。レンダリングが必要なビジネス ロジックに基づいて、事前計算された値を提供するようにバックエンド開発者と調整する必要があります。

o_geospatial

地理空間プロパティを持つ現在レンダリングされているアイテムの位置情報。

注記

このオブジェクトは、検索結果のレンダリング内で地理空間検索を実行する場合にのみアクセスできます。

次の表は、o_geospatial コンテキスト オブジェクトの注目すべきプロパティを示しています。

プロパティ名

タイプ

使用方法

poi_type_id

Sitecore.Data.ID

POI タイプのGuid。

poi_icon

文字列

POI アイコンの URL。

緯度

Double

レンダリングされる POI の緯度。

経度

Double

レンダリングされる POI の経度。

距離

Double – nullable

POI と、検索サービスに提供されたクライアントの場所との距離を返します。

単位

Double – nullable

キロメートル、マイル。

o_context

コンテキスト オブジェクトには、コンポーネントをレンダリングする対象のリクエストに関する情報が含まれています。テンプレートの一部を条件付きでレンダリングするために必要なページ モード、言語、その他の役立つ情報を含めることができます。

次の表は、o_context コンテキスト オブジェクトの主なプロパティを示しています。

プロパティ名

タイプ

使用方法

is_administrator

ブール値

現在のユーザーが管理者かどうかを示します。

ユーザー

ユーザー

リクエストが実行されるコンテキストのユーザー。

ドメイン

Sitecore.Security.Domains.Domain

リクエストが実行されるコンテキストのユーザーのドメイン。

データベース

Sitecore.Data.Database

リクエストがデータを取得する元のデータベース。

o_pagemode

pagemode オブジェクトは、ページがレンダリングされているモードに応じて、条件付きでレンダリングするコードの表記を短縮するために、抽出された o_context オブジェクトの一部です。

次の表は、o_pagemode コンテキスト オブジェクトの主なプロパティを示しています。

プロパティ名

タイプ

使用方法

is_debugging

ブール値

ページがデバッグ モードで表示されることを示します。

is_experience_editor

ブール値

ページがエクスペリエンス エディター内でレンダリングされることを示します。

is_experience_editor_editing

ブール値

ページがエクスペリエンス エディターの編集モードでレンダリングされることを示します。

is_normal

ブール値

ページが訪問者に表示されることを示します。

is_preview

ページがエクスペリエンス エディターのプレビュー モードでレンダリングされることを示します。

is_simulated_device_previewing

ページがエクスペリエンス エディターのシミュレーター プレビュー モードでレンダリングされることを示します。

is_profiling

ページがプロファイリング情報を使用してレンダリングされることを示します。

例:

{{ if (o_pagemode.is_experience_editor_editing) }}
  <span>[Click here to edit the component]</span>
{{ else }}
  ... render the component here
{{ end }}