Зарезервированная переменная {$smarty}

Зарезервированная переменная {$smarty} может быть использована для получения доступа к нескольким переменным окружения и запроса. Далее следует их полный список.

Переменные запроса

К переменным запроса, таким как $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV и $_SESSION (см. $request_vars_order и $request_use_auto_globals ), можно получить доступ, как показано в следующем примере:

Example 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}

   

Note

По историческим соображениям, доступ к переменной {$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 в начале и в конце работы, покажет разницу в три секунды.

Example 4.8. Использование {$smarty.now}


{* использование модификатора date_format для отображения текущей даты/времени*}
{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

   

{$smarty.const}

Вы можете обращаться к константам PHP напрямую. См. также Константы Smarty

Example 4.9. Использование {$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>

  

{$smarty.ldelim}, {$smarty.rdelim}

Эти переменные используются для отображения левого и правого ограничителей - так же, как и {ldelim},{rdelim}.

См. также Переменные и Конфигурационные переменные