Smarty поставляется с несколькими пользовательскими
функциями, которые вы можете использовать в шаблонах.
{assign}
{assign} используется для установки значения переменной
в процессе выполнения шаблона.
Пример 8-1. {assign} {assign var="name" value="Bob"}
Значение $name - {$name}. |
Результат выполнения данного примера:
|
Пример 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().