Files
smarty/docs/programmers/plugins/plugins-compiler-functions.md
Simon Wisselink 428a701b18 Feature/add docs (#689)
* Add converted docs repo

* Set theme jekyll-theme-minimal

* Removed BC docs, added TOC

* Added TOCs, rewrote most important links in documentation. Linked README to new Github Pages site

* some link fixes
2021-12-03 11:59:22 +01:00

67 lines
1.7 KiB
Markdown

Compiler Functions {#plugins.compiler.functions}
==================
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](#language.custom.functions) registered under the same name,
the compiler function has precedence.
mixed
smarty\_compiler\_
name
array
\$params
object
\$smarty
The compiler function is passed two parameters: the params array which
contains precompiled strings for the attribute values and the Smarty
object. It\'s supposed to return the code to be injected into the
compiled template including the surrounding PHP tags.
<?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($params, Smarty $smarty)
{
return "<?php\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';\n?>";
}
?>
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 [`registerPlugin()`](#api.register.plugin),
[`unregisterPlugin()`](#api.unregister.plugin).