Chapter 8. Пользовательские Функции

Smarty поставляется с несколькими пользовательскими функциями, которые вы можете использовать в шаблонах.

{assign}

{assign} используется для установки значения переменной в процессе выполнения шаблона.

Имя атрибута Тип Обязателен По умолчанию Описание
var string Да n/a Имя переменной, значение которой будет устанавливаться
value string Да n/a Устанавливаемое значение

Example 8.1. {assign}


{assign var="name" value="Bob"}

Значение $name - {$name}.

  

Результат выполнения данного примера:


Значение $name - Bob.

  

Example 8.2. {assign} и арифметика

В этом сложном примере переменные должны заключаться в обратные кавычки


{assign var=running_total value=`$running_total+$some_array[loop].some_value`}

  

Example 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().