|
|

|
{eval}
{eval} используется для обработки переменной, как шаблона.
Можно использовать для таких вещей, как хранение шаблонных
тэгов/переменных в переменной или в файлах конфигруации.
Если указан специальный атрибут "assign", то вывод тэга eval
присваивается переменной, вместо отображения.
Техническое Замечание:
Переменные шаблоны обрабатываются так же, как и обычные шаблоны.
Они подвластны тем же правилам и ограничениям безопасности.
Техническое Замечание:
Переменные шаблоны компилируются при каждом вызове, скомпилированные версии
не сохраняются!
Однако, если кэширование включено,
вывод будет кэширован вместе с остальной частью шаблона.
Пример 8-6. {eval} #setup.conf
#----------
emphstart = <strong>
emphend = </strong>
title = Welcome to {$company}'s home page!
ErrorCity = You must supply a {#emphstart#}city{#emphend#}.
ErrorState = You must supply a {#emphstart#}state{#emphend#}. |
Шаблон:
{config_load file='setup.conf'}
{eval var=$foo}
{eval var=#title#}
{eval var=#ErrorCity#}
{eval var=#ErrorState# assign='state_error'}
{$state_error} |
Результат выполнения данного примера:
This is the contents of foo.
Welcome to Foobar Pub & Grill's home page!
You must supply a <strong>city</strong>.
You must supply a <strong>state</strong>. |
|
Пример 8-7. Другой пример использования {eval}
Отображает имя сервера (заглавными буквами) и IP-адрес.
Переменная $str так же может быть результатом запроса к БД.
// php script $str = 'The server name is {$smarty.server.SERVER_NAME|upper} ' .'at {$smarty.server.SERVER_ADDR}'; $smarty->assign('foo',$str);
|
Шаблон:
|
|
|
|