Зарезервированная переменная {$smarty}
Зарезервированная переменная {$smarty} может быть использована для получения
доступа к нескольким переменным окружения и запроса. Далее следует их полный
список.
Переменные запроса
К переменным запроса,
таким как $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV и $_SESSION
(см. $request_vars_order
и $request_use_auto_globals
), можно получить доступ, как показано в следующем примере:
Пример 4-6. Отображение переменных запроса {* отображение параметра page из URL ($_GET) http://www.example.com/index.php?page=foo *}
{$smarty.get.page}
{* отображение параметра "page" из формы ($_POST['page']) *}
{$smarty.post.page}
{* отображение значения cookie "username" ($_COOKIE['username']) *}
{$smarty.cookies.username}
{* отображение серверной переменной "SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
{$smarty.server.SERVER_NAME}
{* отображение переменной системного окружения "PATH" *}
{$smarty.env.PATH}
{* отображение переменной сессии PHP "id" ($_SESSION['id']) *}
{$smarty.session.id}
{* отображение переменной "username" из смешенных get/post/cookies/server/env *}
{$smarty.request.username} |
|
Замечание:
По историческим соображениям, доступ к переменной {$SCRIPT_NAME} можно
получить непосредственно, хотя предпочтительным способом является обращение
{$smarty.server.SCRIPT_NAME}.
<a href="{$SCRIPT_NAME}?page=smarty">click me</a>
<a href="{$smarty.server.SCRIPT_NAME}?page=smarty">click me</a> |
{$smarty.now}
Текущая временная метка
содержится в переменной {$smarty.now}. Это значение отражает количество
секунд, которые прошли с момента наступления так называемой Эпохи
(1 января 1970 года). Её можно прямо передавать модификатору
date_format
для отображения текущей даты/времени. Обратите внимание,
что time() вызывается при каджом обращении; к примеру, скрипт, работающий
три секунды и вызывающий $smarty.now в начале и в конце работы, покажет
разницу в три секунды.
Пример 4-7. Использование {$smarty.now} {* использование модификатора date_format для отображения текущей даты/времени*}
{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"} |
|
{$smarty.const}
Вы можете обращаться к константам PHP напрямую. См. также Константы Smarty
Пример 4-8. Использование {$smarty.const} для доступа к константам
// константа определена в PHP define('_MY_CONST_VAL','CHERRIES');
|
{* вывод константы PHP в шаблоне *}
{$smarty.const._MY_CONST_VAL} |
|
{$smarty.capture}
Результат обработки шаблона, сохраненный конструкцией {capture}..{/capture},
доступен при помощи переменной {$smarty.capture}. См. раздел о
{capture}
для получения примера.
{$smarty.config}
Переменная {$smarty} может использоваться для обращения к загруженным конфигурационным переменным.
{$smarty.config.foo} является синонимом {#foo#}. См. раздел о
{config_load}
для получения примера.
{$smarty.section}, {$smarty.foreach}
Переменную {$smarty} можно использовать для обращения к свойствам циклов
{section} и
{foreach}.
Это очень полезные значения вроде .first, .index и т.д.
{$smarty.template}
Возвращает имя текущего обрабатываемого шаблона. Этот пример показывает
container.tpl и включенные в него banner.tpl, оба имеют вызов
{$smarty.template}
<b>Main container is {$smarty.template}</b>
{include file='banner.tpl} |
результат обработки шаблона:
<b>Main page if container.tpl</b>
banner.tpl |
{$smarty.version}
Возвращает версию Smarty, с которой был скомпилирован шаблон.
<div id="footer">Powered by Smarty {$smarty.version}</div> |