XHTML形式
ブラウザでプレビュー可能
PHPTAL テンプレートエンジンのテンプレートファイルは、XHTML 形式です。 テンプレートファイルをブラウザでプレビューして表示が確認できます。
タグ内に出力するtal:content
タグ内に、PHP プログラムからのデータを表示する方法です。 下のような記法のいずれかを用いて、H1タグ内に、変数 title の中身を表示するようにしていできます。
<h1 tal:content="title" /> <h1 tal:content="title">ダミータイトル</h1>
例えば title が「XHTMLテンプレート」だっとすると、PHPTAL で処理すると <h1>XHTMLテンプレート</h1> という表示になります。
PHPTAL で処理しない場合 (テンプレートを直接表示した場合)、HTML ファイルとして閲覧できます。 2番目の記法だと、HTML として閲覧するとH1内に「ダミータイトル」と表示されるので、レイアウト等のチェックがしやすくなります。
tal:content を用いる他、下のような書き方も可能です。
<h1>${title}</h1>
繰り返し実行するtal:repeat
データが配列や連想配列やオブジェクト等で与えられた時、反復して実行することができます。 このとき用いるのが tal:repeat です。
postsが反復可能なデータで、その中にdateというデータがある場合を考えてみましょう。例えば以下のようなデータがあるとします。
array( array("date" => "2010年10月10日"), array("date" => "2011年11月11日"), array("date" => "2012年12月12日") )
日付データを span で表示したい場合、PHPTAL は下記のようになります。
<div tal:repeat="item posts"> <span tal:content="item/date">x年y月z日</span> </div>
素の PHP で記述すると、下記のようになるでしょう。
<php foreach ($posts as $item) :?> <div> <php printf ('<span>%s</span>',$item->date) ;?> </div> <php endforeach;?>
タグ全体を置き換えるtal:replace
tal:content は、HTML タグ内部を、PHP からの変数に置き換えます。 tal:replace を使うと、HTML タグ全体を、PHP からの変数に置き換えます。
下の例では、<span> タグ全体が description に置き換えられます。
<p><span tal:replace="description" >Sample Data</span></p>
変数description が、「PHPTAL は、HTML レイアウトを崩さないテンプレートエンジンです」の場合、下記のように置き換えます。
<p>PHPTAL は、HTML レイアウトを崩さないテンプレートエンジンです</p>