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:
Зарезервированная переменная {$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}
По историческим соображениям, доступ к переменной {$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 в начале и в конце работы, покажет разницу в три секунды.
Example 4.8. Использование {$smarty.now}
{* использование модификатора date_format для отображения текущей даты/времени*} {$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
Вы можете обращаться к константам PHP напрямую. См. также Константы Smarty
Example 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}.
См. также Переменные и Конфигурационные переменные