PHPTALで変数を表示する
分岐やデフォルト値
PHPTAL では、PHP からの変数の有無による条件分岐、変数が存在しない場合に表示するデフォルト値設定、等が可能です。
特定の条件の時のみ表示するtal:condition
PHPTAL 内に、条件判定を記述することができます。 例えば tal:condition を使うと、条件に合うときだけ表示する、ということができます。
下の例では、description が存在する(定義されている)時のみ、パラグラフ(pタグ)を出力します。
<p tal:condition="exists:description" tal:content="description" />
condition の条件判定部分 exists:XXXX は、XXXX があれば真を返す(なければ偽を返す)です。
値が無いときにデフォルト値を返す default
tal:content に、| default を追加すると、値が存在しないときにデフォルト(元のHTML)を表示します。
<h1 tal:content="title | default">ダミータイトル</h1>
title が存在すれば、<h1>PHPTAL</h1>のように表示します。存在しない場合、<h1>ダミータイトル</h1>と表示します。
| を用いた式の連結
| は、上記の | default でも使用しました。 | は、| の左側の処理結果が NULL やエラーだった場合に、| の右側の処理を行います。 このため、上記の例では、title が存在しない場合に default(テンプレート上のダミーデータ)を表示します。
下記の例では、複数の変数を左から順に調べ、NULL で無い値を見つけたら表示します。
<p tal:content="page_description | site_description | default">このページの説明</p>
下記の順に処理が行われます。
- page_descriptionがあれば表示する。
- page_descriptionがNULLでsite_descriptionがあれば表示する。
- page_descriptionもNULL、site_descriptionもNULLであれば、デフォルト値を表示する。