Глава 7. Встроенные функции

Содержание
capture
{config_load}
{foreach},{foreachelse}
{if},{elseif},{else}
{include}
{include_php}
{insert}
{ldelim},{rdelim}
{literal}
{php}
{section},{sectionelse}
{strip}

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

capture

{capture} используется для того, чтобы собрать результат работы шаблона в какую-то переменную, вместо того, чтобы вывести результат браузеру. Любое содержимое между {capture name="foo"} и {/capture} сохраняется в переменную, указанную в атрибуте name. Затем его можно использовать в шаблоне при помощи специальной переменной $smarty.capture.foo, где "foo" - значение, переданное атрибуту name. Если атрибут name не указан, то используется "default". Каждая комманда {capture} должна иметь пару {/capture}. Команда capture поддерживает вложенность.

Предостережение

Будте осторожны, сохраняя вывод команды {insert}. Если вы используете кэширование и в области кэширования встречаются команды insert, то не сохраняйте данный вывод.

Пример 7-1. Сохранение вывода шаблона

{* мы не хотим выводить строку таблицы, если содержимое не отображается *}
{capture name=banner}
  {include file='get_banner.tpl'}
{/capture}
{if $smarty.capture.banner ne ''}
<table>
    <tr>
        <td>
 			        {$smarty.capture.banner}
		      </td>
	   </tr>
</table>
{/if}

Пример 7-2. сохранение содержимого в переменную

Этот пример также демонстрирует функцию {popup}

{capture name=some_content assign=popText}
    .... some content ....
{/capture}

<a href="#" {popup caption='Help' text=$popText}>help</a>

См. также $smarty.capture, {eval}, {fetch}, fetch() и {assign}.


HIVE: All information for read only. Please respect copyright!
Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ