Smartyでよく使うあれこれ
メモ。
値を表示する
基本(そのまま表示)
{$hoge}
ちなみに配列の中身を表示する場合はこんな感じでドットでつないで辿ることができます。
{$hoge.fuga}
HTMLエスケープして表示する
{$hoge|escape:'html'}
改行文字をbrタグに変換して表示する
{$hoge|nl2br}
コメントアウトする
{* ここはコメントアウトされます HTMLでのコメントアウト <!-- --> と違ってソースにも表示されません。 *}
繰り返し処理・分岐処理
foreach
{foreach from=$hoge key=k item=v} <!-- 配列$hogeについて繰り返し処理 --> <p>{$v.id} {$v.name}</p> {/foreach}
日付フォーマット
{* 現在日時 → 任意のフォーマット *} {$smarty.now|date_format} {* PHPで解釈可能な日付文字列 → 任意のフォーマット *} {strtotime($datetime)|date_format:"%Y-%m-%d %H:%M:%S"}
フォーマットに使えるやつ
date_format | Smarty
フォーマット文字列の中に日本語があるとエラーになるときもある(よく調べてない)
PHPの関数も使えるので(後述)以下なら動くけど、ちょっとどうかと思う
{date("Y年m月d日 H時i分s秒", strtotime($datetime))}
PHPの関数もまあまあ使える
やりすぎると「PHPでやれ」感出てくるけど。
だいたいifの条件式に使いがちなのでサンプルコードはifとの合わせ技。
書いてたら無限に出てきそうなので、自分の中でかなり頻出なやつを。
次点でcountとかarray_columnとかも使う。
あんまり関係ないメモ
プラグインを作るという手もある。
[PHP] Smartyプラグインの作り方 – 端くれプログラマの備忘録