各フィルターの動作するタイミング
Smartyにはprefilter プリフィルタ、postfilter ポストフィルタ、 outputfilter アウトプットフィルタとありますが、この違いはなんでしょう?
prefilterは、テンプレートをコンパイルする前に動作します。テンプレートファイルに対して行う処理と考えたほうが良いかもしれません。
assignアサインした変数などには行われません。
postfilterは、コンパイルを行ったファイルがSmartyの合成処理される前に動作します。これはテンプレートファイルのSmartyタグ以外に対して行われる処理です。
ここでもassignアサインした変数などには行われません。
outputfilterは、合成処理が行われ、出力される直前に動作します。合成後の全体にかかる処理です。
これはassignアサインした変数などにも実行されます。
テンプレートではなく、assignアサインした変数にのみ動作させたい場合はdefault_modifiersを使います。
関連記事
- Smarty2をPHP7に対応させる方法(The /e modifier is no longer supported Smarty_Compiler.class.php, line 270)
- Smarty error unrecognized tag 'assign' 組み込み関数が使えない
- 3桁づつカンマ区切りにする拡張モディファー
- 値が空だったら、 を入れるモディファー
- 携帯表示用に文字を全角から半角にする
- Docomoの個体識別情報取得パラメータ『NULLGWDOCOMO』をSmartyで付ける
- Docomoの個体識別情報iモードID(guid)取得パラメータ『guid=on』をSmartyで付ける
- Docomoの個体識別情報取得属性『utn』をSmartyで付ける
- コンパイルファイル(compile)を削除できない
- 読み込まれているテンプレ名を取得
- env , server を読み込む
- クッキーを読み込む
- GET,POSTなどのパラメータを読み出す
- 連想配列でパラメータを渡す方法
- オブジェクトのメンバ変数を読み込む
- 配列を読み込む
- Smarty
スポンサーリンク