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

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

注釈

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

埋め込みアイテム

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

埋め込みアイテム

タイプ

i_home

Sitecore.Data.Items.Item

レンダリング処理を行うサイトのホームページアイテム。

i_datasource

Sitecore.Data.Items.Item

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

i_item

Sitecore.Data.Items.Item

レンダリングバリアントコンテキスト内の現在のアイテム。多くの場合、これは i_datasource と同等です。
Scriban テンプレートが Query または Reference レンダリングバリアントフィールド内に埋め込まれている場合、i_item は他のレンダリングバリアントフィールドがレンダリング処理に使用するアイテムになります。

i_site

Sitecore.Data.Items.Item

あなたのサイトのルートアイテム。ほとんどの場合、このアイテムはホームページの親になります。

i_page

Sitecore.Data.Items.Item

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

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

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

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

Context object

タイプ

o_language

language

現在のページの言語。

o_model

Object

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

o_geospatial

Sitecore.XA.Foundation.Search.Models.Geospatial

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

o_context

Sitecore.XA.Foundation.Abstractions.IContext

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

o_pagemode

Sitecore.XA.Foundation.Abstractions.IContext

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

o_language

現在のページの言語。

o_model

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

o_geospatial

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

注釈

このオブジェクトにアクセスできるのは、検索結果レンダリング内で地理空間検索を実行しているときだけです。

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

プロパティ名

タイプ

用途

poi_type_id

Sitecore.Data.ID

Guid of the POI type.

poi_icon

String

POI アイコン URL.

latitude

Double

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

longitude

Double

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

unit

Double - nullable

キロメートル、マイル

o_context

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

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

プロパティ名

タイプ

用途

is_administrator

Bool

現在のユーザーが管理者であるかどうかを示す。

user

User

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

domain

Sitecore.Security.Domains.Domain

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

database

Sitecore.Data.Database

リクエストがデータのソースとなっているデータベース。

o_pagemode

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

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

プロパティ名

タイプ

用途

is_debugging

bool

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

is_experience_editor

bool

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

is_experience_editor_editing

bool

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

is_normal

bool

ページが訪問者用にレンダリングされていることを示す。

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 }}