今回はコンポーネントウィザードの Datasource タブにある Datasource の項目に関して確認をします。
ウィザードでの動作確認
まずコンポーネントを作成するにあたって、Datasource の項目があります。ここでは3つの選択肢が表示されています。
- Ask user for data source ( Default )
- User current page
- Automatically create data source under page
これらの動作の違いを確認していきましょう。
User current page
この項目を選択すると、そもそもダイアログで表示される項目が減少します。
また、Behaviors の項目も2つだけに絞られます。
作成されたコンポーネントの Renderings の設定を確認しにいくと、Editor Options に含まれる項目 Datasource Template の項目が空欄になっていることが分かります。
上記が空欄なだけでなく、当然ながらこのコンポーネントに対するテンプレートも作成されていない状況です。
標準で提供しているコンポーネントで Datasource Template を持っていないものは以下の通りです。
- Navigation
- Page Content
- Title
- Columun Splitter
- Container
- Row Splitter
この一覧を参照してわかるのが、Title および Page Content はそのアイテムのデータを参照しているため個別の定義が不要という点、そしてそれ以外はサイトの構造に関する情報を利用するコンポーネントとなります。
以前に Breadcrumb のサンプルを作る際に、Datasource Template は削除して、という風に紹介をしましたが、実はこの選択をすることで不要なデータテンプレートが生成されない形となります。
コンポーネント自体がデータを持たない場合は、この選択肢で作成するとよいことが分かります。
Automatically create data source under page
続いて最後の項目となっている automatically create data source under page を選択してコンポーネントを作成します。
作成されたコンポーネントのレンダリングに関して、Experience Editor の設定に対して、other properties に対して IsAutoDatasourceRendering が追加されています。
動作がどのように異なるのか、Experience Editor でコンポーネントを配置します。
上には Ask user for data source で作成をしたコンポーネントを、そして下には Automatically create data source under page を指定したコンポーネントになります。
これだけでは違いは判りませんが、Experience Editor でデータを参照しに行くと以下のように後者のほうにはアイテムが作成されています。
この設定はその名の通り、ページの下に Data フォルダを作成して、そこにそのコンポーネントで定義しているテンプレートのアイテムが作成される形となります。
もちろん、Ask user for data source で作成をしたコンポーネントに対して、IsAutoDatasourceRendering を追加すれば同じ動きになります。初期設定が異なるだけという形です。
まとめ
今回は、コンポーネントを作成する際の Datasource の設定の違いを確認しました。データを持つ必要がない( Breadcrumb などのコンポーネント)時は User curret page を利用してテンプレートを作成しない、またページに紐づくデータフォルダにアイテムを作成するときに、自動で作成をする際には IsAutoDatasourceRendering の設定で自動的にアイテムが作成されることとなります。