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:
Compiler functions are called only during compilation of the template. They are useful for injecting PHP code or time-sensitive static content into the template. If there is both a compiler function and a custom function registered under the same name, the compiler function has precedence.
mixed smarty_compiler_name( |
$tag_arg, | |
&$smarty) ; |
string $tag_arg
;object &$smarty
;The compiler function is passed two parameters: the tag argument string - basically, everything from the function name until the ending delimiter, and the Smarty object. It's supposed to return the PHP code to be injected into the compiled template.
Example 16.6. A simple compiler function
<?php /* * Smarty plugin * ------------------------------------------------------------- * File: compiler.tplheader.php * Type: compiler * Name: tplheader * Purpose: Output header containing the source file name and * the time it was compiled. * ------------------------------------------------------------- */ function smarty_compiler_tplheader($tag_arg, &$smarty) { return "\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';"; } ?>
This function can be called from the template as:
{* this function gets executed at compile time only *} {tplheader}
The resulting PHP code in the compiled template would be something like this:
<?php echo 'index.tpl compiled at 2002-02-20 20:02'; ?>
See also
register_compiler_function()
,
unregister_compiler_function()
.