Catalyst::Helper::View::TTSite
もう一つのヘルパクラスCatalyst::Helper::View::TTSiteでは、統一的な外観を持ったサイトを構築するためのクラスやファイルを作成します。
このヘルパを使用してビューを作成するには、次のコマンドを実行します。
$ ./MyApp/script/myapp_create.pl view TT TTSite
Catalyst::Helper::View::TTSiteで作成されるファイル
このヘルパクラスにより作成されるファイルは次のようになります。
| ファイル | 説明 |
| lib/<myapp>/View/TT.pm | Catalyst::View::TTを継承したビュークラス |
| root/lib/config/main | サイト共通の設定値やマクロなどを定義する設定ファイル |
| root/lib/config/col | 色に関する定義を行う設定ファイル |
| root/lib/config/url | URLの定義を行う設定ファイル |
| root/lib/site/wrapper | テンプレートファイルの拡張子によりそのまま返すか、サイト用コンテンツを作成するか切り替える処理を定義したファイル |
| root/lib/site/layout | サイト共通のヘッダ、本文、フッタのレイアウトを定義したファイル |
| root/lib/site/html | クライアントに返すHTMLの枠組みを定義したファイル |
| root/lib/site/header | コンテンツの上部に表示するヘッダ部分を記述したファイル |
| root/lib/site/footer | コピーライトなどコンテンツの下部に表示するフッタ部分を記述したファイル |
| root/src/welcome.tt2 | Welcomeページ用テンプレートファイル |
| root/src/message.tt2 | メッセージページ用テンプレートファイル |
| root/src/error.tt2 | エラーページ用テンプレートファイル |
| root/src/ttsite.css | サイト共通CSSファイル |
「config/main」ファイルには、サイトのタイトルやコピーライトなどのサイト共通データ、「config/col」などの定義ファイルの読み込み、デフォルト値の定義などを行います。
ここで定義した値は、すべてのテンプレートから参照できます。デフォルトでは次のように定義されています。
site = {
title => 'Catalyst::View::TTSite Example Page',
copyright => '2010 Your Name Here',
};
ここで定義した値は、テンプレートからは[% site.title %]のように参照できます。
「site/wrapper」ファイルでは、テンプレートファイルの拡張子により、「site/html」と「site/layout」を使用してHTMLをレンダリングするか、そのまま返すかの判定を行っています。
デフォルトの「site/*」ファイルを使った場合のHTMLは次のように作成されます。
<!-- ここから「site/html」で定義 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>「site.title」などの値</title> <style type="text/css"> 「ttsite.css」の内容 </style> </head> <body> <!-- ここから「site/layout」で定義 <div id="header">「site/header」の内容</div> <div id="content"> アクションで指定したテンプレートのレンダリング結果 </div> <div id="footer">「site/footer」の内容</div> <!-- ここまで「site/layout」で定義 </body> </html> <!-- ここまで「site/html」で定義
設定パラメータ
TTSiteヘルパで作成されたTT.pmでは、次のようにいくつかの設定値が追加されています。
package MyApp::View::TT;
use strict;
use base 'Catalyst::View::TT';
__PACKAGE__->config({
INCLUDE_PATH => [
MyApp->path_to( 'root', 'src' ),
MyApp->path_to( 'root', 'lib' )
],
PRE_PROCESS => 'config/main',
WRAPPER => 'site/wrapper',
ERROR => 'error.tt2',
TIMER => 0
});
新しく出てきた設定パラメータには次のようなものがあります。
| パラメータ名 | デフォルト値 | 説明 |
| PRE_PROCESS | 無し | クライアントに返すHTMLページをレンダリングする前に呼び出されるテンプレートファイルを指定。サイト共通データなどを定義している |
| WRAPPER | 無し | 複数のテンプレートを使用してHTMLページをレンダリングする場合に使用するラッパテンプレートファイルを指定 |
| ERROR | 無し | テンプレートファイルの処理中にエラーが発生した場合に表示させるテンプレートファイルなどを指定 |
| TIMER | 0 | テンプレートをレンダリングする際にプロファイルを計測するかどうかのフラグ。計測する場合には1を指定する |
