アウトプットフィルタプラグイン
アウトプットフィルタプラグインは、テンプレートが読み込まれて実行された後
(しかしその出力が表示される前)にテンプレートの出力を操作します。
string smarty_outputfilter_name (string $template_output,
object &$smarty)
アウトプットフィルタの第1パラメータは、処理を行うテンプレート出力です。
第2パラメータは、プラグインを呼び出したSmartyのインスタンスです。
このプラグインは戻り値に、修正されたテンプレート出力を返すようにして下さい。
例 16-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);
} ?> |
|
register_outputfilter() および
unregister_outputfilter() も参照してください。
再帰関数は最初の内は混乱しますが、非常に上手く使える場面もいずれ出てきます。これを機会に学んでいけるといいですね。