Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Chapter 7. Встроенные функции

В smarty включены несколько встроенных функций. Эти встроенные функции интегрированы в язык шаблонов. Нельзя создавать пользовательские функции с такими же названиями и вам не следует модифицировать встроенные функции.

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

{capture}

{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}, то не сохраняйте данный вывод.

Example 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}

   


Example 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}.

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors