Smarty распознает присвоенные переменные, если они встречаются в строках, заключенных в "двойные кавычки", если имена переменных состоят из цифр, букв, знака под_чёркивания и квадратных скобок[]. См. также Переменные.
В случае, если переменная содержит другие символы, например точки, ссылки на объекты и т.д., переменную необходимо заключить в
`обратные кавычки`
. В данном случае вы не можете использовать модификаторы, их следует применять вне кавычек.Вы не можете использовать модификаторы подобным образом - они всегда должны применяться за пределами кавычек.
Пример 3.5. Примеры синтаксиса
{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} <-- модификатор вне кавычек!
Пример 3.6. Практические примеры
{* заменит $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"}
См. также
escape
.