What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
{eval} используется для обработки переменной, как шаблона. Можно использовать для таких вещей, как хранение шаблонных тэгов/переменных в переменной или в файлах конфигруации.
Если указан специальный атрибут "assign", то вывод тэга eval присваивается переменной, вместо отображения.
Имя атрибута | Тип | Обязателен | По умолчанию | Описание |
---|---|---|---|---|
var | mixed | Да | n/a | Переменная (или строка) для обработки |
assign | string | Нет | n/a | Имя переменной, которой будет присвоен вывод |
Переменные шаблоны обрабатываются так же, как и обычные шаблоны. Они подвластны тем же правилам и ограничениям безопасности.
Переменные шаблоны компилируются при каждом вызове, скомпилированные версии не сохраняются! Однако, если кэширование включено, вывод будет кэширован вместе с остальной частью шаблона.
Example 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>.
Example 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);
Шаблон:
{eval var=$foo}