アウトプットフィルタプラグイン

アウトプットフィルタプラグインは、テンプレートが読み込まれてパースされた後(しかしその出力が表示される前)にテンプレートの出力を操作します。

string smarty_outputfilter_name (string $template_output, object &$smarty)

アウトプットフィルタの第1パラメータは、処理される必要があるテンプレート出力です。第2パラメータは、呼び出されるプラグインのSmartyのインスタンスです。このプラグインは戻り値に、修正されたテンプレートソースを返すようにして下さい。

例 15-9. アウトプットフィルタプラグイン

<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* File:     outputfilter.protect_email.php
* Type:     outputfilter
* Name:     protect_email
* Purpose:  スパムボットからのシンプルな保護として、
*           emailアドレスの"@"を"%40"に変換する
* -------------------------------------------------------------
*/
function smarty_outputfilter_protect_email($output, &$smarty)
{
     return
preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',
                         
'$1%40$2', $output);
}
?>