############################################################ Scribanのコンテキストに埋め込まれたアイテムとオブジェクト ############################################################ SXA は、いくつかのオブジェクトを Scriban レンダリングコンテキストに埋め込みます。これらのオブジェクトは、通常の Scriban 変数と同様に使用できます。このトピックでは、デフォルトの埋め込み項目とオブジェクトについて説明します。 .. note:: 利用可能な埋め込みオブジェクトは、コンポーネントの 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 ============= 地理空間プロパティを持つ現在レンダリングされているアイテムの位置情報。 .. note:: このオブジェクトにアクセスできるのは、検索結果レンダリング内で地理空間検索を実行しているときだけです。 次の表に、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 | | ページがプロファイリング情報でレンダリングされていることを示します。 | +------------------------------+--------+--------------------------------------------------------------------------------------------------------+ サンプル ---------- .. code-block:: {{ if (o_pagemode.is_experience_editor_editing) }} [Click here to edit the component] {{ else }} ... render the component here {{ end }} .. tip:: 英語版 https://doc.sitecore.com/developers/sxa/93/sitecore-experience-accelerator/en/the-embedded-functions-for-the-scriban-template.html