Содержание
В smarty включены несколько встроенных функций. Эти встроенные функции интегрированы в язык шаблонов. Нельзя создавать пользовательские функции с такими же названиями и вам не следует модифицировать встроенные функции.
Некоторые эти функции имеют атрибут assign
,
который помещает результати их выполнения в переменную шаблона, вместо вывода
в браузер, практически как функция
{assign}
.
{capture}
используется для того, чтобы собрать результат
обработки части шаблона между тэгами в какую-то переменную, вместо того,
чтобы отобразить результат.
Любое содержимое между {capture name='foo'}
и
{/capture}
сохраняется в переменную, указанную в атрибуте
name
.
Захваченные данные могут в дальнейшем использоваться в
шаблоне при помощи специальной переменной $smarty.capture.foo
,
где “foo” - значение, переданное атрибуту name
.
Если атрибут name
не указан,
то используется “default”, т.е. $smarty.capture.default
.
Функция {capture}
поддерживает вложенность.
Имя атрибута | Тип | Обязателен | По умолчанию | Описание |
---|---|---|---|---|
name | string | Нет | default | Имя блока для сохранения |
assign | string | Нет | n/a | Имя переменной для сохранения результатов |
Внимание
Будте осторожны, сохраняя результат команды {insert}
.
Если вы используете
кэширование
и в области кэширования встречаются команды
{insert}
,
то не сохраняйте данный вывод.
Пример 7.1. Сохранение вывода шаблона в указанный атрибут
{* мы не хотим отображать тэг div, если его содержимое не отображается *} {capture name=banner} {include file='get_banner.tpl'} {/capture} {if $smarty.capture.banner ne ''} <div id="banner">{$smarty.capture.banner}</div> {/if}
Пример 7.2. Сохранение содержимого в переменную
Этот пример также демонстрирует функцию
{popup}
{capture name=some_content assign=popText} Имя сервера: {$smarty.server.SERVER_NAME|upper}<br /> Адрес сервера: {$smarty.server.SERVER_ADDR}<br /> Ваш IP: {$smarty.server.REMOTE_ADDR}. {/capture} <a href="#" {popup caption='Информация о Сервере' text=$popText}>help</a>
См. также
$smarty.capture
,
{eval}
,
{fetch}
,
fetch()
и {assign}
.