What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
コンパイラ関数プラグインはテンプレートのコンパイル時にのみ呼び出されます。 これらのプラグインは、PHPコードまたは時間に依存する静的コンテンツをテンプレートに含める時に便利です。 コンパイラ関数と カスタム関数 が双方とも同じ名前で登録された場合は、コンパイラ関数が優先されます。
mixed smarty_compiler_name( |
$tag_arg, | |
&$smarty) ; |
string $tag_arg
;object &$smarty
;コンパイラ関数には2つのパラメータを渡します。 これらのパラメータは、タグ内の文字列(基本的に関数名から終端デリミタまでの全ての文字列)と、 Smartyのオブジェクトです。戻り値には、コンパイルされたテンプレートに挿入されるPHPコードを返します。
Example 16.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'; ?>
register_compiler_function()
および
unregister_compiler_function()
も参照してください。