アイテムとフィールドのエクステンション

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

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

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

アイテムのプロパティ

i_item.子供

項目の子をItemリストとして返します。

アイテムの子をリンクのリストとしてレンダリングします。

RequestResponse
{{ 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をリンクのテキストとして使用して、コンポーネントデータソースへのリンクをレンダリングします。

RequestResponse
<a href="{{ i_datasource.url }}">{{ i_datasource.display_name }}</a>

i_item.id

アイテムのIDを返します。

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

RequestResponse
{{ i_item.id }}

i_item.has_children(子供)

アイテムに子がある場合はtrueを返します。

現在のページに子がある場合は、これらの子へのリンクをレンダリングします。

RequestResponse
{{
    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を返します。

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

RequestResponse
{{
    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.言語

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

アイテムが英語でレンダリングされている場合は、次の事実を示すテキストを出力します。

RequestResponse
{{ if i_page.language == 'en' }}
This page is rendered in English<br/>
{{ end }}

i_item.media_url (英語)

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

Promoコンポーネントイメージへのダウンロードリンクをレンダリングします。

RequestResponse
<a download href="{{ i_datasource.PromoIcon.media_url }}">{{ i_datasource.PromoIcon.name }}</a>

i_item.名前

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

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

RequestResponse
<a href="{{ i_datasource.url }}">{{ i_datasource.name }}</a>

i_item.パス

アイテムのパスを返します。

アイテムへのリンクをレンダリングするのは、アイテムが /sitecore/contentの下にある場合のみです。

RequestResponse
{{ if string.starts_with i_item.path "/sitecore/content" }}
<a href="{{ i_item.url }}">{{ i_item.Title }}</a><br/>
{{ end }}

i_item.parent

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

データソースアイテムの親へのリンクをレンダリングします。

RequestResponse
<a href="{{ i_item.parent.url }}">{{ i_item.parent.Title }}</a><br/>
{{ end }}

i_item.template_id

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

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

RequestResponse
{{ i_item.template_id }}

i_item.template_name

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

アイテムテンプレート名を返します。

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

i_item.url(英語)

サイト のLinkProviderを使用してアイテムのURLを返します。

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

RequestResponse
<a href="{{ i_datasource.url }}">{{ i_datasource.display_name }}</a>

i_item.version

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

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

RequestResponse
{{ i_item.version }}

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

i_item。フィールド名

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

テンプレート内のフィールドをレンダリングするには、アイテムオブジェクトにFieldNameを追加します。

RequestResponse
  {{ i_item.Title }}
メモ

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

sc_responsive

メディアライブラリまたはコンテンツハブからメディアをプルし、選択した画面サイズに応じてサイズをスケーリングします。

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

RequestResponse
{{ 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をレンダリングする場合などです。

ボタンをテキストにレンダリングします。

RequestResponse
<button type="button" class="btn btn-primary">{{ i_item.ButtonText.raw }}</button>

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

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

手記

i_item.Field.targetでは、ピリオド (".")、カンマ (",")、空白などの特殊文字を含むフィールドへのリンクをたどることはできません。このような場合は、sc_follow関数を使用します。

プロモーションコンポーネントからリンクされた製品に関する詳細情報をレンダリングします。

RequestResponse
{{ i_linkedpage = i_item.PromoLink.target }}
<h2>{{ i_linkedpage.Title }}</h2>
<b>Content</b>:{{ i_linkedpage.Content }}

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

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

手記

i_page.Field.targetでは、ピリオド (".")、カンマ (",")、空白などの特殊文字を含むフィールドへのリンクをたどることはできません。このような場合は、sc_followmany関数を使用します。

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

RequestResponse
{{ for i_product in i_page.RelatedProducts.targets }}
  <h2>{{ i_product.Title }}</h2>
  <b>Content</b>:{{ i_product.Content }}
{{ end }}

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

フィールドをFluent表記で使用すると、フィールドのカスケードとフォールバックを使用して、より複雑なシナリオを簡略化できます。リンクフィールドを流暢な表記でカスケードして、.targetヘルパーを呼び出さずにアイテムに連絡できます。たとえば、i_item.FieldLinkingToItem.HelperOrFieldToRenderのようになります。

たとえば、FirstNameという名前のフィールドの一部であるAuthor Infoという名前のフィールドの一部であるarticle pageのフィールドをレンダリングするには、次のようにしますAuthor

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

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

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

Scribanテンプレートでのフィールドメタデータの使用

既存の画像やリンクのフィールドメタデータの値に、Scribanテンプレートから直接アクセスして再利用できます。これを使用して、事前定義されたレンダリングバリアントを持たず、または使用せずに、既存のコンテンツでテンプレートを構築します。これは、メディアライブラリと コンテンツハブでホストされているファイルの両方で機能します。フィールド メタデータにアクセスして使用するには、コンテンツ エディターのScribanテンプレートに、コンテキスト アイテムの次のメタデータ プロパティ ( i_itemなど) のいずれかを入力します。

リンクのメタデータ:

  • _alt

  • _anchor

  • _description

  • _query

  • _class

  • _target

  • _isinternal

  • _ismedialink

  • _targetid

  • _text

  • _title

  • _linktype

  • _url

画像のメタデータ:

  • _alt

  • _class

  • _height

  • _hspace

  • _vspace

  • _width

手記

レンダリング変数が空の文字列を返す場合は、正しくないフィールド タイプまたは存在しないプロパティを使用した可能性があります。

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、