1. レンダリングバリアント

レンダリングバリアントのカスタムトークンを作成する

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

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

SXAでは、レンダリング バリアントを使用してコンポーネントのレンダリング方法を変更できます。レンダリング バリアントをすばやく拡張する場合は、カスタムresolveVariantTokensパイプラインを使用してバリアント トークンのセットを拡張できます。

カスタム トークンは、特定のフィールド値を書式設定し、Sitecoreアイテムの値に対して変換を行う場合など、通常のレンダリング バリアント アイテムでは利用できないより複雑なデータを公開するのに役立ちます。これは、たとえば、PageListコンポーネントのレンダリングバリアントに親アイテムフィールドを表示する場合に便利です。

レンダリングバリアントのカスタムトークンを作成するには:

  1. resolveVariantTokensパイプラインに追加のプロセッサを追加して、独自のトークンを定義します。まず、トークンプロセッサを作成します。たとえば、次のように$parentNameします。

    public class ResolveParentName : ResolveVariantTokensProcessor
    {
        public override string Token => "$parentname";
    
        public override void ResolveToken(ResolveVariantTokensArgs args)
        {
            // this if statement is quite important in order to support this token in JSON Variants
            if (args.ResultControl != null)
            {
                args.ResultControl.Controls.Add(new LiteralControl
                {
                    Text = args.ContextItem.Parent.Name
                });
            }
            else
            {
                args.Result = args.ContextItem.Parent.Name;
            }
        }
    }
  2. プロセッサをresolveVariantTokensパイプラインに登録します。

    pipelines
        <resolveVariantTokens>
            <processor type="YOUR_NAMESPACE.ResolveParentName, YOUR_ASSEMBLY" resolve="true" />        
        </resolveVariantTokens>
    </pipelines>
  3. トークンを適用するには、コンテンツ エディタで、トークンを追加するレンダリング バリアントに移動し、Tokenフィールドに $ キーを使用してカスタム トークンを入力します。

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