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

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

string smarty_outputfilter_name( $template_output,  
  $template);  
string   $template_output;
object   $template;

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

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


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

     

registerFilter() および unregisterFilter() も参照ください。