Sitecore Rocks を使用して サブレイアウトを作成してみます。前提としてプロジェクトやサイトコアとの接続がセットアップされていることとします。セットアップ手順の例に関しては [Sitecore Rocks]Webアプリケーションプロジェクトをセットアップする を参照して下さい。

検証環境

  • Visual Studio 2012 Ultimate
  • Sitecore Rocks 1.1.0
  • Sitecore 7.1 がローカルにインストールされた環境

1.レイアウトファイルの作成

Sitecore Rocks をインストールすると Sitecore のレイアウトやサブレイアウト用にファイルテンプレートがインストールされます。テンプレートを使用するとファイルとコンポーネントの定義アイテムとaspx,ascxファイルをウィザードで同時に作成できます。

今回はサンプルということで、ユーザーコントロールを作成して作成したファイルを使用してサブレイアウトの定義アイテムを作成してみたいと思います。ソリューションエクスプローラーでファイルを作成したいフォルダを右クリック→追加→新しい項目 をクリックします。今回の例では layouts というフォルダ配下にMySublayout.ascx というWebユーザーコントロールファイルを作成します'(下図参照)。

上図で 左ペインのテンプレートのカテゴリに Sitecore というものが表示されています。 Sitecoreのカテゴリ内のテンプレートを選択することでレイアウトやサブレイアウト用の ファイルとプレゼンテーションコンポーネントの定義アイテムを同時に作成することもできます。

MySublayouts.ascx を編集します。今回は例として以下のようなTitleとTextフィールドを出力するマークアップを追記。

<sc:Text runat="server" ID="Text1" Field="Title" />
<br />
<sc:Text runat="server" ID="Text2" Field="Text" />

ソリューションをビルドしてエラーが発生しないことを確認します。ユーザーコントロールは今のところはただのASP.NET のユーザーコントロールです。Sitecore Rocks の機能を使用して 作成したユーザーコントロールを元に サブレイアウトの定義アイテムを作成してみます。MySublayout.ascx を右クリック→Sitecore→Create Items from Files...をクリックします。

Create Items from Files ダイアログが表示されますので、サブレイアウトの定義アイテムを作成したい親のアイテムを選択します。下図では /sitecore/Layouts/Sublayouts アイテムを選択しています。OK ボタンをクリックします。

ログのダイアログが表示されます。成功したことを確認して Close ボタンをクリックします。

以上が ユーザーコントロールからサブレイアウトの定義アイテムを作成してバインドを設定する手順の説明となります。バインドの設定をするとWebアプリケーションプロジェクトの .sitecore Fileにもバインドの設定情報(アイテムのGUIDとファイル)が記述されるということを覚えておく必要があります。

2. 作成したサブレイアウトを使用する

サブレイアウトを作成したので、 Sitecore Rocks を使用して レイアウト詳細の設定も行ってみます。今回はHomeアイテムに対してレイアウト詳細の設定を直接行います。

Sitecore Explroer を使用してmasterデータベースの home アイテムを選択します。右クリック→Tasks→Design Layout をクリックします。アイテムを選択してCtrl + Shift + Uでもレイアウト詳細の設定画面を表示できます。

下図左上のAdd Rendering をクリックします。

Rendering を選択するダイアログが表示されます。作成した MySublayout を選択して追加します(下図参照)。

そのほかのサブレイアウトは 削除します。Ctrl+s ボタンで変更を保存してください。あとは Sitecore Explorer でアイテムを右クリック→Publishing → Incremental Publish Database をクリックしてパブリッシュを行います。

パブリッシュしたら外部サイトでもサブレイアウトが表示されることを確認してください。

3.まとめ

説明は以上です。今回は例ということで ascxファイル(ユーザーコントロールファイル)を作成してからコンポーネントの定義アイテムを作成してみました。通常の開発では Sitecore Rocksをインストールしたときにインストールされる Sitecoreのファイルテンプレートを使用して Sublayout や Layout のファイル(aspx, ascx)と定義アイテムを同時に作成していくことになると思います。