推奨事項: SXA の拡張
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
たとえば、SXA を拡張して、独自のカスタム レンダリングの SXA ツールボックスへの追加、テーマやテンプレートの追加ができます。このトピックでは、SXA を拡張するためのいくつかの要件と推奨事項について説明します。
SXA が制御するツリーのブランチにカスタム アイテムを配置しない
SXA を拡張するときは、カスタム アイテムをどこに保存するかを考える必要があります。SXA は、SXA の更新中に標準の SXA セクションを上書きします。したがって、SXA によって制御されるツリー ブランチにカスタム アイテムを配置すると、アップグレード後にインスタンスが破損する可能性があります。そこで、次のことをお勧めします。
-
Experience Accelerator のモジュール ルートと同階層のブランチにカスタム モジュールを配置する。
-
テンプレートは、Experience Accelerator フォルダーと同階層のフォルダーに配置する。Experience Accelerator フォルダー内には配置しない。
-
同様に、Renderings、Branches、Media など、他のすべての領域に対してモジュール固有のルート アイテムを作成する。
関連トピック:
OOTB SXA アイテム を変更しない
SXA を拡張するときは、カスタム機能には常に SXA 拡張ポイントを使います。たとえば、カスタム データ テンプレートを作成します。これが不可能で、拡張に正当な理由がある場合は、SXA チームに連絡して拡張ポイントを作成してもらいます。
関連トピック:
SXA MVC レイアウトを置き換えない
SXA MVC レイアウトは、グリッド、テーマ、およびメタ コンポーネントの基礎であり、SXA は、他の一般的な動作についてその存在に依存する可能性があります。レイアウトをカスタム実装に置き換えると、将来のバージョンの SXA との互換性が失われるおそれがあります。
レイアウトにカスタムの非視覚的要素を追加する必要がある場合は、メタ レンダリングを作成し、メタ パーシャル デザインに追加することを検討してください。視覚的な要素がある場合は、標準の SXA レンダリングの利用を検討します。
SXA は、レイアウトの拡張について、複数の可能性を提供します。たとえば、次のことができます。
カスタム レンダリング用の SXA モジュールを作成する
SXA モジュールにカスタム レンダリングを配置して、既存サイトへの追加や新規作成サイトでの即時利用ができます。
次のことを行う必要があります。
-
モジュールへのサイト/テナントのスキャフォールディング統合を提供する。
-
コンポーネントのデータ ソース定義を含める (または、OOTB SXA データ ソースを再利用する)。
-
データ ソースのサイト相対クエリを定義する。
関連トピック:
ソリューションに機能を追加するときは Helix の原則に従う
Helix は、Sitecore 開発向けの公式ガイドラインと推奨プラクティスを提供するもので、SXA は Sitecore Helix の原則に従います。Sitecore Helix の原則には、Sitecore 実装を構築、テスト、拡張、維持するための開発プロセスについての推奨事項が含まれています。
次のことをお勧めします。
-
SXA 機能モジュールに依存関係を追加せずに、基盤モジュールにのみ依存関係を追加する。レンダリングのクロ―ニング中はルール違反が許されます。これは、プラットフォーム コードを使って新しい機能を提供するためです。この推奨事項は、OOTB SXA レンダリングに適用されますが、必ずしも SXA Storefront レンダリングに適用されるとは限りません。
-
機能を適切な Helix モジュールに分離、分割する。
-
モジュールへのサイト/テナントのスキャフォールディング統合を提供する。
関連トピック:
新しいレンダリングを作成する前に既存のレンダリングの利用を検討する
フローチャートを確認して、カスタム コンポーネントを作成する必要があるかを判断します。
レンダリング バリアントおよびコンポジットを使って、既存の SXA レンダリングをカスタマイズできます。可能であれば、カスタム レンダリングを構築する前に、常にバリアントとコンポジットの利用を検討します。
たとえば、レンダリング バリアントを使って、参照アイテムを使ってフィールドを表示する、トークン付きのクエリ アイテムを使ってコンテキスト アイテムをレンダリングする、などが可能です。
関連トピック:
新しいレンダリングを作成する前に既存レンダリングのクローニングを検討する
レンダリング バリアントで実現可能な範囲を超えて HTML をカスタマイズしたい場合は、簡単に SXA レンダリングをクローニングできます。このプロセスでは、データ ソースとレンダリング パラメーターに追加することもできます。可能であれば、SXA OOTB コンポーネントで実現できる機能のためにカスタム レンダリングを構築する前に、常にこのアプローチを検討します。
このアプローチは SXA 1.6 以降で有効です。
アイテムにリンクするフィールドの範囲を制限する
クエリをサポートするフィールドの場合、編集担当者が選択できるアイテムの範囲を制限する必要があります。
たとえば、次を使用します。
-
query:$siteMedia
– ファイルまたは画像フィールド用。 -
query:$home
– ページにリンクするフィールド用。 -
query:$site
– サイト内の任意のアイテムにリンクできるフィールド用。
SXA パイプラインの説明には、全トークンの一覧とトークンの拡張方法が含まれています。