Зарезервированная переменная {$smarty} может быть использована для получения доступа к нескольким переменным окружения и запроса. Далее следует их полный список.
К переменным запроса, таким как $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV и $_SESSION (см. $request_vars_order и $request_use_auto_globals ), можно получить доступ, как показано в следующем примере:
Пример 4.7. Отображение переменных запроса
{* отображение параметра 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}. Это значение отражает количество секунд, которые прошли с момента наступления так называемой Эпохи (1 января 1970 года). Её можно прямо передавать модификатору date_format для отображения текущей даты/времени. Обратите внимание, что time() вызывается при каджом обращении; к примеру, скрипт, работающий три секунды и вызывающий $smarty.now в начале и в конце работы, покажет разницу в три секунды.
Пример 4.8. Использование {$smarty.now}
{* использование модификатора date_format для отображения текущей даты/времени*} {$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
Вы можете обращаться к константам PHP напрямую. См. также Константы Smarty
Пример 4.9. Использование {$smarty.const} для доступа к константам
// константа определена в PHP define('_MY_CONST_VAL','CHERRIES');
{* вывод константы PHP в шаблоне *} {$smarty.const._MY_CONST_VAL}
Результат обработки шаблона, сохраненный конструкцией {capture}..{/capture}, доступен при помощи переменной {$smarty.capture}. См. раздел о {capture} для получения примера.
Переменная {$smarty} может использоваться для обращения к загруженным конфигурационным переменным. {$smarty.config.foo} является синонимом {#foo#}. См. раздел о {config_load} для получения примера.
Переменную {$smarty} можно использовать для обращения к свойствам циклов {section} и {foreach}. Это очень полезные значения вроде .first, .index и т.д.
Возвращает имя текущего обрабатываемого шаблона. Этот пример показывает 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, с которой был скомпилирован шаблон.
<div id="footer">Powered by Smarty {$smarty.version}</div>
Эти переменные используются для отображения левого и правого ограничителей - так же, как и {ldelim},{rdelim}.
См. также Переменные и Конфигурационные переменные