Опубліковано на: 31 січня 2016 погляди 4182 подобається 0 коментарі 0
Основні моменти в роботі із шаблонізатором Smarty
Змінні
{$foo} відображення простої змінної (не масив і не об'єкт)
{$foo[4]} відображає 5-й елемент числового масиву
{$foo.bar} відображає значення ключа "bar" асоціативного масиву, подібно до PHP $foo['bar']
{$foo.$bar} відображає значення змінного ключа масиву, подібно до PHP $foo[$bar]
{$foo->bar} відображає властивість "bar" об'єкта
{$foo->bar()} відображає значення методу "bar" об'єкта, що повертається.
{#foo#} відображає змінну "foo" конфігураційного файлу
{$smarty.config.foo} синонім для {#foo#}
{$foo[bar]} синтаксис доступний лише у циклі section, див. {section}
{assign var=foo value='baa'} {$foo} відображає "baa", див {assign}
Також є безліч інших комбінацій
{$foo.bar.baz}
{$foo.$bar.$baz}
{$foo[4].baz}
{$foo[4].$baz}
{$foo.bar.baz[4]}
{$foo->bar($baz,2,$bar)} передача параметра
{"foo"} статичні значення також дозволені
{* отображает серверную переменную "SERVER_NAME" ($_SERVER['SERVER_NAME'])*}
{$smarty.server.SERVER_NAME}
//
// Впроваджені змінні у подвійних лапках
//
{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
{func var="test `$foo.bar` test"|escape} модифікатор поза лапками!
//
// Приклади
//
{* заменит $tpl_name её значением *}
{include file="subdir/$tpl_name.tpl"}
{* не заменит $tpl_name *}
{include file='subdir/$tpl_name.tpl'}
{* нужны обратные кавычки из за того, что имя содержит точки *}
{cycle values="one,two,`$smarty.config.myval`"}
{* аналог $module['contact'].'.tpl' в PHP *}
{include file="`$module.contact`.tpl"}
{* аналог $module[$view].'.tpl' в PHP *}
{include file="`$module.$view`.tpl"}
{$foo+1}
{$foo*$bar}
{* несколько более сложных примеров *}
{$foo->bar-$bar[1]*$baz->foo->bar()-3*7}
{if ($foo+$bar.test%$baz*134232+10+$b+10)}
{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}
{assign var="foo" value="`$foo+$bar`"}
Модифікатори змінних
{* применение модификатора к переменной *}
{$title|upper}
{* модификатор с параметрами *}
{$title|truncate:40:'...'}
{* применение модификатора к аргументу функции *}
{html_table loop=$myvar|upper}
{* с параметрами *}
{html_table loop=$myvar|truncate:40:'...'}
{* применение модификатора к строке *}
{'foobar'|upper}
{* использование date_format для форматирования текущей даты *}
{$smarty.now|date_format:"%Y/%m/%d"}
{* применение модификатора к функции *}
{mailto|upper address='smarty@example.com'}
{* использование функции PHP str_repeat *}
{'='|str_repeat:80}
{* функция PHP count *}
{$myArray|@count}
{* функция PHP shuffle, применяемая к IP адресу сервера *}
{$smarty.server.SERVER_ADDR|shuffle}
(* це приведе у верхній регістр літер і обріже прогалини у всіх елементів масиву *}