The PHP reserved {$smarty} variable can be used to access several enviroment and request variables. The full list of them follows.
The request variables such as $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV and $_SESSION (see $request_vars_order and $request_use_auto_globals) can be accessed as demonstrated in the examples below:
Note: For historical reasons {$SCRIPT_NAME} can be accessed directly, although {$smarty.server.SCRIPT_NAME} is the proposed way to access this value.
<a href="{$SCRIPT_NAME}?page=smarty">click me</a> <a href="{$smarty.server.SCRIPT_NAME}?page=smarty">click me</a>
The current timestamp can be accessed with {$smarty.now}. The value reflects the number of seconds passed since the so-called Epoch on January 1, 1970, and can be passed directly to the date_format modifier for display. Note that time() is called on each invocation; eg a script that takes three seconds to execute with a call to $smarty.now at start and end will show the three second difference.
You can access PHP constant values directly. See also smarty constants.
Output the constant in a template with
Template output captured via the built-in {capture}..{/capture} function can be accessed using the {$smarty.capture} variable. See the {capture} page for more information.
{$smarty.config} variable can be used to refer to loaded config variables. {$smarty.config.foo} is a synonym for {#foo#}. See the {config_load} page for more info.
The {$smarty.section} and {$smarty.foreach} variables can be used to refer to {section} and {foreach} loop properties respectfully. These have some very useful values such as .first, .index, etc.
Returns the name of the current template being processed. The following example shows the container.tpl and the included banner.tpl with {$smarty.template} within both.
<b>Main container is {$smarty.template}</b> {include file='banner.tpl'} |
will output
<b>Main page is container.tpl</b> banner.tpl |
Returns the version of Smarty the template was compiled with.
<div id="footer">Powered by Smarty {$smarty.version}</div> |
These variables are used for printing the left-delimiter and right-delimiter value literally, the same as {ldelim},{rdelim}.
See also assigned variables and config variables