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:
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:
Example 4.7. Displaying request variables
{* display value of page from URL ($_GET) http://www.example.com/index.php?page=foo *} {$smarty.get.page} {* display the variable "page" from a form ($_POST['page']) *} {$smarty.post.page} {* display the value of the cookie "username" ($_COOKIE['username']) *} {$smarty.cookies.username} {* display the server variable "SERVER_NAME" ($_SERVER['SERVER_NAME'])*} {$smarty.server.SERVER_NAME} {* display the system environment variable "PATH" *} {$smarty.env.PATH} {* display the php session variable "id" ($_SESSION['id']) *} {$smarty.session.id} {* display the variable "username" from merged get/post/cookies/server/env *} {$smarty.request.username}
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.
{* use the date_format modifier to show current date and time *} {$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
You can access PHP constant values directly. See also smarty constants.
<?php // the constant defined in php define('MY_CONST_VAL','CHERRIES'); ?>
Output the constant in a template with
{$smarty.const.MY_CONST_VAL}
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