akkun_choi pedia
mindiaakkun_choi pedia見出し語

Smarty

akkun_choi · 2009-07-07 更新

割り当てられた変数を表示する

別ウィンドウで表示

{debug}

こういう方法もある

{php}var_dump($this->_tpl_vars){/php}

{php}{/php}はなんとSmartyオブジェクトのスコープで実行されるらしい。$thisが使える!
http://d.hatena.ne.jp/tacchini/20080521/1211356056

コンパイル済みファイルからコード拾ってくるしかないのかと思ってたけど、こんな簡単な方法があったとは…。

{php}{/php}

{php}{/php}を使えばSmarty内でphpコードを書くことができる。

Smartyviewだからその中でphpなんて書いちゃダメ」と頭ごなしに否定していた。でも最近のフレームワークはそれ以前にほとんどSmartyではなく素のphpをテンプレートエンジンとして使っていて、ようは使う側が正しく分離できていればいいんだと気づいた。

viewにしか考えられないプレゼンテーションロジックはテンプレート内にphpで書くことも許されると思う。

キャッシュ可能なプラグインの出力の制御

http://sky.freespace.jp/smarty/SmartyManual_2-6-7J_html/caching.cacheable.html

例 13-10.これの第4引数入れてもキャッシュされないようなんだけど、何か悪いんかな。

あと、キャッシュ有効で関数のキャッシュを無効にしたとき、ちゃんとassignしとかないとダメ

デリミタ

標準のデリミタ「{ }」はJavaScript埋め込む時に大変めんどくさい。
XOOPSは「<{ }>」らしいけど、HTMLタグ内に入れるとエディタでうまくいかなくなる。
EC CUBEは「<!--{ }-->」。長い。

デリミタの種類を増やすという手もある
http://d.hatena.ne.jp/maru_cc/20081112/with_designer

関連する見出し語