ポストフィルタ
ポストフィルタは、テンプレートがコンパイルされた後に実行されるphpユーザ定義関数です。プリフィルタはregister_postfilterによって動的に登録されるか、load_filter()又は$autoload_filters変数によってプラグインディレクトリから読み込まれます。Smartyは内部でユーザ定義関数の第1パラメータにコンパイルされたテンプレートのソースコードを渡すので、関数内で処理を行った後にその結果のソースコードを戻り値として返すようにします。
例 14-3. ポストフィルタを使用する
<?php // このユーザ定義関数をアプリケーションに加える function add_header_comment($tpl_source, &$smarty) { return "<?php echo \"<!-- Created by Smarty! -->\n\"; ?>\n".$tpl_source; }
// ポストフィルタを登録する $smarty->register_postfilter("add_header_comment"); $smarty->display("index.tpl"); ?>
|
これによって以下のようなコンパイルされた Smarty テンプレート index.tpl が作成されるでしょう:
<!-- Created by Smarty! -->
{* 以下、残りのコンテンツ *} |
|