1. SXAの拡張

コンテンツトークン

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

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

コンテンツトークンを使用すると、テキストや数字の行を再利用できます。これは、価格、著作権表示、バージョン番号、場所を再利用する場合に便利です。コンテンツトークンは、キーと値を持ち、他のアイテムのフィールドで参照できるコンテンツアイテムです。これらはSXAサイトのDataフォルダー ( sitecore/Content/<tenant>/<site>/Data) に保存されます。

コンテンツ トークンの置換のロジックは、renderFieldパイプラインのRenderContentTokenプロセッサに実装されます。リッチテキスト、1行テキスト、および複数行テキストフィールドのコンテンツトークンを参照するには、$ キーと括弧内のコンテンツトークンの名前を使用します。

コンテンツトークンを挿入すると、キー値と灰色の背景で認識できます。

Content token in gray.

HTMLでは、いくつかの追加属性を持つスパンにラップされます。リッチテキストエディタのHTMLでは、次のようにコンテンツトークンを挿入できます。

<span class="xa-variable" contenteditable="false" data-variableid="{7B10FC53-C296-41B9-8D09-AE5916154438}">Parking</span>

この場合、RenderContentTokenプロセッサは、span要素全体を、そのIDに一致するコンテンツ トークンの関連値に置き換えます。さらに、コンテンツ トークンをリッチ テキスト、1行テキスト、および複数行テキスト フィールドの $(キー) として使用できます。このアイテムは、次の検索クエリの結果として取得されます。

ID itemId = Context.Database.DataManager.DataSource.SelectIDs(Templates.ContentToken.Fields.Key, variableKey).FirstOrDefault();
Item item = Context.Database.GetItem(itemId);

このクエリに複数の結果がある場合は、それらのいずれかが返され、その値がテキストに配置されます。

ロジックを変更するには、次のことを行う必要があります。

  1. renderFieldパイプラインのRenderContentTokenプロセッサを実装したカスタム プロジェクトを作成します。

  2. GetTextVariableValue関数を書き換え、コンテンツ トークン項目のマッピングのカスタム ロジックを追加します。

  3. dllをWebサイトのbinフォルダにビルドします。

  4. 設定ファイルにパッチを適用し、次のプロセッサをカスタムプロセッサで書き換えます。

    <processor type="Sitecore.XA.Feature.ContentTokens.Pipelines.RenderField.RenderContentToken, Sitecore.XA.Feature.ContentTokens" resolve="true" />

    設定ファイルがshowconfig.aspxページを正しく使用していることを確認する必要があります。

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