コードファーストJSSアプリでのマニフェスト定義の追加
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
コンポーネントをスキャフォールディングするときに、スクリプトを変更して機能を削除していない場合、JSSは新しいコンポーネントのマニフェスト定義を自動的に作成します。ただし、単にコンポーネント ファイルを作成する場合は、マニフェストAPIインスタンス メソッドを使用してマニフェスト アイテムに追加できます。また、Manifest APIインスタンスメソッドを使用して、新しいルートタイプ や他のタイプのアイテムを登録することもできます。
これらのメソッドは、sitecore/definitions/ ディレクトリにあるマニフェスト定義ファイルで使用します。ファイル名は、*.sitecore.js|tsの規則に従う必要があります。ここで、アスタリスクはSearchBox.sitecore.jsなどのコンポーネント名、またはplaceholders.sitecore.jsなどのアイテムタイプを表します。
マニフェストAPIインスタンス メソッド
マニフェストAPIには、登録用の次のインスタンスメソッドが用意されています。
-
addComponent(...components: component) - JSSアプリ コンポーネント定義を登録します。
-
addContent(...contents: content).
-
addRoute(...routes: route) - アプリのルートデータ定義を追加します。
-
addRouteType(...routeTypes: template) - ルートのSitecoreテンプレート タイプを追加します。
-
addTemplate(...templates: template).
-
addPlaceholder(...templates: template) - プレースホルダー定義をマニフェストに追加します。
マニフェスト オブジェクト
マニフェストAPIインスタンスメソッドを使用してマニフェスト定義を追加する場合、定義は次のスキーマと一致する必要があります。
JSタイピングを理解するエディター (VS Codeなど) を使用すると、エディター内の型情報 (役立つ注釈など) にアクセスできます。
コンポーネント
displayFieldEditorButtonプロパティとfieldEditorFieldsプロパティを使用すると、Sitecore Experience Editorのコンポーネントに自動的に追加されるField Editorボタンの動作を制御できます。このボタンを使用すると、ポップアップフォームインターフェイスですべてのコンポーネントデータを編集できます。デフォルトでは、すべてのコンポーネントにボタンが表示され、すべてのコンポーネントフィールドが編集可能です。これが望ましい動作である場合は、これらのプロパティを指定する必要はありません。
コンテンツ
コンテンツ データは ルート データと同じスキーマを使用しますが、placeholdersプロパティは効果がないため、通常は使用されません。
畑
typeプロパティには、使用可能なCommonFieldTypes値のいずれかを使用することをお勧めします。
コモンフィールドタイプ
カスタムSitecoreフィールド タイプまたはCommonFieldTypes列挙体にないその他のタイプの場合は、Sitecoreのフィールド タイプ名の文字列 (つまり、Single-Line Text) を渡すことができます。VS Codeのように型注釈をサポートするエディターでは、この列挙型でオートコンプリートが提供されます。
パラメータ
プレースホルダ
プレースホルダー
ルート
テンプレート
田畑
パラメータ
imageFieldValue (イメージフィールド値)
画像フィールドの値は、fieldが画像タイプの場合に使用されます。通常のフィールドと比較して、追加のプロパティがあります。
linkFieldValue (リンクフィールド値)
リンク・フィールド値は、fieldがリンク・タイプである場合に使用されます。通常のフィールドと比較して、追加のプロパティがあります。
multilistFieldValue (マルチリストフィールド値)
Sitecoreマルチリスト フィールドを定義するには、マルチリストで選択されているアイテム定義を (配列として) 指定するか、ID参照を使用して共有コンテンツ エリアで定義されたアイテムをプルします (またはSitecoreのアプリ以外のアイテムを参照するための明示的なGUID)
日付フィールド値の処理
マニフェスト内の日付フィールドの値は 、ISO 8601形式の文字列 ( 2012-04-23T18:25:43.511Zなど) を使用して書式設定されます。
これはJavaScriptの日付形式であり、Sitecoreが日付フィールドの値を内部的に保存する方法とは異なります。Sitecore形式の日付 do not work.
マニフェスト定義の例
JSSアプリケーションを作成するとき、アプリにはすでにいくつかのマニフェスト定義があります。最も一般的なマニフェスト定義は、アプリのインポート中にプレースホルダーとコンポーネントをSitecoreに登録するためのものです。それでも、マニフェスト定義を他のユースケース ( ルートにフィールドを追加するなど) にも使用できます。
プレースホルダー
マニフェストでプレースホルダを明示的に定義することはオプションです。ルートによって参照されるプレースホルダー名は、マニフェストによって自動的に認識されます。ただし、プレースホルダーを明示的に登録すると、プレースホルダー の表示名 を設定して、コンテンツエディターがappname-content-leftside-upsidedown-2よりもわかりやすいものを表示できるようにすることができます。
明示的なプレースホルダ定義は、/sitecore/definitions/placeholders.sitecore.jsファイル内の行です。名前の .sitecoreは必須です。
例えば:
コンポーネント
JSSがコンポーネントをSitecoreに登録し、必要なコンテンツを提供するための適切なインフラストラクチャを提供できるように、ルートに追加された各フロントエンド コンポーネントを定義する必要があります。
コンポーネント定義は、通常、/sitecore/definitions/components/<ComponentName>.sitecore.{js|ts}に格納されます。例えば:
名前の .sitecoreは必須です。
CLIコマンドjss scaffold <ComponentName> を使用してコンポーネントを作成すると、スキャフォールディング・スクリプト (サンプル・アプリケーションで使用可能な場合) によって、コンポーネントとマニフェスト定義が生成されます。