Содержание
Smarty поставляется с несколькими пользовательскими функциями, которые вы можете использовать в шаблонах.
{assign} используется для установки значения переменной в процессе выполнения шаблона.
Имя атрибута | Тип | Обязателен | По умолчанию | Описание |
---|---|---|---|---|
var | string | Да | n/a | Имя переменной, значение которой будет устанавливаться |
value | string | Да | n/a | Устанавливаемое значение |
Пример 8.1. {assign}
{assign var="name" value="Bob"} Значение $name - {$name}.
Результат выполнения данного примера:
Значение $name - Bob.
Пример 8.2. {assign} и арифметика
В этом сложном примере переменные должны заключаться в обратные кавычки
{assign var=running_total value=`$running_total+$some_array[loop].some_value`}
Пример 8.3. Доступ к переменным {assign} из PHP-скрипта.
Чтобы получить доступ к переменным {assign} из PHP-скрипта, используйте функцию get_template_vars(). Обратите внимание, что переменные доступны только во время и после выполнения шаблона, как видно из следующего примера:
{* index.tpl *} {assign var="foo" value="Smarty"}
<?php // это не выведет ничего, ведь шаблон ещё не был выполнен echo $smarty->get_template_vars('foo'); // получаем шаблон в переменную-пустышку $dead = $smarty->fetch('index.tpl'); // это выведет 'smarty', так как шаблон уже выполнен echo $smarty->get_template_vars('foo'); $smarty->assign('foo','Even smarter'); // это выведет 'Even smarter' echo $smarty->get_template_vars('foo'); ?>
Следующие функции также могут опционально назначать переменные шаблона.
{capture}, {include}, {include_php}, {insert}, {counter}, {cycle}, {eval}, {fetch}, {math}, {textformat}
См. также assign() и get_template_vars().