コンパイラ関数プラグイン

コンパイラ関数プラグインはテンプレートのコンパイル時にのみ呼び出されます。 これらのプラグインは、PHPコードまたは時間に依存する静的コンテンツをテンプレートに含める時に便利です。 コンパイラ関数と カスタム関数 が双方とも同じ名前で登録された場合は、コンパイラ関数が優先されます。

mixed smarty_compiler_name( $params,  
  $smarty);  
array   $params;
object   $smarty;

コンパイラ関数には2つのパラメータを渡します。 パラメータの配列 (属性の値に使うコンパイル済み文字列を含むもの)、 そして Smarty オブジェクトです。 戻り値には、コンパイルされたテンプレートに挿入されるPHPコード (前後のPHPタグを含むもの) を返します。

例 18.6. シンプルなコンパイラ関数プラグイン


<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     compiler.tplheader.php
 * Type:     compiler
 * Name:     tplheader
 * Purpose:  ソースファイル名とそれがコンパイルされた時間を含む
 *           ヘッダを出力する
 * -------------------------------------------------------------
 */
function smarty_compiler_tplheader($params, Smarty $smarty)
{
    return "<?php\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';\n?>";
}
?>

この関数はテンプレートから次のように呼ばれます。


{* この関数はコンパイル時にのみ呼び出されます *}
{tplheader}

     

コンパイルされたテンプレートの結果として生じるPHPコードは次のようになります。


<?php
echo 'index.tpl compiled at 2002-02-20 20:02';
?>

     

registerPlugin() および unregisterPlugin() も参照ください。