アイテムおよびフィールド拡張

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このトピックでは、フィールド、アイテムプロパティ、フィールドプロパティへのアクセスを容易にするSXAのアイテム拡張について説明します。

アイテムプロパティ

i_item。子供たち

アイテムの子リストをItemリストとして返します。

例

項目の子をリンクのリストとしてレンダリングします:

{{ for i_child in i_datasource.children }} {{ i_child.Title }}
{{ end }}

i_item.display_name

アイテムのDisplay Nameを返品します。

例

リンクのテキストとしてデータソース項目のDisplay nameを用いて、コンポーネントデータソースへのリンクをレンダリングします:

{{ i_datasource.display_name }}

i_item.id

商品のIDを返却します。

例

アイテムのIDを出力します:

{{ i_item.id }}

i_item.has_children(子どもたち)を

アイテムに子があるtrue返品します。

例

現在のページに子ページがある場合は、以下の子へのリンクを表示してください:

{{ if i_page.has_children for i_child in i_page.children }}{{ i_child.display_name }}
{{ end end }}

i_item.has_layout

商品にレイアウト情報があれば返品true 。

例

子を持つページの子をレンダリングします:

{{ for i_child in i_page.children if i_child.has_layout }}{{ i_child.display_name }}
{{ end end }}

i_item.言語

アイテムの言語コードを返します。

例

もしそのアイテムが英語でレンダリングされている場合、以下のような事実を記載したテキストを出力します。

{{ if i_page.language == 'en' }} This page is rendered in English
{{ end }}

i_item.media_url

アイテムのメディアURLを返します。

例

Promoコンポーネント画像へのダウンロードリンクをレンダリングします:

{{ i_datasource.PromoIcon.name }}

i_item.名前

アイテムのNameを返品します。

例

データソース項目のNameをリンクのテキストとして使用して、コンポーネントデータソースへのリンクをレンダリングします:

{{ i_datasource.name }}

i_item.パス

アイテムの経路を戻します。

例

/sitecore/content下にある場合のみリンクを表示してください:

{{ if string.starts_with i_item.path "/sitecore/content" }} {{ i_item.Title }}
{{ end }}

i_item。親

アイテムの親を返却します。

例

データソース項目の親へのリンクをレンダリングします:

{{ i_item.parent.Title }}
{{ end }}

i_item.template_id

アイテムテンプレートのIDをstringとして返します。

例

アイテムのIDを出力します:

{{ i_item.template_id }}

i_item.template_name

アイテムテンプレートの名前をstringとして返します。

例

アイテムテンプレート名を返す:

{{ if i_item.template_name == "Gallery Image" }} ... render HTML for Gallery image {{end}}

i_item.url

サイトLinkProviderを使って商品のURLを返します。

例

データソース項目のDisplay nameをリンクのテキストとして使用して、コンポーネントデータソースへのリンクをレンダリングします:

{{ i_datasource.display_name }}

i_item.version

アイテムのバージョン番号を返します。

例

アイテムのバージョン番号を出力してください:

{{ i_item.version }}

アイテムフィールドの取得とレンダリング

i_item。フィールドネーム

テンプレート内のフィールドをレンダリングします。

例

テンプレート内のフィールドを、アイテムオブジェクトにFieldNameを付け加えてレンダリングします:

{{ i_item.Title }}

!注i_item.FieldNameピリオド(".")、カンマ(",")、空白欄などの特殊文字を含むフィールドのリンクをフォローすることはできません。データ属性やフィールドのフォールバックもサポートしていません。このような場合はsc_field関数を使用します。

sc_responsive

メディアライブラリやContent Hubからメディアを取得し、選択した画面サイズに応じてサイズを拡大します。

例

Content Hubからメディアを取得し、提供された値に応じて画面サイズに応じてレンダリングします。

{{ sc_responsive i_item"image" "(min-width: 40em) 80vw, 100vw" "800, 1000, 1500" "1000" }}{{ sc_responsive i_item"image""(min-width: 40em) 80vw, 100vw" "800, 1000, 1500" "1000"}}

場の拡張特性

i_item。Field.raw

フィールドの生の値を返します。例えば、JavaScriptで使うアイテムや編集できないボタンのIDをレンダリングする場合などです。

例

ボタンでテキストをレンダリングする:

i_item。フィールド。ターゲット

項目へのリンクを格納できるフィールドで選択されたアイテムを返します。フィールドに複数のアイテムへのリンクを含めれば、リストの最初のアイテムが返されます。フィールドが空の場合は、関数はnull値を返します。

!注i_item.Field.targetピリオド(".")、カンマ(",")、空白欄などの特殊文字を含むフィールドのリンクを追うことは許可されません。このような場合はsc_follow関数を使用してください。

例

プロモーションコンポーネントからリンクされた製品についてさらに詳しく表示してください:

{{ i_linkedpage = i_item.PromoLink.target }}

{{ i\_linkedpage.Title }}

Content:{{ i\_linkedpage.Content }}

i_page。フィールド。ターゲット

項目へのリンクを格納できるフィールドで選択されたアイテムの配列を返します。フィールドが空の場合、関数は空のリストを返します。

!注i_page.Field.targetピリオド(".")、カンマ(",")、空白欄などの特殊文字を含むフィールドのリンクを追うことは許可されません。このような場合はsc_followmany関数を使用してください。

例

現在の製品に関連する商品をレンダリングします:

{{ for i_product in i_page.RelatedProducts.targets }}

{{ i\_product.Title }}

Content:{{ i\_product.Content }} {{ end }}

フィールドカスケードとフォールバックの作業

フルエント表記法でフィールドを使う場合、フィールドカスケードやフォールバックを使って複雑なシナリオを簡素化できます。フルエント表記法でフィールドをカスケードリンクして、.targetヘルパーを呼ばずにアイテムに連絡を取ることができます。例えば: i_item.FieldLinkingToItem.HelperOrFieldToRender。

例えば、記事ページ上のFirstNameというフィールドをレンダリングする場合、それはAuthor Infoというフィールドの一部であり、Authorというフィールドの一部である:

Article by: {{ i_page.Author.FirstName }}

複数のデータテンプレートをサポートするテンプレートは、フィールド名を流暢な表記法でカスケードすることで作成できます。テンプレートエンジンはフィールドを左から右に解析・レンダリングしようとし、アイテム上で最初に見つけたフィールドをレンダリングします。

例えば、ページにAuthorフィールドがない場合、テンプレートエンジンはi_pageから直接FirstNameフィールドをレンダリングしようとします。

Scribanテンプレートにおけるフィールドメタデータの利用

既存の画像やリンクのフィールドメタデータの値に、Scribanテンプレートから直接アクセス・再利用できます。これを使って、既存のコンテンツでテンプレートを作成し、あらかじめ定義されたレンダリングバリエントを使わずに作成できます。これはMedia LibraryにホストされているファイルとContent Hubの両方で機能します。フィールドメタデータにアクセスし利用するには、コンテキストアイテムのメタデータプロパティ(例えばi_item)のいずれかをContent EditorのScribanテンプレートに入力してください。

リンクのメタデータ:

  • _alt
  • _anchor
  • _description
  • _query
  • _class
  • _target

画像のメタデータ:

  • _alt
  • _class
  • _height
  • _hspace
  • _vspace
  • _width

!注レンダリングバリアットが空文字列を返す場合、誤ったフィールド型や存在しないプロパティを使っている可能性があります。

この記事を改善するための提案がある場合は、 お知らせください!