マジ、便利じゃのお Smarty(笑)[OpenPNE]
(2009-06-11 16:39:27) by shinoda


さっき、「OpenPNE のテンプレートエンジンは Smarty だから」の中で書いた Smarty の例文のつづき。

ログインしてニックネームが取れる状態と、未ログインでニックネームが取れない場合で処理を分けるには、

({if $c_member.nickname})
    ({$c_member.nickname})さん、こんにちは
({else})
    ようこそ!
({/if})

と書けば良いのだが、例えば、ニックネームが取れないときは、無条件に'ゲスト'という名前にしちゃうというのであれば、

({$c_member.nickname|default:'ゲスト'})さん こんにちは

$c_member.nickname が偽(未定義値だったり空だったり)の時、標準で'ゲスト'を出威力せよということだ。
なるほど、いちいちロジック書かなくても良いのは確かに便利だ。
が、これを便利だと思った瞬間に、何となく自分のプログラマ度が下がった気がするのは何故だろう。(笑)

ところで、Smarty のマニュアルを読むと、デリミタ文字は {}(波カッコ)になっているのに、OpenPNE のテンプレートじゃ ({})(丸カッコと波カッコの組み合わせ)になってるんで、なんでやねん?OpenPNE の独自仕様 Smarty ?とか思ったら、

$smarty = new Smarty;
$smarty->left_delimiter = '({';
$smarty->right_delimiter = '})';
...

みたいに簡単にデリミタ文字の設定は変えられるようで。

そりゃそうだよな。


コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8