编译函数
编译函数仅会在模板的编译过程中调用,它对模板嵌入PHP代码或者对时间敏感的内容时比较有用。 如果同时存在编译函数和 自定义函数,那么编译函数会优先使用。
|mixed smartycompiler_name(
|$params, |
| |$smarty_)
;|
array $params
;object $smarty
;
编译函数有两个参数:已预编译的变量字符串数组,及Smarty对象。该函数将会返回嵌入到模板的PHP代码。
- <?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()
.
原文: https://www.smarty.net/docs/zh_CN/plugins.compiler.functions.tpl