アイテムとフィールドの拡張
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、フィールド、アイテム プロパティ、およびフィールド プロパティへのアクセスを容易にする SXA アイテム拡張について説明します。
アイテム プロパティ
i_item.children
アイテムの子を Item
リストとして返します。
例
アイテムの子をリンクのリストとしてレンダリングします。
{{ for i_child in i_datasource.children }}
<a href="{{ i_child.url }}">{{ i_child.Title }}</a><br/>
{{ end }}
i_item.display_name
アイテムの Display Name
を返します。
例
データ ソース アイテムの Display name
をリンクのテキストとして使用し、Data Source コンポーネントへのリンクをレンダリングします。
<a href="{{ i_datasource.url }}">{{ i_datasource.display_name }}</a>
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
}}<a href="{{ i_child.url }}">{{ i_child.display_name }}</a><br/>{{
end
end }}
i_item.has_layout
アイテムにレイアウト情報がある場合、true
を返します。
例
子を持つページの子をレンダリングします。
{{
for i_child in i_page.children
if i_child.has_layout
}}<a href="{{ i_child.url }}">{{ i_child.display_name }}</a><br/>{{
end
end }}
i_item.language
アイテムの言語コードを返します。
例
アイテムが英語でレンダリングされる場合、そのことを示すテキストを出力します。
{{ if i_page.language == 'en' }}
This page is rendered in English<br/>
{{ end }}
i_item.media_url
アイテムのメディア URL を返します。
例
Promo
コンポーネント画像のダウンロード リンクをレンダリングします。
<a download href="{{ i_datasource.PromoIcon.media_url }}">{{ i_datasource.PromoIcon.name }}</a>
i_item.name
アイテムの Name
を返します。
例
データ ソース アイテムの Name
をリンクのテキストとして使用し、Data Source コンポーネントへのリンクをレンダリングします。
<a href="{{ i_datasource.url }}">{{ i_datasource.name }}</a>
i_item.path
アイテムのパスを返します。
例
アイテムが /sitecore/コンテンツの下にある場合にのみ、アイテムへのリンクをレンダリングします。
{{ if string.starts_with i_item.path "/sitecore/content" }}
<a href="{{ i_item.url }}">{{ i_item.Title }}</a><br/>
{{ end }}
i_item.parent
アイテムの親を返します。
例
データ ソース アイテムの親へのリンクをレンダリングします。
<a href="{{ i_item.parent.url }}">{{ i_item.parent.Title }}</a><br/>
{{ 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
をリンクのテキストとして使用し、Data Source コンポーネントへのリンクをレンダリングします。
<a href="{{ i_datasource.url }}">{{ i_datasource.display_name }}</a>
i_item.version
アイテムのバージョン番号を返します。
例
アイテムのバージョン番号を出力します。
{{ i_item.version }}
アイテム フィールドの取得とレンダリング
i_item.FieldName
テンプレート内のフィールドをレンダリングします。
例
FieldName
をアイテム オブジェクトに付加することで、テンプレート内でフィールドをレンダリングします。
{{ i_item.Title }}
i_item.FieldName
では、「.」や「,」、空白などの特殊文字を含むフィールドへのリンクをたどることはできません。データ属性やフィールドのフォールバックもサポートしていません。このような場合は、sc_field
の機能を使用してください。
フィールド拡張のプロパティ
i_item.Field.raw
フィールドの Raw の値を返します。たとえば、JavaScript で使用するアイテムや編集できないボタンに ID をレンダリングする場合などです。
例
ボタンにテキストをレンダリングします。
<button type="button" class="btn btn-primary">{{ i_item.ButtonText.raw }}</button>
i_item.Field.target
アイテムへのリンクを格納できるフィールドで選択されたアイテムを返します。フィールドに複数のアイテムへのリンクを含めることができる場合、リストの最初のアイテムが返されます。フィールドが空の場合、関数は null 値を返します。
i_item.Field.target
では、「.」や「,」、空白などの特殊文字を含むフィールドへのリンクをたどることはできません。このような場合は、sc_follow
の機能を使用してください。
例
プロモ コンポーネントからリンクされた商品に関する詳細情報をレンダリングするには:
{{ i_linkedpage = i_item.PromoLink.target }}
<h2>{{ i_linkedpage.Title }}</h2>
<b>Content</b>:{{ i_linkedpage.Content }}
i_page.Field.targets
アイテムへのリンクを格納できるフィールドで選択されたアイテムの配列を返します。フィールドが空の場合、関数は空のリストを返します。
i_page.Field.target
では、「.」や「,」、空白などの特殊文字を含むフィールドへのリンクをたどることはできません。このような場合は、sc_followmany
の機能を使用してください。
例
現在の商品に関連する商品をレンダリングするには:
{{ for i_product in i_page.RelatedProducts.targets }}
<h2>{{ i_product.Title }}</h2>
<b>Content</b>:{{ i_product.Content }}
{{ end }}
フィールドのカスケードとフォールバックの操作
Fluent 表記でフィールドを使用する場合、フィールドのカスケードとフォールバックを使用して、より複雑なシナリオを簡素化できます。たとえば、i_item.FieldLinkingToItem.HelperOrFieldToRender
のように Fluent 表記でリンク フィールドをカスケードすれば、.target
ヘルパーを呼び出さなくてもアイテムにアクセスすることができます。
たとえば、記事ページの FirstName
というフィールドが、Author
というフィールドの一部である Author Info
というフィールドの一部である場合に、このフィールドをレンダリングする場合です。
Article by: {{ i_page.Author.FirstName }}
Fluent 表記でフィールド名をカスケードすることにより、複数のデータ テンプレートをサポートするテンプレートを作成できます。テンプレート エンジンは、フィールドを左から右に解決してレンダリングしようとし、アイテムで見つかった最初のフィールドをレンダリングします。
たとえば、ページに Author
フィールドがない場合、テンプレート エンジンは FirstName
フィールドを i_page
から直接レンダリングしようとします。