コンパイラ関数プラグイン
コンパイラ関数プラグインはテンプレートのコンパイル時にのみ呼び出されます。これらのプラグインは、phpコード又はその場限りの静的コンテンツをテンプレートに含める時に便利です。コンパイラ関数とカスタム関数が双方とも同じ名前で登録された場合は、コンパイラ関数が優先されます。
mixed smarty_compiler_name (string $tag_arg, object &$smarty)
コンパイラ関数は2つのパラメータを渡します。これらのパラメータは、タグ内の文字列(基本的に関数名から終端デリミタまでの全ての文字列)と、Smartyのオブジェクトです。戻り値には、コンパイルされたテンプレートに挿入されるphpコードを返します。
詳細は、register_compiler_function(),unregister_compiler_function()の項を参照して下さい。
例 15-6. シンプルなコンパイラ関数プラグイン
<?php/* * Smarty plugin * ----- * File: compiler.tplheader.php * Type: compiler * Name: tplheader * Purpose: ソースファイル名とそれがコンパイルされた時間を * 含んだヘッダを出力する * ----- */function smarty_compiler_tplheader($tag_arg, &$smarty)
{return "\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';";}
?>
この関数はテンプレートから次のように呼ばれます。
{* この関数はコンパイル時にのみ呼び出される *}
{tplheader}
コンパイルされたテンプレートの結果として生じるphpコードは次のようになります。
<?php
echo 'index.tpl compiled at 2002-02-20 20:02';
?>