テンプレートのマニュアル

POPFile 0.22 ではテンプレート・システムが導入され、 Perl コードからすべての UI (表示のための) HTML がそのテンプレート・システムに移されました。 これにより、Perl を知らなくても UI を大きく変更することができます。<br> ただし、テンプレートは POPFile スキンの一部でしかなく、スキン は CSS ファイルを必要とします。 CSS とテンプレートが合わさって、POPfile 「設定」ページでユーザーが選べるスキンとなります。

'default' スキンは他のスキンが使う基本的なテンプレートを含んでいます。<br> 改造を簡単にし、ページの共通要素を一カ所で扱えるように、UI の個々のページはいくつにも分解されています。 そして、すべてのスキンはそのスキンのディレクトリに自分自身のテンプレートを用意していなければ、'default' スキンのテンプレート・ファイルを使います。 ですから、UI の一部だけを変更したい場合には、適切なテンプレートをあなたのスキン・ディレクトリにコピーして 改造するだけですみます。

テンプレートをどのように使うことができるかという例として、'skins' ディレクトリの OceanBlue スキンを見てください。

ページレイアウト例

テンプレートがどのように機能するのかをより良く理解するために、テンプレートが「履歴」ページをどのように 作り上げるのかを見てみましょう。:

history-page.thtml
common-top.thtml
common-middle.thtml
history-page.thtml
history-navigator-widget.thtml
history-page.thtml
history-search-filter-widget.thtml
history-page.thtml
history-navigator-widget.thtml
common-bottom.thtml

ページを構成するために POPFile が最初に見るファイルは、あなたが扱おうとするページのものです。 この例では history-page.thtml になります。このテンプレート・ファイルは、 他のどのテンプレートを使うかを決めます。

すべてのページは、common-*.thtml をインクルードします。common-top テンプレートは doctypehtmlhead タグのみを含みます。 common-middle は UI の中核となる領域の外枠やテーブルを含みます。

このページ固有の内容は common-middle に続いて記述されるので、 history-page の説明に戻ります。 そこから、history-navigator-widget をインクルードし、その少しあとで history-search-filter-widget を インクルードします。 終了する前に history-navigator-widget をもう一度インクルードします。 それから common-bottom が 外枠のテーブルを閉じ、フッタ (POPFile ホームページなどへのリンク)を加え、 bodyhtml タグを 閉じます。

テンプレートのタグ

テンプレート・システムは、HTML に似たタグを使い、他のファイルをインクルードしたり、変数を使ったりして別のコードやテキストを最終的なページに書き込みます。 また、HTML コードの一部を繰り返したり不要な部分をとばしたりするために、繰り返しや条件判断の宣言文のためのタグを使います。

タグはすべて <TMPL_*> の形をしており、これらのタグが指定する変数やファイル名以外はすべて大文字で書かれます。これによって、実際の HTML コードと簡単に区別できるのです。

テンプレートの変数、条件判断、繰り返し

これらはちょっと分かりにくくて最初は厄介に感じるのですが、しばらく使っているうちに慣れるでしょう。 これらを使うことで、UI ページの動的に変化する部分を作ることができます。<br> 理解を深めるために、サンプルを見てみましょう:

<table>
  <TMPL_LOOP NAME="Loop_1">
 
  <TMPL_IF NAME="row_odd">
  <tr bgcolor="red">
  <TMPL_ELSE>
  <tr bgcolor="blue">
  </TMPL_IF>

    <td>
      <TMPL_VAR NAME="title">
    </td>
    <td>
      <TMPL_VAR NAME="value">
    </td>
  </tr>
  <TMPL_LOOP>
</table>

この例では変数であらわされる行数のテーブルが表示されます。 この行数はこのテンプレートを読み込む Perl スクリプトによって決められます。変数で指定された行数を実現するために、TMPL_LOOP というテンプレートのタグが使用されます。 繰り返しをするたびに、新しい行が出力に追加されます。 いいかえれば、TMPL_LOOP タグのあいだのコードが Perl スクリプトで指定された回数だけ追加されるということです。

TMPL_IF と TMPL_ELSE タグは、この例では奇数行と偶数行とで背景色を変えるのに使われています。 Perl スクリプトで、テンプレートの変数 row_odd が真であるか偽であるかを決定しなくてはなりません。 それに応じてテンプレートは行に赤か青かの背景色をつけるという適切な HTML を選択することができます。

最後に、テーブルのセルの値は TMPL_VAR タグで書き込まれます。再度言いますが、これらの値を決めるのは Perl スクリプトです。

テンプレート・モジュール

POPFile はこれ自身がテンプレートを処理するわけではありません。 可能な場合は、このためのスクリプトを作るより、既存の Perl モジュールを使うほうがいいでしょう。 この場合、テンプレート処理にはいくつかの選択肢がありますが、 HTML::Template が選ばれました。 このモジュールについてのさらにくわしい説明は、次のサイトで得ることができます(英語): http://html-template.sourceforge.net/html_template.html

原文

開発者向けコーナー

POPFile ドキュメンテーションプロジェクト

 
jp/template.txt · Last modified: 2008/02/09 19:04 by manni

Should you find anything in the documentation that is incomplete, unclear, outdated or just plain wrong, please let us know and leave a note in the Documentation Forum.

Recent changes RSS feed Donate Driven by DokuWiki
The content of this wiki is protected by the GNU Fee Documentation License