Walrus,Digit. | 一覧 | 検索 | 更新履歴(RSS) | 新規作成
はてなブックマークに追加 はてなブックマークを表示 編集 | 編集(管理者用) | 差分

Perlモジュール/HTML::Template

編集

CGIスクリプトからHTMLテンプレートを使うためのPerlモジュール。 詳細は以下を参照。

コンストラクタ

編集

newメソッドでは、ちょっとした数のオプションを指定できます。 そのうち重要なものを(というより私が良く使うものを)挙げておきます。

my $template = HTML::Template->new(
    filename => 'file.tmpl',           # テンプレートファイルそのもの
    'die_on_bad_params' => 0,
    'loop_context_vars' => 1,
    'global_vars'       => 1
);

Error Detection Options : die_on_bad_params

HTML::Templateでは、paramメソッドで渡されるパラメータと、テンプレート内で使用されているパラメータが完全に一致する必要があります。テンプレート内で使用しているパラメータが渡されていない、あるいは逆にテンプレート内で使用しないパラメータを指定する、といったことを行うとエラーになります。

このオプションを無効にすると、双方のパラメータが一致していなくてもエラーにはならないようになります。実装上、このオプションは便利です。ただし、特に必要がなければこれは有効にしたままの方が予期しない動作を回避できるでしょう。

Miscellaneous Options : loop_context_vars

loop_context_varsを有効にしておくと、ループ中で4つのループ・コンテキスト変数、__first__、__last__、__inner__、__odd__を使えるようになります。

これを使うと例えばレコードをtableで出力したいとき、__first__でtableの開始タグを、__last__ではtableの終了タグを出力し、__odd__(偶数行)では背景色を変えるといったことができるようになります。

Miscellaneous Options : gloval_vars

gloval_varsを有効にしておくと、HTML::Templateに与えたパラメータはすべて広域変数のような動作をします。つまり、ループの中でも、全体に対して指定されているパラメータを使用できるようになります。

これを使うと、例えばスクリプト自身のURLや画像ファイルの入っているディレクトリのURLなどをテンプレート全体で共有し、ループ内でこれをリンクに埋め込むといったことができるようになります。

コメント

[[#rcomment]]