====== Базовый синтаксис языка шаблонов Smarty ======
Все тэги шаблонов Smarty располагаются между специальными разделителями { и }.
Все содержимое вне разделителей Smarty отображает как статическое содержание, без изменений. Когда Smarty встречает свои тэги, то пытается интерпретировать их и вывести вместо них соответствующий результат.
===== Комментарии =====
Комментарии в шаблонах заключаются в звездочки (*) окруженные . разделителями, например: {* это комментарий *}. Комментарии не отображаются в выводе шаблона. Они используются для внутренних примечаний в шаблонах.
{* шаблон Smarty *}
{* подключаем шапку шаблона *}
{include file="header.tpl"}
{* выпадающий список *}
...
===== Функции =====
Каждый тэг Smarty либо выводит значение [[smarty:smarty2|переменной]], либо вызывает некоторую функцию. Для вызова функции нужно название функции и ее параметры заключить в разделители, например: {funcname attr1="val" attr2="val"}.
{include file="header.tpl"}
{if $highlight_name}
Welcome, {$name}!
{else}
Welcome, {$name}!
{/if}
{include file="footer.tpl"}
===== Параметры =====
Большинство функций принимает параметры, которые уточняют или изменяют ее поведение. Параметры в Smarty очень похожи на параметры в HTML. Не обязательно заключать статические значения в кавычки, хотя текст рекомендуется заключать в кавычки. Переменные также могут быть использованы в качестве параметров, и не должны заключаться в кавычки.
Некоторые параметры принимают логические значения (правда или ложь). Они могут быть указаны словами true или false.
{include file="header.tpl"}
{html_select_date display_days=true}
...
===== Внедренные переменные в двойных кавычках =====
Smarty распознает переменные, если они встречаются в строках, заключенных в двойные кавычки. Распознаются переменные, состоящие из чисел, букв, символов _,[,]. Если надо использовать другие символы для указания переменной (точка или ->), то переменную необходимо заключить в обратные кавычки ``.
Пример синтаксиса:
{func var="test $foo test"} <-- ищет $foo
{func var="test $foo_bar test"} <-- ищет $foo_bar
{func var="test $foo[0] test"} <-- ищет $foo[0]
{func var="test $foo[bar] test"} <-- ищет $foo[bar]
{func var="test $foo.bar test"} <-- ищет $foo (не $foo.bar)
{func var="test `$foo.bar` test"} <-- ищет $foo.bar
Практические примеры:
{include file="$tpl_name.tpl"} <-- заменит $tpl_name на ее значение
{cycle values="one,two,`$smarty.config.myval`"} <-- надо заключать в обратные кавычки
[[smarty:smarty2|Следующая глава]].