ポストフィルタ
ポストフィルタは、テンプレートがコンパイルされた後に実行される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"); ?>
{* コンパイルされたテンプレート index.tpl *} <!-- Created by Smarty! --> {* 以下、残りのコンテンツ *}
|
|