データ定義とテンプレートの概要
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
ウェブサイトを立ち上げる際、最初のステップはデータ構造の作成です。Sitecoreでは、データ構造を作成するとは、データテンプレートの作成、標準値の定義、挿入オプションの割り当て、コンテンツ項目の作成を指します。そして、これを行うことはSitecoreにおける基本的な概念の一つ、すなわちテンプレートに関わっています。テンプレートはコンテンツのpresentationとは関係ありません。代わりに、内容のstructureを決定します。テンプレートとは、他のアイテムの構造と挙動の両方を定義する項目です。Sitecoreには以下のような異なる種類のテンプレートがあります:
-
データテンプレートは、データの入力方法を制御するためのフィールドを定義します。彼らは各項目を構成する正確なフィールドセクション、フィールドタイプ、フィールド名を決定します。言い換えれば、データテンプレートは項目を構築する枠組みを形成します。
Sitecoreはコンテンツツリー内のすべての項目にデータテンプレートを関連付けます。編集コントロールをユーザーに表示するのは フィールドタイプ であり、それらはデータベースに保存される生の値です。
-
ブランチテンプレートは、単一のアイテムではなく複数のアイテムを作成できるものです。ブランチテンプレートは、ブランチテンプレートの定義アイテムで構成され、単一のアイテム、階層状のアイテム、または複数の階層を含むことができます。ブランチテンプレートでは、Sitecoreはブランチテンプレート定義項目の下にある項目(フィールド値を含む)を複製し、その後アイテム名やフィールド値のトークンを解決します。
-
コマンドテンプレートは、あらかじめ定義された構造ではなくロジックを使ってアイテムを挿入できるようにします。
Sitecoreでもう一つ重要な概念はテンプレート継承です。テンプレートは1つ以上の ベーステンプレートから継承します。例えば、データテンプレートは基本テンプレートからセクションやフィールドを継承します。データテンプレートが他のテンプレートから継承する場合、すべてのフィールドが統合されます。テンプレートの階層構造の例は テンプレート継承の例にあります。
すべてのデータテンプレートは 標準テンプレートから継承されます。標準テンプレートにはフィールドは含まれていませんが、他のテンプレートから継承されています。標準テンプレートに継承されたすべてのフィールドは、例えば__Ribbonや__Trackingのように下線で始まります。
すべてのテンプレートはコアデータベースではなくマスターデータベースで作成する必要があります。
推奨される実践
推奨される実践
テンプレートを使う際は、以下のベストプラクティスを念頭に置いてください。
-
データテンプレートをサイトごとに整理しましょう。コンテンツツリー(sitecore/Templates)で、各サイトごとにフォルダを作成し、テンプレートを追加します。
-
わかりやすいデータテンプレート名を使い、コンテンツ作成者が新しい項目を挿入し、その名前を見たときにテンプレートの目的を理解できるようにします。同様に、類似したフィールドをまとめたセクションにも意味のある名前を付けましょう。
-
フィールドやフィールドセクションにはunique名を使いましょう。これらは継承されたベーステンプレートからマージされたものです。
-
コンテンツ作成者が見えるデータテンプレートにアイコンを割り当て、アイテムがどの種類のデータテンプレートから作成されたかを簡単に特定できるようにします。同様に、フィールドセクションにアイコンを割り当てます。
-
テンプレート継承を使って重複を減らす。複数のデータテンプレート間で共有されているフィールドは、ベーステンプレートにまとめて継承することができます。例えば、すべてのページにはページタイトル(ブラウザのタイトルバーに表示される)とメタディスクリプションが設定されます。これらのフィールドはページメタデータとしてまとめることができます。同様に、ほとんどのページには要約情報や主要な内容があります。
-
冗長なフィールド(例えば、データテンプレートで継承されているが一度も使われないフィールド)は避けましょう。
-
特定のフィールド名(例えば単にHeadingではなくPage Summary Heading)を定義してください。フィールドコンテンツをレンダリングするすべてのヘルパーやコントロールは最終的に、FieldRendererパイプラインを通過し、フィールド名をIDではなく入力する必要があります。
-
フィールド名は場所ではなくコンテンツタイプに基づいて定義してください。なぜなら、コンテンツはしばしば再利用され、必ずしも一つの場所だけに現れるわけではないからです。
-
フィールドを翻訳し、各バージョンを追跡する必要がある場合は、そのフィールドをバージョン付きフィールドにしましょう。フィールドを翻訳する必要があるが、各バージョンを追跡する必要がない場合は、フィールドを無バージョンフィールドにしてください。
-
複数のフィールドが似た内容を使う場合は、フィールド トークン ( $name、$id、$time)を使いましょう。トークンはデータテンプレートの標準値に基づいて定義されており、対象フィールドがバージョン指定または非バージョン指定の場合、すべての言語で実行しなければなりません。トークンはアイテムが作成された瞬間に交換されます。
-
フィールドのデフォルトを標準値に設定してください。標準値を使えば、デフォルトデータが新しく作成されたアイテムに自動的に挿入されることを確認できます。標準値は、既存のアイテムのnullフィールドを埋めたり、新たに作成されたアイテムにデータを埋めたりするデフォルトの値です。