Все тэги шаблонов Smarty располагаются между специальными разделителями { и }.
Все содержимое вне разделителей Smarty отображает как статическое содержание, без изменений. Когда Smarty встречает свои тэги, то пытается интерпретировать их и вывести вместо них соответствующий результат.
Комментарии в шаблонах заключаются в звездочки (*) окруженные . разделителями, например: {* это комментарий *}. Комментарии не отображаются в выводе шаблона. Они используются для внутренних примечаний в шаблонах.
{* шаблон Smarty *} {* подключаем шапку шаблона *} {include file="header.tpl"} {* выпадающий список *} <select name=company> {html_options values=$vals selected=$selected output=$output} </select> ...
Каждый тэг Smarty либо выводит значение переменной, либо вызывает некоторую функцию. Для вызова функции нужно название функции и ее параметры заключить в разделители, например: {funcname attr1=«val» attr2=«val»}.
{include file="header.tpl"} {if $highlight_name} Welcome, <font color="{$fontColor}">{$name}!</font> {else} Welcome, {$name}! {/if} {include file="footer.tpl"}
Большинство функций принимает параметры, которые уточняют или изменяют ее поведение. Параметры в Smarty очень похожи на параметры в HTML. Не обязательно заключать статические значения в кавычки, хотя текст рекомендуется заключать в кавычки. Переменные также могут быть использованы в качестве параметров, и не должны заключаться в кавычки.
Некоторые параметры принимают логические значения (правда или ложь). Они могут быть указаны словами true или false.
{include file="header.tpl"} {html_select_date display_days=true} <select name=company> {html_options values=$vals selected=$selected output=$output} </select> ...
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`"} <-- надо заключать в обратные кавычки